Getting Started

From zero to agentic
dev in under 5 minutes

streb bootstraps a complete, governed AI development environment in one command — Claude Code, task tracking, slash commands, hooks, and security rules, all configured and ready to use.

$ brew tap adesso-ai/streb && brew install streb && streb init

macOS & Linux via Homebrew · Windows via Scoop ↓

1

Install & initialise your project

$ brew tap adesso-ai/streb
$ brew install streb
$ cd my-project # navigate to your project directory
$ streb init

What streb init does

streb init runs an interactive setup wizard that installs and configures everything in order. Each step is safe to re-run — streb skips what is already installed.

1
API key setup
Prompts for your adesso AI Hub key (or Anthropic API key) and writes the required local config files under ~/.streb/ and ~/.claude/. Additional integrations such as GitHub, GitLab, or Jira may prompt for their own credentials later.
2
Prerequisites
Checks for git, Node.js, jq, and yq. Auto-installs missing tools where possible.
3
Claude Code CLI
Installs the claude CLI and configures it with your API key. This is the AI assistant you'll work with in the terminal.
4
Beads CLI & UI
Installs bd — a lightweight, git-backed issue tracker — and initialises a .beads/ directory in your project. No external service required.
5
Templates & configuration
Writes a CLAUDE.md (the AI's instruction manual), pre-built slash commands, specialised sub-agents, lifecycle hooks, and security rules into your project's .claude/ directory.
6
Dagger CLI & container-use
Installs both Dagger and container-use for isolated container-based work sessions, allowing Claude to run code in a clean environment without touching your local machine.
7
Verification
Runs streb doctor automatically to confirm every component is installed and configured correctly before finishing.

Setup profiles

streb init --profile default Standard interactive setup (recommended)
streb init --profile minimal Skip optional integrations and plugins
streb init --profile full Install all recommended tooling
streb init --profile ci --yes Non-interactive CI/CD setup
2

Start your first session

Once initialised, you have two ways to work with Claude Code: directly in your terminal, or inside a fully isolated container.

Direct — terminal

The simplest option. Open Claude Code directly in your project directory.

$cd my-project
$claude
# Claude Code starts in your current directory.
# Your CLAUDE.md rules are loaded automatically.
Container — isolated

Run inside a Dagger container for complete isolation. Agent actions stay sandboxed.

$streb run interactive
# Provisions a container with your project
# mounted, then starts an interactive session.
$streb run interactive --task-id bd-abc1
# Load a specific Beads task as context.

What Claude Code looks like

When Claude Code starts, it reads your CLAUDE.md and .claude/ directory. You get a conversational interface in your terminal where you can describe what you want to do.

— Claude Code session —
claude> Look at the open Beads tasks and implement the next ready one
Reading .beads/ task list...
Found task bd-a1b2: "Add input validation to registration form"
Reading internal/handlers/register.go...
Writing tests first, then implementation...
claude> /commit
Staged: internal/handlers/register.go, internal/handlers/register_test.go
Commit: feat(bd-a1b2): add input validation to registration form
CLAUDE.md

The AI's instruction manual for your project. Defines workflow rules, git conventions, quality checks, and how to interact with Beads. Committed to git so all developers share the same AI behaviour.

.claude/ directory

Contains slash command definitions, sub-agent prompts, lifecycle hooks, and security rules. Everything Claude Code loads at startup to give it structured capabilities.

Hooks

Shell scripts that fire on lifecycle events — before and after tool use, on session start and close. They auto-format code, scan for secrets, and write an audit trail without you having to think about it.

3

Track work with Beads

Beads is a git-native issue tracker installed by streb. Tasks live as JSONL files in .beads/, sync over git, and integrate directly into Claude Code's workflow. No Jira account, no external service, no browser needed.

Find work
$bd ready
# Shows tasks with no blockers
bd-a1b2 [P2] Add validation
bd-c3d4 [P3] Improve error msgs
$bd show bd-a1b2
# Full details + acceptance criteria

Check what's available before starting. Beads surfaces only unblocked, open tasks.

Create & claim
$bd create \
--title="Fix login redirect" \
--type=bug --priority=1
Created bd-e5f6
$bd update bd-e5f6 \
--status=in_progress
# Claim the task

Priority: 0 = critical, 1 = high, 2 = medium, 3 = low, 4 = backlog.

Close & sync
$bd close bd-e5f6 \
--reason="Fixed redirect"
$bd sync
# Push Beads state to git remote
Beads state syncs with every
git push automatically via hooks.

Closing multiple tasks at once: bd close bd-1 bd-2 bd-3

Beads command reference card

Command What it does
bd ready Show open tasks with no blockers — your starting point
bd list --status=open All open tasks (including blocked ones)
bd show <id> Full task detail — description, dependencies, notes
bd create --title="..." --type=task --priority=2 Create a new task (type: task | bug | feature)
bd update <id> --status=in_progress Claim a task / change status
bd close <id> Mark task complete
bd dep add <id> <depends-on> Add a dependency between tasks
bd blocked Show all blocked tasks and what's blocking them
bd stats Project health summary — open / closed / blocked counts
bd sync Sync Beads state with git remote
4

Use slash commands

Slash commands are structured workflows you type directly inside a Claude Code session. They trigger pre-built prompts in .claude/commands/ — from quick one-step operations to multi-step autonomous loops.

micro

Single-step atomic operations. Run fast, no quality gate. Use for routine actions like committing or formatting.

/commit · /format · /lint · /test
mid

Gate → Execute → Verify pattern. Reads context, performs work, then verifies the result before reporting done.

/review · /refactor · /done · /pr
macro

Autonomous multi-step orchestration via the Ralph loop. Runs until COMPLETE or BLOCKED, with full audit trail.

/implement-feature · /fix-bugs · /epic

The commands you'll use every day

/commit

Stage and commit the current changes with a well-formatted conventional commit message. Automatically links to the active Beads task.

# Inside claude session:
/commit
# → git add, conventional commit with bd-xxxx reference
/test

Run the project's test suite. Detects your language and toolchain automatically, then reports results with a pass/fail summary.

/test
# → auto-detects: go test ./... | npm test | pytest | cargo test
/review

Review the current diff for code quality, security issues, and adherence to project conventions. Returns a structured report.

/review
# → reads git diff, checks OWASP, style, patterns; reports findings
/done

Complete the current work: run quality gates, close the active Beads task, commit changes, and push. The full session-close sequence in one command.

/done
# → lint → test → commit → bd close → git push
/implement-feature

Autonomous implementation of a Beads task or epic. The agent loops — reading, writing, testing, fixing — until it signals COMPLETE or gets BLOCKED.

/implement-feature bd-a1b2
# → reads task → plans → implements → tests → closes → commits
/status

Show the current project, Beads, and git status in one view — open tasks, branch, uncommitted changes, and tool health.

/status
# → bd stats + git status + streb status
5

Check & maintain your environment

Three commands keep your streb environment healthy. Run them whenever something feels off — or just periodically to stay on top of updates.

streb status

Quick overview of your environment: installed tools with versions, authentication state, and whether Beads UI is running. Exits 1 if anything is broken.

streb Environment Status
✓ Claude Code v1.3.2 /usr/local/bin
✓ Beads CLI v0.9.1 /usr/local/bin
✓ Git v2.43.0 /usr/bin/git
✓ Auth configured (adesso AI Hub)
✓ Project initialized (v2)
All systems operational
streb doctor

Deeper diagnostic check. Validates not just that tools are installed, but that they are correctly configured and communicating. Run this when streb status shows issues or after an upgrade.

$ streb doctor
[ ✓ ] Claude Code: installed and authenticated
[ ✓ ] Beads: initialized in current project
[ ✓ ] Templates: CLAUDE.md and .claude/ present
[ ✓ ] Hooks: pre-command and post-command hooks active
[ ✓ ] Dagger: engine available
All checks passed
streb upgrade

Upgrade all components that streb manages — Claude Code, Beads, Beads UI, and Dagger — to their latest versions. Safe to run at any time.

$ streb upgrade
Checking for updates...
claude: v1.3.2 → v1.4.0 ↑ upgrading
beads: v0.9.1 (up to date)
dagger: v0.9.7 → v0.10.0 ↑ upgrading

A typical daily workflow

Here's what a normal day looks like once streb is set up. All of this happens in the terminal — no browser, no Jira login required.

Your terminal
# 1. See what's ready to work on
$bd ready
bd-a1b2 [P2] Add password strength meter
bd-c3d4 [P3] Improve 404 page copy
# 2. Check task detail and claim it
$bd show bd-a1b2
$bd update bd-a1b2 --status=in_progress
# 3. Start a Claude Code session
$streb run interactive --task-id bd-a1b2
# 4. Inside claude — describe the work
claude>Implement the task bd-a1b2. Write tests first, then implement.
# 5. Run quality checks and commit
claude>/test
claude>/review
claude>/done
# → closes bd-a1b2, commits, pushes
# 6. Exit and move to the next task
claude>/exit
$bd ready

Next steps