The features page is the one-liner tour. This is the deep dive — real commands, real config keys, and the scenarios where each feature is the right tool for the job.
One Web UI, many "brains." Pick the CLI agent that fits the job — Claude Code, Codex, Cline, Gemini, OpenCode, DeepAgents, Grok Build, Pi, Continue, Copilot, browser-use, OpenHands, or the generic llm agent for any model in Simon Willison's llm CLI plugin ecosystem — without changing how you start, monitor, or review jobs.
https://localhost:6886 and pick an agent from the dropdown in the Start New Job form.bin/sandbox start codex "Fix bug" -w /app/workspace/myproject.make start-open-source) ships an open-source agent set out of the box; additional vendor CLIs (e.g. Claude Code) are added via the optional local-vendor path (make install-agents) after reviewing that vendor's terms.llm agent) for straightforward Q&A or code review, and reserve a heavier agentic tool for multi-file refactors.Let one agent start, monitor, and control other agents through bin/sandbox — the CLI behind Manager Mode. It's how you build a "mayor" agent that delegates work to a fleet of worker agents and supervises them, instead of babysitting each one yourself.
bin/sandbox jobs, bin/sandbox status <suffix>, bin/sandbox log <suffix> -n 50.bin/sandbox delegate claude "Fix the login validation bug" -t task-abc123 -w /app/workspace/myproject.bin/sandbox wait <suffix> --timeout 900 or bin/sandbox watch <suffix> --interval 15.bin/sandbox status <suffix> → bin/sandbox kill <suffix> → bin/sandbox restart <suffix>.bin/sandbox send <suffix> "status?") instead of a human checking in.Stage jobs instead of firing them immediately. Queue missions, reorder them, delay auto-dispatch by up to 12 hours, and dispatch them to specific nodes — useful for batching work without needing every job to start the instant you write the prompt.
POST /api/queue to add, POST /api/queue/reorder to reposition, POST /api/queue/start to start the next (or a specific) job.Package a job's git state, transcript digest, task context, and original prompt into a bootstrap prompt for a successor agent — either to hand off a stalled job (rate-limited, erroring) or to clone a session's context into a new agent for a different goal.
Ctrl+J / Cmd+J submits the modal.bin/sandbox teleport <suffix> --preview to inspect the capsule first, then bin/sandbox teleport <suffix> -a codex -i "Continue from auth fix".bin/sandbox teleport <suffix> --mode clone -i "Write tests for the middleware you just fixed".Schedule agent jobs to run once at a specific time or recurring on a cron expression — nightly reviews, periodic audits, or a one-off job queued for later — all managed centrally from the Cron tab.
curl -X POST https://localhost:6886/api/cron/jobs \
-u "admin:${AUTH_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{
"name": "nightly-review",
"schedule_type": "recurring",
"cron_expression": "0 2 * * *",
"timezone": "UTC",
"workdir": "/app/workspace/myproject",
"prompt": "Review all recent commits for security issues"
}'"schedule_type": "once" and "one_time_at": "2026-01-28T18:00:00Z" instead of a cron expression./api/cron/export and /api/cron/import.Point a CI pipeline's failure webhook at Agent Starbase and it queues an agent job to fix the failure automatically — with a purpose-built prompt for the specific failure type (RSpec, Vitest, Prettier, license scan, or a generic step).
/api/webhook/ci:
curl -u "admin:${AUTH_PASSWORD}" -X POST https://localhost:6886/api/webhook/ci \
-H 'Content-Type: application/json' \
-d '{
"repo": "myproject",
"step": "rspec",
"branch": "main",
"commit_sha": "abc1234",
"files": "spec/models/user_spec.rb",
"output": "1) User validates email\n Failure/Error: ..."
}'step field selects a tailored fix prompt: prettier runs npx prettier --write, rspec/vitest get root-cause-fix instructions with explicit "do not skip or delete failing tests" guardrails, license-scan gets an advisory investigate-and-document prompt./api/webhook/server-error instead — it skips the git pull/push step since the code is already there.dind: true automatically for rspec/vitest steps so it can reach a real test database.A persistent, PostgreSQL-backed task board that gives agents structured memory across sessions — solving the "every session starts from zero" problem. Tasks carry status, priority, blocker dependencies, notes, and multi-assignee claims, so agents (and humans) can resume interrupted work.
bin/atask CLI, which wraps the v2 task API and handles auth automatically:
bin/atask ready # unblocked tasks to pick up
bin/atask claim task-abc12345 # set in_progress + assign yourself
bin/atask note task-abc12345 "Found root cause in auth middleware"
bin/atask review task-abc12345 # code done, awaiting human review
bin/atask complete task-abc12345 "Fixed email validation regex" # after human approvalbin/atask block <blocked-id> <blocker-id>.pending → in_progress → to_review → completed; agents set to_review, only humans set completed.curl -u "$TASK_AUTH_USERNAME:$TASK_AUTH_PASSWORD" http://web-ui:4567/api/v2/tasks/ready?project=agent-starbase.bin/atask reviews) instead of hunting through chat logs for what's done.Save reusable prompt snippets and compose them inline with {{template-name}} syntax. A short reference like {{read_docs}} expands to a full multi-line preamble at send time — the agent never sees the raw braces, and the whole team's agents get briefed the same way.
{{template-name}} anywhere in a prompt; it expands on submission. E.g. {{read_docs}} Fix the login bug in auth.rb.{{read_docs}} means something different for different repos.{{var:default}} is user-fillable with a default; template names always win over variable names of the same name.POST /api/prompt-templates/expand with {"text": "{{read_docs}} Fix the bug", "workdir": "/app/workspace/myproject"} to resolve a prompt server-side.Find a specific past job among hundreds by prompt text, log content, exit code, duration, agent type, or date range — a cross-agent search interface backed by a PostgreSQL trigram index, with an optional grep pass over the actual log file.
GET /api/sessions/search?prompt=auth&exit_code=%210&agent_type=claude&limit=20.exit_code=!0) from the last 7 days across all agent types in one query.Export an immutable, filtered snapshot of a structured agent transcript — full session or a selected event range — as a public URL, or download it as HTML, JSON, flat Chat JSON (for pasting into another LLM), or PDF.
Every agent runs in its own container as a non-root user with setuid binaries stripped, hard resource caps, and no default credentials — so a misbehaving or malicious agent job can't escalate privileges or take down the host.
make start-open-source — hardening is baked into the image and compose config, not something you opt into per job.docker stats agent_starbase_agent.make shell-running, then confirm you're non-root and can't escalate..env — nothing ships with "admin/admin".rm -rf-style destructive commands against its own workspace with confidence that a runaway process can't touch the host or other containers.Agent containers cannot reach the internet directly — iptables blocks all outbound traffic except to the Squid proxy, which enforces a domain whitelist and logs every request. Modes are hot-swappable, so you can loosen or tighten network access without rebuilding.
make proxy-strict (Anthropic API only), make proxy-default (approved AI providers + GitHub for Copilot jobs; package registries blocked), make proxy-open (everything, still logged — for discovering what a new integration needs).make proxy-logs or tail -f proxy/logs/access.log.make proxy-analyze to see what domains it hit, and add them to proxy/squid.conf.curl https://api.anthropic.com should work; curl https://google.com should fail unless whitelisted.Real-time and historical LLM spend tracking, with prompt-cache-aware accounting (cache writes and cache reads costed separately) so the numbers line up with your actual provider bill, plus a live 5-hour Claude usage window before you start a new job.
GET /api/usage/agent?agent=claude&period=monthly&start_date=2026-04-01&end_date=2026-04-30.GET /api/usage/job?agent=claude&suffix=<job-suffix>, or gateway-routed provider usage: GET /api/usage/providers?period=monthly.ccusage blocks --active --json --offline for the fastest local check.Watch an agent work in real time through a browser-rendered terminal backed by the actual tmux session — readable HTML output with live WebSocket streaming, plus a structured "transcript mode" that shows turn boundaries (assistant blocks, tool calls, results) instead of raw ANSI noise.
Ctrl+F/Cmd+F; fall back to the "Raw terminal" (xterm.js) button for cursor-addressed programs (vi, htop, interactive prompts) that the HTML view can't render.Clone, diff, commit, and merge without leaving the browser. Includes AI-generated commit messages (with automatic fallback models on failure), a worktree-aware workflow, and SSH-authenticated cloning via a dedicated git-helper daemon.
git@ SSH), optionally override the target path, click Clone. API: POST /api/git/clone-project with {"url": "...", "target_path": "..."}.grok-code, with fallback models on error).git clone manually.Browse, fuzzy-search, view, and edit any file across all workspace directories from the browser — with syntax highlighting, markdown/HTML rendering, and an optional upgrade to a full code-editor experience when the Code IDE plugin is enabled.
gitfeat finds GitFeatures.js).Ctrl+S/Cmd+S saves, Esc closes.ShowOff drives a real browser so an agent can visually prove frontend work — screenshots get uploaded as task attachments for reviewer inspection. Supports headless (Rodney), DinD-networked, and the Steel driver with live agent-to-human handoff for logins or 2FA.
showoff start --task task-abc123 --run "npm run dev" --port 3000
showoff browse http://localhost:3000/login
showoff fill "#email" "user@example.com"
showoff click "#submit"
showoff assert-text "Dashboard"
showoff finishshowoff start --task <TASK-ID> --driver steel --network myproject_default, then showoff browse ....showoff handoff --reason "Need 2FA login" --wait — the user takes control in their browser, then the agent resumes.showoff health (alias showoff doctor) to verify Docker reachability, the test compose file, and browser prerequisites before debugging further.localStorage language before navigating and screenshotting each one.Configure multiple OpenAI-compatible and Anthropic-compatible endpoints side by side — OpenRouter, OpenAI, DeepSeek, Ollama, Z.AI/GLM, MiniMax, a self-hosted LiteLLM gateway, or any vendor that implements the relevant API — and route individual jobs to whichever provider fits.
bin/aproviders lookup glm-5, or search for the right canonical ID: bin/aproviders models glm.bin/aproviders list --refresh.Attach screenshots, mockups, or diagrams to a prompt for multimodal tasks, or dictate a prompt out loud and have it transcribed automatically — both delivered directly into the same Start New Job form you already use.
Ctrl+V/Cmd+V) — up to 5 files, 5 MB each, 30 MB total request size.--print, images are embedded as base64 directly in the conversation from the first turn (stream-JSON mode); otherwise they're saved to disk and referenced by file path in the prompt.Ctrl+M/Cmd+M) in the Start New Job form, speak, click again to stop — text is transcribed via OpenAI GPT-4o transcription and inserted at the cursor.proposal_microphone_input feature flag enabled and an OpenAI transcription key configured (OPENAI_API_KEY on the web-ui container or saved in Settings).The Web UI ships in 15 languages via a lightweight client-side i18n system, so teams can work in the language they think in rather than being locked to English.
navigator.language; override it in the settings panel — the choice persists in localStorage.bin/i18n summary, bin/i18n missing [locale], bin/i18n missing-by-feature [locale].web/agent-sandbox-ui/locales/en/ to a new locale directory, translating the values (keys stay unchanged), and registering the code in the language selector.bin/i18n summary instead of manually eyeballing each locale file.docs/core/features/ — this guide covers the top 20 for evaluation purposes. See the Docs page for setup and architecture.
Community edition is free, self-hosted, and Apache 2.0. No signup required.
Read the quick start →