On this page

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 provider Switch the configured Claude auth provider/key without a full streb init re-run
streb model Switch the selected Claude model (adesso AI Hub only)
streb secret get|put|drop <key> Read, write, or remove a session secret
streb upgrade Upgrade streb to the latest version
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 — success
  • 1 — one or more prerequisites failed
  • 130 — 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 provider

Synopsis: streb provider

Lets you switch the configured Claude auth provider (adesso AI Hub, Anthropic API key, or Claude subscription login) without a full streb init re-run. Requires streb init to have already run.

Interactively prompts to confirm the switch; in a non-interactive session the existing provider is kept unchanged. On switch, rewrites .claude/settings.json so Claude Code picks up the new provider immediately.

streb model

Synopsis: streb model

Switches the selected Claude model. Applies only to the adesso AI Hub provider — for the Anthropic API key or Claude subscription providers, the command reports that there's nothing to switch.

Fetches the live list of chat models available to the configured API key from AI Hub, then opens an interactive picker. Selecting a model updates the session and rewrites .claude/settings.json immediately.

streb secret

Synopsis: streb secret get|put|drop <key> [value] [--global]

Reads, writes, or removes a session secret in the encrypted session store (.streb/session).

Form Description
streb secret get <key> [--global] Print the stored value for key
streb secret put <key> <value> [--global] Store value under key
streb secret drop <key> [--global] Remove the stored value for key

--global bypasses per-project scoping and stores/reads the bare key name, for secrets shared across projects.

Note

Reserved keys used internally by streb (AUTH_PROVIDER, ANTHROPIC_API_KEY, STREB_MODEL, _AUTH_PROMPTED) can't be written or removed directly via put/drop.

Note

streb init never writes the raw API key into .claude/settings.local.json. Instead it sets apiKeyHelper to <streb-binary> secret get ANTHROPIC_API_KEY, so Claude Code decrypts the key from the session store on demand — for both the AI Hub and Anthropic API key providers. The subscription provider has no API key, so apiKeyHelper is left unset for it.

streb upgrade

Synopsis: streb upgrade [--check]

Checks for a newer release and upgrades in place. Behavior depends on how streb was installed:

  • Homebrew — delegates to brew upgrade streb
  • Scoop — delegates to scoop update streb
  • Winget — delegates to winget upgrade --id adesso-ai.streb
  • Direct install (install.sh / manual binary) — downloads, verifies the SHA256 checksum, and atomically replaces the running binary

--check reports whether a newer version is available without installing it.

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
Note

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_KEYANTHROPIC_AUTH_TOKENANTHROPIC_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