Commands
streb uses init as its default subcommand. Running streb with no arguments is equivalent to streb init.
| Command | Description |
|---|---|
streb [init] |
Check prerequisites, install missing tools, and authenticate |
streb reset |
Remove everything streb init installed |
streb doctor |
Display health status of all prerequisites |
streb version |
Print the version string |
streb completion <shell> |
Generate shell completion script |
Global Flags
These flags are accepted by every command:
| Flag | Short | Description |
|---|---|---|
--verbose |
-v |
Set log level to debug — verbose output |
--quiet |
-q |
Set log level to error — suppress info/warn output |
--log-level <level> |
— | One of: debug, info, warn, error (default: info) |
--version |
— | Print version and exit |
--help |
-h |
Show usage information and exit |
streb init
Synopsis: streb [init] [flags]
The default command. Checks and installs all prerequisites in order. Steps run sequentially so dependencies are satisfied before tools that need them.
Exit codes
0— success1— one or more prerequisites failed130— interrupted (Ctrl+C / SIGTERM)
Examples
# Interactive setup
streb init
# Non-interactive
STREB_AIHUB_KEY=sk-... streb init
streb reset
Synopsis: streb reset [--skip-*]
Reverses streb init. By default removes all configured components. Use --skip-* flags to preserve specific items.
Flags
| Flag | What it preserves |
|---|---|
--skip-auth |
Authentication credentials |
--skip-git-config |
Git user.name / user.email configuration |
--skip-claude-code |
Claude Code CLI installation |
--skip-bun |
Bun installation |
--skip-jq |
jq installation |
--skip-yq |
yq installation |
Examples
# Remove everything
streb reset
# Keep Claude Code and Bun, reset everything else
streb reset --skip-claude-code --skip-bun
streb doctor
Synopsis: streb doctor
Runs all prerequisite checks in parallel and displays the health status. Read-only — does not install or modify anything.
Checks run:
- Authentication, Git, Git user config, Bun, Claude Code CLI, jq, yq
- Network, Disk space, Write permission, Home directory, Proxy config
- OS / architecture (informational)
Example output
$ streb doctor
✓ Authentication
✓ Git 2.47.0
✓ Git user config
✓ Bun 1.2.4
✓ Claude Code CLI 1.5.0
✓ jq 1.7.1
✓ yq 4.44.6
✓ Network
✓ Disk space 47.3 GB free
✓ Write permission
✓ Home directory
⊖ Proxy config none configured
✓ OS linux/amd64
Status icons
| Icon | Meaning |
|---|---|
✓ |
OK |
✗ |
Failed |
⚠ |
Warning (non-blocking) |
⊖ |
Skipped / not applicable |
streb version
Synopsis: streb version or streb --version
Prints the version string stamped at build time. Untagged builds print dev.
$ streb version
v1.0.0
streb completion
Synopsis: streb completion <shell>
Supported shells: bash, zsh, fish, powershell
# bash
streb completion bash > /etc/bash_completion.d/streb
# zsh
streb completion zsh > "${fpath[1]}/_streb"
# fish
streb completion fish > ~/.config/fish/completions/streb.fish
# PowerShell
streb completion powershell | Out-String | Invoke-Expression
Configuration
streb merges configuration from multiple sources at startup. The result is a single resolved config object used for the entire run. Both the global file (~/.streb/config.yaml) and the project file (.streb/config.yaml) accept any subset of the keys described below.
Config Schema
The complete configuration file schema. Both ~/.streb/config.yaml (global) and .streb/config.yaml (project) accept any subset of these keys.
# Project identity (commit this in .streb/config.yaml)
project:
name: string # Project name
domain: string # Optional: domain or environment label
description: string # Optional: project description
repository: string # Optional: repository URL
# Logging
log:
level: string # "debug" | "info" | "warn" | "error" (default: "info")
format: string # "text" | "json" (default: "text")
file: string # Path to log file; empty = stderr
# Output formatting
output:
no_color: bool
format: string # "text" | "json"
# Retry behavior for API calls
retry:
max_attempts: int # default: 3
initial_delay: duration # default: 2s
max_delay: duration # default: 30s
multiplier: float # default: 2.0
The ralph section exists in the schema but Ralph autonomous loops are not active in v2. These keys are reserved for a future release.
Precedence
Configuration sources, lowest priority first (later entries win):
| Priority | Source | Notes |
|---|---|---|
| 1 (lowest) | Built-in defaults | Compiled into the binary |
| 2 | ~/.streb/config.yaml |
Global, user-level config |
| 3 | .streb/config.yaml |
Project-level config; commit to repo |
| 4 | .streb/session |
Encrypted secrets; never commit |
| 5 | Environment variables | See table below |
| 6 (highest) | CLI flags | --log-level, --verbose, --quiet |
Environment Variables
| Variable | Description | Overrides |
|---|---|---|
STREB_AIHUB_KEY |
adesso AI Hub API key | Session auth (highest priority) |
ANTHROPIC_AUTH_TOKEN |
adesso AI Hub API key (alternate name) | Session auth |
ANTHROPIC_API_KEY |
Direct Anthropic API key | Session auth (lowest auth priority) |
HTTP_PROXY |
HTTP proxy URL | Detected by streb doctor |
HTTPS_PROXY |
HTTPS proxy URL | Detected by streb doctor |
NO_PROXY |
Proxy bypass list | Detected by streb doctor |
Auth env var precedence: STREB_AIHUB_KEY → ANTHROPIC_AUTH_TOKEN → ANTHROPIC_API_KEY.
Files & Directories
| Path | Description |
|---|---|
~/.streb/config.yaml |
Global config file. Created by streb init if it doesn't exist. |
.streb/config.yaml |
Project config file. Commit to your repository. |
.streb/session |
AES-256-GCM encrypted session secrets. Device-fingerprint keyed. Never commit. |
Add to .gitignore:
.streb/session