Make your AI coding tools (Claude Code, Codex, Antigravity CLI, OpenCode, Oh My Pi) work like a real engineering team โ with planning, testing, code review, and security audits built in.
16 agents. 53 skills in the library, a compact default catalog. One config across platforms.
Paste this command into your AI coding agent's chat (Claude Code, Codex, OpenCode, etc.) โ the agent will run it and set up everything automatically. Or run it directly in your terminal.
# macOS / Linux
curl -sSfL https://raw.githubusercontent.com/autopus-ai/autopus-adk/main/install.sh | sh
# Windows (CMD or PowerShell)
powershell -c "irm https://raw.githubusercontent.com/autopus-ai/autopus-adk/main/install.ps1 | iex"Why Autopus ยท Core Workflow ยท Features ยท Pipeline ยท Security ยท Docs
Start with one real task in an existing repository. After setup, run auto doctor
in your terminal to check the installed platform wiring.
| Your task | Agent-chat entry point | Expected scope |
|---|---|---|
| Reproduce and fix a bug within an existing contract | @auto fix "describe the failure" |
Reproduction test, focused patch, verification; low-risk fixes do not need a full SPEC set |
| Review existing changes | @auto review |
Findings and verification evidence |
| Build a feature with new requirements | @auto plan "describe the outcome", then @auto go SPEC-ID |
Explicit acceptance criteria, implementation, applicable gates |
These examples use the Codex plugin router. Native Codex skills use
$codex-auto-fix, $codex-auto-review, and the corresponding route names;
Claude Code and OpenCode use /auto ....
Autopus is most useful when a team needs consistent delivery rules across coding tools and repositories. A single, short task may need only the coding tool's native workflow. Start with the default split skill catalog and expand it when needed. See the harness comparison and evaluation protocol.
To inspect overhead, start with auto skill audit --dir . --platform codex --json.
Use explicit selection policies and replay cases before changing skill exposure,
and auto telemetry harness to compare supplied native/current/reduced runs.
The diagnostics guide includes runnable examples,
unknown-value semantics, and read-only verification planning.
See multiagent coordination for current platform boundaries, dependency-aware runner behavior, and worker ownership validation. Native subagent availability alone does not establish a team lifecycle or workspace isolation in the active session.
auto doctor agents inventories installed runtimes without model calls. Explicit
live collectors for Codex and OpenCode check native lifecycle evidence;
auto telemetry team attributes supervisor/worker usage without adding parent
rollups twice. See lifecycle checks and usage for
execution boundaries, examples, and the recorded live results.
What is checked: CLI gates validate specific artifacts, configuration, and results when invoked and configured. Skill instructions guide planning, TDD, and review; they do not prove that an agent followed every step. A passing gate is evidence for its checked scope, not a guarantee that an application is ready for production.
# Brainstorm with 3 AI models debating each other
/auto idea "Add OAuth2 with Google and GitHub providers" --multi --ultrathink
# One command does the rest โ plan, build with 16 agents, ship with docs
/auto dev "Add OAuth2 with Google and GitHub providers"Or if you prefer step-by-step control:
/auto plan "Add OAuth2 with Google and GitHub providers" --auto --multi --ultrathink
/auto go SPEC-AUTH-001 --auto --loop --team
/auto sync SPEC-AUTH-001๐ Pipeline โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Phase 1: Planning planner decomposed 5 tasks
โ Phase 1.5: Test Scaffold 12 failing tests created (RED)
โ Phase 2: Implementation 3 executors with disjoint file ownership
โ Phase 3: Testing coverage: 62% โ 91%
โ Phase 4: Review TRUST 5: APPROVE | Security: PASS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
5/5 tasks โ 91% coverage โ 0 security issues โ 4m 32s
The pipeline output above is illustrative, not a benchmark. Completion depends on the projectโs acceptance criteria and executed checks.
You're using AI coding tools. They're powerful. But...
- ๐ Platform lock-in โ Switch from Claude to Codex? Rewrite all your rules and prompts from scratch.
- ๐ฒ Hope-driven development โ "Add auth" โ AI writes code, skips tests, ignores security, forgets docs. Maybe it works.
- ๐ง Amnesia โ Next session, the AI forgets every decision. "Why did we use this pattern?" โ silence.
- ๐ค Solo agent โ One model, one context, one shot. Multi-file refactoring? Good luck.
AX is not "AI Transformation." AX is Agent Experience โ how AI agents perceive, navigate, and operate within your codebase. Just as UX designs for users and DX designs for developers, AX designs for agents.
flowchart LR
UX["๐ง UX\nUser Experience"]
DX["๐ฉโ๐ป DX\nDeveloper Experience"]
AX["๐ค AX\nAgent Experience"]
UX -->|"designs for"| U["Users"]
DX -->|"designs for"| D["Developers"]
AX -->|"designs for"| A["AI Agents"]
style AX fill:#ff6b6b,stroke:#c92a2a,color:#fff
Most AI coding tools are designed around a simple model: you prompt, it responds.
Autopus starts from a different question: What if the agent is the primary audience of your project's documentation?
Think about onboarding a new engineer. You wouldn't hand them a blank editor and say "build the auth system." You'd give them:
- An architecture overview so they understand the system
- Coding conventions so their code fits in
- Decision history so they don't repeat past mistakes
- A review process so mistakes get caught before shipping
AI agents need the same things. The difference is that every session is their first day.
Autopus is a harness โ a structured environment that gives agents the context, constraints, and workflows they need to produce code that a senior engineer would approve. Not through hope. Through design.
flowchart TB
subgraph OF ["๐งฌ Of the Agents"]
direction TB
O1["16 specialized agents\nform a software team"]
O2["Planner ยท Executor ยท Tester\nReviewer ยท Architect ยท ..."]
end
subgraph BY ["โก By the Agents"]
direction TB
B1["Agents run the pipeline\nautonomously"]
B2["Self-healing gates\nParallel worktrees\nMulti-model debate"]
end
subgraph FOR ["๐ฏ For the Agents"]
direction TB
F1["Every file, rule, and doc\nis designed for agents to parse"]
F2["Project-defined limits ยท opt-in @AX\nStructured Lore ยท SPEC format"]
end
OF --> BY --> FOR
style OF fill:#4c6ef5,stroke:#364fc7,color:#fff
style BY fill:#7950f2,stroke:#5f3dc4,color:#fff
style FOR fill:#f06595,stroke:#c2255c,color:#fff
| Principle | What It Means |
|---|---|
| Of the Agents | 16 specialized agents form a real engineering team โ planner, executor, tester, reviewer, security auditor, and more. Not one chatbot. A team. |
| By the Agents | Agents run the pipeline autonomously โ self-healing quality gates, parallel worktrees, multi-model debate. Humans set the goal; agents handle the rest. |
| For the Agents | Every file, rule, and document is designed to be parsed by agents, not just read by humans. Structure over prose. That's AX. |
| Every Session is Day One | Agents lose all context between sessions. The harness provides institutional memory โ architecture, decisions, conventions โ so they start informed, not blank. |
๐ Autopus doesn't make agents smarter. It makes them informed. That's AX.
File size alone does not establish cohesion or correctness. Autopus reports large source files, but enforces a ceiling only when the project sets a positive architecture.max_file_lines. Absent or 0 is advisory; keep cohesive code together and split by real responsibility. Repository-specific CI limits remain authoritative.
โ Traditional:
service.go (1,200 lines) โ Agent loses context halfway through
โ
Autopus:
service.go (180 lines) Handler logic
service_auth.go (120 lines) Auth middleware
service_repo.go (150 lines) Data access
โ Every file fits in one context window. Every file has one job.
This isn't just about file size. The entire harness is agent-readable by design:
| Layer | How It's Agent-Friendly |
|---|---|
| Rules | Structured markdown with IMPORTANT markers โ agents parse, not skim |
| Skills | YAML frontmatter with triggers โ agents auto-activate the right skill |
| Docs | Tables over paragraphs, checklists over prose โ parseable, not readable |
| Code | Clear responsibilities and explicit project limits; no universal line-count ceiling |
๐ Human-readable is a bonus. Agent-readable is the requirement.
Autopus doesn't give you one AI assistant โ it gives you a software engineering team of 16 specialized agents with defined roles, quality gates, and retry logic.
๐ง Planner โ Decomposes requirements into tasks
โก Executor รN โ Implements code in parallel worktrees
๐งช Tester โ Writes tests BEFORE code (TDD workflow instruction)
โ
Validator โ Checks build, lint, vet
๐ Reviewer โ TRUST 5 code review
๐ก๏ธ Security โ OWASP Top 10 audit
๐ Annotator โ Documents code with @AX tags
๐๏ธ Architect โ System design decisions
๐ฌ Deep Worker โ Long-running autonomous exploration + implementation
... and 7 more
One model has blind spots. Three models catch each other's mistakes.
Every AI model has its own strengths and biases โ Claude is thorough but verbose, Codex is fast but sometimes shallow, Gemini brings a different perspective entirely. When you use --multi, they don't just work in parallel โ they review, challenge, and build on each other's ideas.
# Add --multi to any command for multi-model intelligence
/auto idea "new feature" --multi # 3 models brainstorm โ cross-pollinate โ ICE score
/auto plan "new feature" --multi # 3-model read-only planning advisory โ one SPEC writer โ independent review
/auto go SPEC-ID --multi # 3 models debate your code reviewflowchart TB
C["๐ Claude\nIndependent Analysis"] --> D["โ๏ธ Cross-Pollination\nEach model sees others' ideas"]
X["๐ Codex\nIndependent Analysis"] --> D
G["๐ Gemini\nIndependent Analysis"] --> D
D --> R["๐ Round 2\nAcknowledge ยท Integrate ยท Risk"]
R --> J["๐๏ธ Blind Judge\nAnonymized scoring"]
Why this matters:
- A bug that Claude misses, Codex catches. An edge case Codex ignores, Gemini flags.
- Ideas that one model would never generate emerge from cross-pollination.
- The blind judge scores anonymized results โ no model favoritism.
- Research shows multi-agent debate produces higher-quality outputs than any single model alone.
๐ก
/auto devenables--multiby default. Every plan gets multi-model review. Every code review gets cross-checked. You don't have to think about it.
4 strategies: Consensus (merge agreements) ยท Debate (adversarial review + judge) ยท Pipeline (chain outputs) ยท Fastest (first wins)
Quality gates don't just fail โ they fix themselves and retry.
flowchart LR
R["๐ด RED\nRun Phase"] --> G["๐ข GREEN\nGate Check"]
G -->|PASS| Done["โ
Next Phase"]
G -->|FAIL| F["๐ง REFACTOR\nFix Issues"]
F --> L["๐ LOOP\nRetry"]
L --> R
L -.->|"3ร no progress"| CB["โ Circuit Break"]
style R fill:#ff6b6b,stroke:#c92a2a,color:#fff
style G fill:#51cf66,stroke:#2b8a3e,color:#fff
style F fill:#ffd43b,stroke:#f08c00,color:#000
style L fill:#748ffc,stroke:#4263eb,color:#fff
style CB fill:#868e96,stroke:#495057,color:#fff
/auto go SPEC-AUTH-001 --auto --loop๐ RALF [Gate 2] โโโโโโโโโโโโโโโโโโ
Iteration: 1/5 โ Issues: 3
โ spawning executor to fix golangci-lint warnings...
๐ RALF [Gate 2] โโโโโโโโโโโโโโโโโโ
Iteration: 2/5 โ Issues: 3 โ 0
Status: PASS โ
RALF = RED โ GREEN โ REFACTOR โ LOOP โ TDD principles applied to the pipeline itself. Built-in circuit breaker prevents infinite loops.
The worktree execution path isolates executors in separate Git working directories. Codex native workers share one cwd/filesystem: assign disjoint files and serialize overlapping edits. The following example applies to the worktree path.
Phase 2: Implementation
โโโ โก Executor 1 (worktree/T1) โ pkg/auth/provider.go โ
โโโ โก Executor 2 (worktree/T2) โ pkg/auth/handler.go โ
โโโ โก Executor 3 (worktree/T3) โ pkg/auth/middleware.go โ
Phase 2.1: Merge (task-ID order)
โ T1 merged โ T2 merged โ T3 merged โ working branch
The worktree path supports up to 5 concurrent worktrees. File ownership and ordered integration reduce conflicts; merges still require verification. Native worker capacity depends on the platform and available runtime limits.
Every commit captures the why, not just the what. Queryable forever.
feat(auth): add OAuth2 provider abstraction
Why: Need Google + GitHub support, extensible for future providers
Decision: Interface-based abstraction over direct SDK usage
Alternatives: Direct SDK calls (rejected: too coupled)
Ref: SPEC-AUTH-001
๐ Autopus <noreply@autopus.co>
9 structured trailers. Query with auto lore query "why interface?". Stale decisions auto-detected after 90 days.
Let AI iterate autonomously โ measure, keep or discard, repeat.
/auto experiment --metric "go test -bench=BenchmarkProcess" --direction lower --max-iter 5๐ Experiment โโโโโโโโโโโโโโโโโโโโโโโ
Iter 1: baseline โ 1200 ns/op
Iter 2: optimize โ 850 ns/op โ keep (29% improvement)
Iter 3: refactor โ 900 ns/op โ discard (regression)
Iter 4: cache โ 620 ns/op โ keep (27% improvement)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Result: 1200 โ 620 ns/op (48% improvement)
Built-in circuit breaker prevents runaway iterations. Simplicity scoring penalizes over-complex solutions. Each iteration is a git commit โ easy to review or revert.
โ ๏ธ Status: Experimental โ CLI commands (auto experiment) are available but skill-level integration is in progress. Core iteration loop works; full pipeline integration is coming.
Autopus pipelines don't just fail โ they remember why and prevent the same mistake next time.
Gate 2 FAIL: golangci-lint โ unused variable in pkg/auth/
โ Auto-recorded to .autopus/learnings/pipeline.jsonl
โ Next /auto go: learning injected into executor prompt
โ Same mistake never repeated
Every pipeline failure is captured as a structured learning entry. On the next run, relevant learnings are automatically injected into agent prompts โ giving your pipeline institutional memory across sessions.
Deploy first, verify immediately. canary runs build verification, E2E tests, and browser health checks against your live deployment.
/auto canary # Build + E2E + browser auto-verification
/auto canary --url https://myapp.com # Target a specific deployment URL
/auto canary --watch 5m # Repeat every 5 minutes
/auto canary --compare # Compare against previous canary reportGenerates canary.md with full diagnostics โ build status, test results, accessibility scores, and screenshot diffs.
Not every task needs Opus. Autopus analyzes message complexity and routes to the right model automatically.
Simple query โ Haiku (fast, cheap)
Code review โ Sonnet (balanced)
Architecture โ Opus (deep reasoning)
No configuration needed โ the router evaluates token count, code complexity, and domain signals to pick the optimal model. Override anytime with --quality ultra.
Setting up AI providers shouldn't require reading docs. auto connect walks you through a 3-step guided setup.
auto connect # Interactive wizard: server auth โ workspace โ OpenAI OAuth
auto connect status # Deterministic local verify/readiness summaryThe current release authenticates with the Autopus server, saves the selected workspace, and completes the OpenAI OAuth handoff. Use auto connect status or auto desktop status --json to verify the saved local state.
Desktop runtime ownership note:
- The packaged
autopus-desktop-runtimesource/build/release provenance now lives inautopus-desktop/runtime-helper/. - ADK keeps
auto connect,auto desktop ..., andauto worker ...as harness or compatibility surfaces, but normal desktop runtime shipping no longer depends on anautopus-adkcheckout.
ADK Worker runs A2A + MCP hybrid tasks locally with browser login, JWT refresh, and direct platform connectivity. No separate bridge daemon or worker API key exchange is required for the default production path.
What it is for:
- Connecting a local workspace to the Autopus platform worker loop
- Receiving platform-dispatched tasks and executing them with local tools
- Reusing the same security, budget, and audit rails as the main harness
What to do today:
- If you're here for
auto init, Codex@auto ..., or OpenCode/auto ..., you can ignore Worker for now auto worker ...is an optional advanced surface that is still being rolled out and documented
Workers don't run forever. Each executor gets a tool-call budget โ preventing runaway agents while ensuring enough room to complete complex tasks.
As pipelines progress through phases, earlier context gets compacted automatically into a fixed schema: Goal, Constraints, Progress, Decisions, Relevant Files, Next Steps, and Critical Context. Tool calls and results are pruned as pairs, unsafe provider payload bodies are omitted, and every applied compaction emits metadata with summary ids, source refs, reason codes, and budget/blocker state.
Crash mid-pipeline? Resume exactly where you left off.
/auto go SPEC-AUTH-001 --continue # Resume from last checkpointYAML-based checkpoints save pipeline state after every phase. Stale detection prevents resuming outdated sessions. Combined with --auto --loop, you get a fully resilient autonomous pipeline.
Auto-generate and execute E2E test scenarios โ no manual test writing needed.
auto test run # Run all scenarios
auto test run -s init --verbose # Run a specific scenarioAutopus analyzes your codebase (Cobra commands, API routes, frontend pages) and generates typed scenarios with verification primitives (exit_code, stdout_contains, status_code, json_path, etc.). Incremental sync keeps scenarios up-to-date as code evolves.
AI agents can directly interact with web pages โ open URLs, read accessibility trees, click elements, fill forms, and capture screenshots.
/auto browse --url https://example.com/settings- @e1 heading "AI Settings"
- @e2 button "Provider Mode"
- @e3 switch "Auto Fallback" [checked]
- @e7 button "Save"
Terminal-aware: automatically selects cmux browser (in cmux) or agent-browser (fallback). Snapshot โ Act โ Verify loop โ agents see the page as an accessibility tree and interact by reference.
On pane-capable team runtimes, each team member can get a terminal pane with real-time log streaming.
โโ lead โโโโโโโโโโโฌโ builder-1 โโโโโโโโ
โ Phase 1: Plan โ T1: auth.go โ
โ 5 tasks created โ implementing... โ
โโ tester โโโโโโโโโผโ guardian โโโโโโโโโค
โ scaffold: 12 โ waiting... โ
โ RED state โ โ โ
โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโ
Works in cmux and tmux. Plain terminals degrade gracefully to log-only output.
Before implementation, Autopus fetches latest library docs automatically โ so agents never work with stale API knowledge.
Phase 1.8: Doc Fetch
โ Detected: cobra v1.9, testify v1.11
โ Fetched: 2 libraries (6000 tokens)
โ Injected into executor + tester prompts
Context7 MCP โ WebSearch fallback โ skip (never blocks pipeline). Adaptive token budget: 1 lib โ 5000 tokens, 5 libs โ 2000 tokens each.
| Feature | Command | What It Does |
|---|---|---|
| Reaction Engine | auto react check/apply |
Detects CI failures, analyzes logs, generates fix reports automatically |
| Meta-Agent Builder | auto agent create / auto skill create |
Scaffold custom agents and skills from patterns |
| Hard Gate | auto check --gate |
Enforce mandatory pipeline gates (mandatory/advisory modes) |
| Self-Update | auto update --self |
Verified binary update โ atomic exchange on Darwin/Linux, .old recovery on Windows |
| Cost Tracking | auto telemetry cost |
Token-based pipeline cost estimation per model |
| Issue Reporter | auto issue report |
Auto-collect error context, sanitize secrets, create GitHub issues |
| Signature Map | auto setup |
Extract exported API signatures (Go + TypeScript) via AST analysis |
| Test Runner Detection | auto init |
Auto-detect jest, vitest, pytest, cargo test frameworks |
auto init # auto-detects supported installed AI coding CLIsOne autopus.yaml generates native configuration for every detected supported platform.
| Platform | What Gets Generated |
|---|---|
| Claude Code | .claude/rules/, .claude/skills/<name>/SKILL.md, .claude/agents/, .claude/workflows/, .claude/settings.json, CLAUDE.md |
| Codex | .codex/skills/codex-<name>/SKILL.md, .codex/agents/, .codex/hooks.json, .codex/config.toml, .agents/plugins/marketplace.json, .autopus/plugins/auto/, AGENTS.md |
| Antigravity CLI | .agents/plugins/autopus/, .agents/hooks.json, plus retained .gemini/ / GEMINI.md compatibility surfaces |
| OpenCode | .opencode/rules/, .opencode/agents/, .opencode/commands/, .opencode/plugins/, .agents/skills/, AGENTS.md, opencode.json |
| Oh My Pi (OMP) | .omp/rules/autopus-*.md, .omp/skills/<name>/SKILL.md, .omp/commands/, optional .omp/extensions/ |
Antigravity discovers the workspace plugin directly. auto init and auto update
do not import a project-rendered bundle globally, and no longer emit the unused
.agents/commands/ mirror. Inspect the generated bundle with
agy plugin validate .agents/plugins/autopus; this checks structure, not whether
runtime permissions or hooks have executed. Native user permission settings are preserved.
The 2026-09-13 compatibility checks used Claude Code 2.1.263, Codex CLI 0.153.4, Antigravity CLI 1.1.26, OpenCode 1.18.7, and OMP 18.1.19. These are observed test versions, not a claim that every newer release or feature is verified. Codex 0.154.0 worktree support remains experimental; the harness does not silently enable experimental topology or replace user permission settings.
Codex note:
- Use
$codex-auto-plan ...,$codex-auto-go ..., or another$codex-auto-<route>skill immediately afterauto initorauto update - Install the generated local plugin from
.agents/plugins/marketplace.json(.autopus/plugins/auto) to enable the friendlier@auto ...syntax - The plugin provides the
@auto ...router. Detailed workflows are unique native skills under.codex/skills/codex-<name>/SKILL.md; Autopus does not generate repository.codex/prompts/or markdown.codex/rules/ - Multi-agent mode uses
[features.multi_agent_v2]with the six current collaboration tools and a shared cwd/filesystem; it does not use legacysend_input,resume_agent, orclose_agent - The requested spawned-worker ceiling is
codex.agents.max_concurrent_threadsinautopus.yaml(default 4, range 1โ64); the coordinator is not included.auto updatewrites the requested value to.codex/config.toml. Namespace selection must be backed by CLI compatibility evidence; an unverified version uses the documented[agents] max_concurrent_threads_per_sessionwith the assumption stated. Explicit harness settings survive regeneration. Host and account limits still take precedence. auto doctorseparates the requested count and the value inspected on disk from the loaded-session and effective limits. Reading a project or user config file does not prove that an active session loaded it. Unobservable session limits remainunknown, with the inspection limitation reported. Start a new session after changing configuration; Autopus never interrupts active agents or equates this setting with local build/test concurrency..codex/hooks.jsonis generated by default, while structural TOML merging preserves unrelated user configfeatures.multi_agentis still a live native switch. Explicittrueandfalsevalues, including user comments, survive regeneration and cleanup; equality with a current default is not ownership evidence.
OpenCode note:
/auto ...and direct aliases like/auto-plan ...are generated under.opencode/commands/- Native rule/agent/plugin files live under
.opencode/, while reusable skills are published under.agents/skills/ - The default
skills.compiler.mode: splitpublishes core skills and their required references. Opted-in long-tail bundles use.opencode/skills/; workflow-only rules remain readable without loading into every initial prompt. - Helper workflows like
/auto status,/auto map,/auto why,/auto verify,/auto secure,/auto test,/auto dev, and/auto doctorare generated as OpenCode-native command wrappers opencode.jsonnow registers the managed hook plugin automatically, so.opencode/plugins/autopus-hooks.jsis live immediately afterauto initorauto update
Oh My Pi note:
- Rules are written flat as
.omp/rules/autopus-<name>.md. OMP scans each rule root non-recursively, so a nestedrules/autopus/directory would never reach the session; theautopus-filename prefix is the namespace instead - Only the manifest-recorded
autopus-files are ADK-owned. Your own rules in the same directory (.omp/rules/mine.md) are left untouched byauto updateandauto platform remove omp auto initignores.omp/rules/as a directory pattern. A filename glob such as.omp/rules/autopus-*.mdwould silently remove every generated rule from OMP discovery, which is why the directory form is used. To track your own rule despite the ignore, rungit add -f .omp/rules/mine.md(gitignore negation does not work inside an ignored directory) or keep it outside.omp/rules/- OMP uses its priority-100 native
.omp/skills/<name>/SKILL.mdand.omp/commands/*.mdroots. It does not register.agents/skillsas a custom directory and does not create a base.omp/config.ymlunless project-managed settings require one auto doctorverifies OMP 18.0.5 through version/help/config metadata and a provider-free RPC handshake. The handshake selects a bootstrap model locally but sends no prompt and performs no provider request
For everyday model setup, run:
auto qualityauto quality opens the agent model composition first (Per-agent model composition). Answer t there, or a target name such as claude-code, to configure one surface instead: the shared quality mode or one coding tool's agent models. Only tools whose generated agents carry a model are offered โ Claude Code, Codex, and OMP; Antigravity CLI and OpenCode inherit the session model and are named as such instead of being silently omitted.
Claude Code / Codex: the wizard prints every agent with its relative tier and the concrete model that tier becomes on that tool, takes agent=tier edits (fable, opus, sonnet, haiku), previews the result, and on y stores the edits as a quality.presets.<name> entry bound through quality.providers.<tool>. Each tool keeps its own preset, so moving Claude Code's executor to fable leaves Codex where it was. quality.default never changes. A customized balanced or ultra preset is not overwritten: the editor refuses that name and cancels after three refusals. Run auto update (or auto quality --apply) to regenerate the agent files.
OMP: choose balanced/ultra โ GPT/Claude, or custom to pick an installed model per bundled agent. The custom path still anchors a family for the agents you do not pin, lists the installed catalog with each model's thinking levels, and labels every prompt with the capability that agent's route requires. A model the catalog says cannot serve that capability is refused at the prompt with the models that can. Review the compact agent/model/thinking table and type y to apply. This line editor keeps OMP profiles in both modes; the composition step's OMP tab in the default autopus mode pins agents without a profile instead (Per-agent model composition).
Enter, n, or EOF at confirmation cancels without changes; --apply is not required.
Existing agent overrides and multi-provider review settings are preserved.
An explicitly defined custom profile keeps its own model families.
Start a new OMP session after applying.
Advanced and automation commands remain available:
auto platform omp models # installed model catalog
auto platform omp profile apply balanced --family gpt --plan
auto platform omp profile apply balanced --family gpt
auto platform omp explain
auto status --platform ompWhen the installed OMP catalog lacks family, capability, or authorization metadata, models still returns exact native selectors and thinking support as a degraded display-only result. Automatic profile generation and strict routing remain blocked with catalog_metadata_insufficient; Autopus does not infer those fields or inspect credentials. A pre-existing explicit profile may instead select catalog_trust: operator-attested: Autopus first runs the same bounded strict probe, then uses only the exact intersection of native selectors and operator declarations while keeping auth/keyless unobserved.
Activation verifies every projected @role through an OMP RPC get_state session loaded with the generated overlay. It sends no prompt and makes no model-provider request; the resulting provider/model/thinking map is bound into the receipt and independently rechecked by explain/doctor.
From v0.50.126 OMP serves the 16 Autopus agents by default (SPEC-MODELUX-003). Generation writes .omp/agents/<agent>.md for every canonical agent, owned by the OMP manifest and carrying no model field; thinkingLevel is the agent's declared effort and appears only when no task.agentModelOverrides route names that agent. It also claims task.disabledAgents: [scout, security-reviewer, sonic, designer, librarian] in the project .omp/config.yml, which plain omp reads: every bundled agent but task across the omp releases Autopus supports (18.6.1 bundles the first three, 17.2.7 also designer and librarian), and a name the installed omp does not bundle is an inert filter entry. The bundled task agent stays enabled because an unnamed dispatch runs it, and the generated reviewer replaces the bundled one with the output schema of the omp 18.6.1 reviewer, so /review keeps its verdict. With a role profile, routes are written as task.agentModelOverrides keyed by the 16 names and task (task follows a task pin, then a planner pin, then the profile's planner route) through the existing activation, attestation, readback, and rollback; without a profile, pins alone (below) route only the pinned agents, and task through its own or planner's pin, and with no pin every agent inherits the session model.
auto update previews the move once โ + .omp/agents/<agent>.md lines, task.disabledAgents: scout, security-reviewer, sonic, designer, librarian, and OMP now uses the 16 Autopus agents; set role_model_policy.agent_source: native to go back during v0.50.126. โ and performs it in the OMP adapter's one transaction without writing autopus.yaml. An .omp/agents/<agent>.md the manifest does not record is a user file and stays byte-identical (.omp/agents/<agent>.md is a user file; left unchanged). A task.disabledAgents you set to another value is user-owned: Autopus leaves it, prints task.disabledAgents in .omp/config.yml is user-owned; scout, security-reviewer, sonic, designer, and librarian stay enabled, and doctor reports agents:disabled_agents_user_owned as degraded; only auto clean drops that mark.
Doctor's OMP agent catalog turns degraded with agents:autopus_agent_user_file while a canonical .omp/agents/<name>.md is a user file, because OMP then runs that file instead of the Autopus definition. A project .omp/config.yml the managed parser cannot read safely โ a symlink, invalid YAML, several documents, an alias, a flow-style mapping, or a lone CR, NEL, LS, or PS line break โ is never written: auto update prints task.disabledAgents was not written: .omp/config.yml cannot be read safely (a symlink, invalid YAML, several documents, an alias, a flow-style mapping, or a lone CR, NEL, LS, or PS line break); scout, security-reviewer, sonic, designer, and librarian stay enabled instead of the task.disabledAgents: โฆ preview line, and doctor reports agents:project_config_unclaimable, a state distinct from a user-owned value. When a ledger already claims the key and the file then gains such a line break, the file and the ledger stay as they are, auto update prints task.disabledAgents is left as last written: โฆ, and auto clean refuses with project_config_unclaimable until the file reads cleanly. Once no ledger claims .omp/config.yml, ADK keeps none of the backups its transactions recorded of that file except one: the rollback artifact of the newest committed transaction that released the ledger, applied to the config as that release left it. It stays under .autopus/backup/ until the next release replaces it, so a release can still be undone by hand; a release that deleted a config ADK had created leaves none, and auto clean restores from the verified preimage and leaves no rollback artifact of the config.
role_model_policy.agent_source: native restores the behavior described below for v0.50.126 only; the key and the native path are planned for removal in v0.50.127. Any other value fails to load with role_model_policy.agent_source_invalid, and the key alone configures no role model policy. Roll back with this key, not with an older binary: auto older than v0.50.126 cannot read an autopus.yaml that sets agent_source or quality.presets.*.efforts, and v0.50.125 rejects the project ownership ledger (.autopus/omp-model-project-ownership-v1.json) once it carries the new agent-surface fields. The next two paragraphs describe agent_source: native.
auto init writes no agent definition for OMP. OMP registers its own bundled agents (task, scout, reviewer, security-reviewer, sonic) and resolves a task agent by exact name, so a generated .omp/agents/<name>.md would only shadow the bundled one. A role profile binds models through task.agentModelOverrides instead, and the 16 ADK work roles collapse onto those five agents. auto platform omp explain and auto status --platform omp show one row per bundled agent with its role/capability provenance and effective selector; a project file at .omp/agents/<bundled name>.md is reported as native_agent_shadowed.
Several role keys can land on one bundled agent. The representative role decides โ task follows planner, scout follows explorer, sonic follows validator โ and every plan row, explain row, and receipt entry reports the governing key, so a pre-cutover policy that names all 16 roles keeps working and the applied entry stays visible. A set with no representative row has nothing to rank it and is refused with omp_native_agent_conflict naming the entries to reconcile.
Select the OMP mode and family together with profile apply balanced --family gpt|claude.
The stored family names are openai and anthropic; both canonical names are also accepted.
--plan previews the bundled agents, their requested/effective model and thinking, candidate order,
fallback attempts, and blockers without writing configuration or activating a profile.
Apply verifies the same routes through the installed OMP catalog and provider-free RPC readback.
| Bundled agent (representative role) | GPT balanced | Claude balanced |
|---|---|---|
task (planner), reviewer, security-reviewer (security-auditor) |
GPT-6 Astra max |
Claude Fable 5.1 max |
scout (explorer), sonic (validator) |
GPT-5.6 Luna max |
Claude Sonnet 5 high |
Ordinary reviewers follow the selected family. Multi-provider review remains a separate
orchestra.providers policy: changing this profile preserves its models and judge.
For top-model review, keep Fable max, Astra max, and the selected Gemini model's highest
supported thinking level (high for Gemini 3.1 Pro; it does not expose max).
Balanced has no implicit lower-model fallback. Missing models or unsupported thinking block
apply before writes, and a blocked preview returns nonzero with per-agent reasons.
Native retry.modelFallback is false when the profile has no explicit fallback chains.
Override one agent without copying the full profile:
auto platform omp profile apply balanced --family gpt --agent executor=openai-codex/gpt-6-astra:max --plan
auto platform omp profile apply balanced --family gpt --agent executor=openai-codex/gpt-6-astra:max
auto platform omp profile apply balanced --agent executor=inheritRepeat --agent for multiple agents. Pins are stored in role_model_policy.agents.<name>.candidates
and remain explicit overrides across profile/family changes until cleared with =inherit.
On a native catalog without semantic metadata, a pin must have an exact family declaration
in the shipped built-in profiles or the selected custom profile; arbitrary unknown models are rejected.
This standard matrix is shared with native Claude Code and Codex. OMP's built-in routes remain
independent of custom quality.presets.balanced.agents tiers; OMP overrides use role_model_policy.agents.
Ultra and custom OMP profile definitions retain their existing behavior.
An explicit role_model_policy.profiles.balanced definition still wins over the built-in;
--family is rejected for such a custom definition instead of silently ignoring it.
OMP profile selection does not change quality.default, standalone Claude/Codex settings,
or the supervisor's native model roles. auto quality show reports OMP's independent selection.
OMP policies are provider-neutral and inactive until a named profile is selected. Prefer the non-destructive overlay mode. The built-in profiles use shipped operator-attested declarations intersected with the installed catalog. For a custom profile, use strict mode when semantic catalog metadata is available; otherwise use operator-attested mode only after reviewing its exact selectors, families, capabilities, and thinking levels. A ${NAME} placeholder anywhere in a role_model_policy model candidate โ its selector, thinking, family, or a key, also when reached through a YAML alias โ fails the load with role_model_policy.candidate_placeholder_unsupported, which names the path only, while placeholders in the root profile and family still load. Placeholder values can no longer change the YAML structure of autopus.yaml: a value that would โ for example one that starts with [, {, !, &, or *, or holds : , where its placeholder is unquoted โ or that holds a line break fails the load with an error that names the variable and never the value, as does an explicit tag other than !!str on a placeholder; written as '${NAME}', a placeholder passes any printable one-line value without ' as the exact string. Custom profile example:
role_model_policy:
version: v1
profile: omp-balanced
profiles:
omp-balanced:
config_mode: overlay
catalog_trust: operator-attested
capabilities:
deep_reasoning:
required: true
candidates:
- selector: provider-a/reasoner
family: family-a
thinking: high
coding_tool_use:
required: true
candidates:
- selector: provider-a/coder
family: family-a
thinking: medium
fast_validation:
required: true
candidates:
- selector: provider-b/fast
family: family-b
thinking: medium
vision_design:
required: true
candidates:
- selector: provider-b/vision
family: family-b
thinking: high
independent_dissent:
required: true
candidates:
- selector: provider-b/reviewer
family: family-b
thinking: high
deterministic_transform:
required: true
candidates:
- selector: provider-a/transform
family: family-a
thinking: medium
family_diversity:
enabled: true
roles: [autopus_reviewer, autopus_security_auditor]- Candidate order is the fallback order. In strict mode,
selector,family, andthinkingmust match observed semantic catalog metadata. In operator-attested mode, selectors must exist in the bounded native catalog and family/capability/thinking come only from the explicit profile; this does not claim that authentication will succeed. The placeholders above are not model recommendations. safetyis optional. Add explicitapproval_modeorisolation_modevalues only after the installed-version capability probe reports support; omission leaves those keys unclaimed.- Use
project-managedonly when the project intentionally owns the target OMP keys. Every claimed key needs the observedprior_fingerprintandcomplete: true; an array claim such asretry.fallbackChainsalso needsfull_array_ownership: true.
Context optimization is separately opt-in. The selected profile below keeps history in shadow and memory off; the active profile is defined but not selected.
omp_context_policy:
profile: omp-safe-shadow
profiles:
omp-safe-shadow:
history_mode: shadow
memory_mode: off
history_target_tokens: 1000
fallback: canonical_full
capability_policy: probe_required
runtime_root_policy: isolated_task_owned
mutation_scope: session_overlay
omp-active-probed:
history_mode: active
memory_mode: off
history_target_tokens: 1000
fallback: canonical_full
capability_policy: probe_required
runtime_root_policy: isolated_task_owned
mutation_scope: session_overlay- Select
omp-active-probedonly when an exact capability probe succeeds, the runtime is task-owned (isolated_task_owned), and a fresh promotion attestation has been recomputed from at least 20 complete balanced AB/BA raw pairs and bound to the exact policy, session/binding, and canary digest. A missing, stale, mismatched, duplicate, or aggregate-only claim remains inshadowor is blocked. Useno_sessiononly when no session runtime exists. - The managed OMP bridge supports long-lived supervisor ACKs, exact canonical reinjection, and same-session compaction/rehydration through the current
compaction.methodOrdercontract. Generation alone still does not activate optimization:omp-active-probedremains fail-closed until a fresh task-owned runtime receipt proves the installed lifecycle and cleanup. - Memory supports
offor observation-onlyshadow. Shadow memory requires amemory_namespace; memory is never actively injected, and active receipts cannot claim memory injections or document omissions. - Model resolution evidence is written to the gitignored runtime artifact
.autopus/omp-model-resolution-v1.json. Task-scoped context evidence uses.autopus/runtime/omp-context/<task-id>/<session-id>/receipt.json. - Run
auto doctor(orauto doctor --json) to re-probe the installed CLI and configuration. Receipts must contain neither credentials, prompt bodies, nor absolute paths. Live provider transport checks can incur cost and run only with explicitauto doctor --provider-smokeopt-in; a stale receipt is not proof that a current canary passed.
| Topic | Codex | OpenCode |
|---|---|---|
| Primary command syntax | @auto <subcommand> ... |
/auto <subcommand> ... |
Works immediately after auto init |
$codex-auto-<route> ... native skills |
/auto ... and /auto-<subcommand> ... wrappers |
| Extra install step | Install the generated local plugin from .agents/plugins/marketplace.json only when you want @auto ...; native $codex-auto-<route> skills need no extra step |
No extra router install step. opencode.json wires the managed plugin automatically |
| Generated surface | .codex/skills/codex-*/, .codex/agents/, .codex/hooks.json, .codex/config.toml, .agents/plugins/marketplace.json, .autopus/plugins/auto/, AGENTS.md |
.opencode/commands/, .opencode/agents/, .opencode/rules/, .opencode/plugins/, .agents/skills/, AGENTS.md, opencode.json |
| What works well today | Native skills, local plugin routing, and Multi-Agent V2 Lead/Builder/Guardian coordination | Native command wrappers, task-based workers, and managed hook plugin wiring |
| Current boundary | Multi-Agent V2 workers share one cwd/filesystem; parallel writers need disjoint ownership | Claude-style Agent Teams and Workflow primitives are not claimed |
| Worker surface | spawn_agent, send_message, followup_task, targetless wait_agent, interrupt_agent, list_agents |
OpenCode task(...) workers |
Split compiler note:
skills.compiler.mode: splitis the default. It publishes the core/dependency set and all/autoroutes; optional recipes remain available throughauto skill listandauto skill info <name>.- Select
skills.compiler.mode: fullto publish the complete compatible library, or choosebundles/explicit_skills. In split mode, opted-in long-tail skills use.opencode/skills/or.autopus/plugins/auto/skills/;opencode_long_tail_target: sharedandcodex_long_tail_target: reposelect native visible locations.
Pipeline entrypoints load their references/ details only when needed. Ordinary work stays
inline; independent work, specialist review, or context isolation justifies delegation.
auto pipeline run uses implement โ validate โ review only after one compact contract
and the actual change set validate as low risk. Missing, ambiguous, malformed, or
contradicted authorization retains all five phases. Resume requires the same authorized
route. Annotation is opt-in through auto spec gates --annotation; validation, security,
data-loss, and deterministic-oracle gates remain active.
The default workflow.coverage_threshold is 85. An explicit project or route
threshold overrides it, and 0 turns the numeric gate off. Ordinary
auto workflow context selects architecture through --conditional-profile architecture
or --required-document; required core/SPEC bodies remain complete and verified.
The signed OMP canonical-context and release-evidence paths are unchanged.
Get from zero to your first AI-powered feature in under 5 minutes.
Paste this command into your AI coding agent's chat (Claude Code, Codex, OpenCode, etc.) โ the agent will run it for you. Or run it directly in your terminal.
# macOS / Linux โ installs the binary and checks required tools
cd your-project # go to your project folder (e.g., cd ~/my-app)
curl -sSfL https://raw.githubusercontent.com/autopus-ai/autopus-adk/main/install.sh | sh
# Windows (CMD or PowerShell)
cd your-project
powershell -c "irm https://raw.githubusercontent.com/autopus-ai/autopus-adk/main/install.ps1 | iex"That's it. The installer installs the auto CLI plus an autopus alias, checks required tools, skips anything already present, and auto-installs missing essentials like git, GitHub CLI, and Antigravity CLI. It does not run auto init for you.
Platform command syntax:
- Codex: install the generated local plugin to use
@auto ...; otherwise invoke$codex-auto-<route> ... - OpenCode: use
/auto ...or/auto-<subcommand> ... - Claude Code / Antigravity CLI / Oh My Pi: use
/auto ...
Note: If you run the Windows installer from Git Bash via
powershell -c ..., restart Git Bash after install so it reloads the updated userPATH. The installer prints the exact install directory and a one-lineexport PATH=...fallback for that case.
Other install methods
# Homebrew (macOS) โ canonical new install
brew install --cask Insajin/autopus/auto
# go install (requires Go 1.26+)
go install github.com/insajin/autopus-adk/cmd/auto@latest
# Build from source
git clone https://github.com/autopus-ai/autopus-adk.git
cd autopus-adk && make build && make install
# After manual install, initialize:
cd your-project && auto initmake install copies into $(go env GOPATH)/bin; pass INSTALL_DIR=... for another
destination. When a signed release install outranks it on PATH, the target says so โ
the git hooks keep running that binary. Point them at the build under test with
AUTOPUS_BIN=$PWD/bin/auto.
Homebrew Cask is the canonical Homebrew distribution. If you previously installed the legacy Formula, remove it before installing the Cask:
brew uninstall --formula auto
brew install --cask Insajin/autopus/autoHomebrew 6 requires explicit trust for non-official taps. A new install using the
fully qualified command above trusts the ADK cask. An existing installation may
still lack that trust after upgrading Homebrew. This can interrupt brew upgrade
or automatic brew cleanup, even when you are updating another tool. A retained
ADK tap and old download cache can trigger this after the ADK cask is uninstalled.
Run auto doctor from an initialized project to inspect the read-only Homebrew
trust check (doctor.homebrew.tap_trust in auto doctor --json). The check reports
missing cask trust and probe failures separately; --fix does not grant trust.
If Homebrew reports Refusing to load cask insajin/autopus/auto from untrusted tap,
trust just the ADK cask, then check cleanup without deleting anything:
brew trust --cask insajin/autopus/auto
brew cleanup --dry-runFor the legacy Formula, use brew trust --formula insajin/autopus/auto before the
uninstall-and-install migration above. These commands grant trust only to the
named package; there is no need to trust the entire tap or disable Homebrew's
trust checks. See Homebrew's Tap Trust documentation.
If the error follows an upgrade, check the installed version with
brew list --versions <package> before retrying: installation may have succeeded
before cleanup failed. HOMEBREW_NO_ENV_HINTS=1 only hides hints and does not fix
missing trust.
Installer options (environment variables)
| Variable | Default | Description |
|---|---|---|
INSTALL_DIR |
/usr/local/bin |
Binary install path |
VERSION |
latest | Specific version to install |
After install, the script explains these commands:
auto init: initialize the current project and generateautopus.yamlplus platform filesauto update --self: update only theautoCLI binaryauto update: refresh the current project's generated rules, skills, agents, and platform files
cd your-project
auto initauto init scans your machine for supported installed AI coding CLIs (Claude Code, Codex, Antigravity CLI, OpenCode, Oh My Pi) and generates native configuration for each one โ rules, skills, agents, commands, and platform-specific settings โ all from a single autopus.yaml.
Claude Code statusline note:
- If
.claude/settings.jsonalready has astatusLine.command,auto init/auto updatenow lets you choosekeep,merge, orreplacein interactive mode. - You can force the same behavior non-interactively with
--statusline-mode keep|merge|replace.
โ Detected: claude-code, codex, antigravity-cli, opencode, omp
โ Generated: .claude/rules/, .claude/skills/, .claude/agents/, .claude/workflows/, CLAUDE.md
โ Generated: .codex/skills/, .codex/agents/, .codex/hooks.json, .codex/config.toml, AGENTS.md
โ Generated: .gemini/, GEMINI.md
โ Generated: .opencode/, .agents/skills/, AGENTS.md, opencode.json
โ Generated: .omp/rules/, .omp/skills/, .omp/commands/, optional .omp/extensions/
โ Created: autopus.yaml
This is the most important step. AI agents lose all memory between sessions โ every conversation is their first day on the job. /auto setup creates the "onboarding documents" that let agents understand your project instantly.
/auto setup # Claude Code, Antigravity CLI, OpenCode, Oh My Pi
@auto setup # Codex after local plugin install
$codex-auto-setup # Codex native skill before plugin installThis analyzes your codebase and generates 5 context documents:
ARCHITECTURE.md # Domains, layers, dependency map
.autopus/project/product.md # What this project does, core features
.autopus/project/structure.md # Directory layout, package roles, entry points
.autopus/project/tech.md # Tech stack, build system, testing strategy
.autopus/project/scenarios.md # E2E test scenarios extracted from code
๐ก Why this matters: Without these documents, an AI agent looking at your project is like a new hire with no onboarding โ they'll guess at architecture, miss conventions, and reinvent patterns that already exist. With
/auto setup, every agent session starts informed.
Frontend verification and review can use a project-local DESIGN.md as lightweight design context. auto init creates a starter DESIGN.md next to autopus.yaml without overwriting an existing one, and auto update backfills the starter plus the design: config block for older harness installs. Keep it short and include the source of truth, palette roles, typography hierarchy, component guardrails, layout/responsive rules, and agent guidance. If a project has no DESIGN.md or configured design baseline, /auto verify, Phase 3.5, /auto review, and auto orchestra review continue normally and report Design context: skipped (not configured) as a non-error condition.
Design context is only injected for UI-related diffs such as .tsx, .jsx, CSS-family files, theme/token files, or design-system paths. UI findings check palette-role drift, typography hierarchy drift, component guardrail violations, layout/responsive regressions, and source-of-truth mismatch. Review surfaces remain read-only; they report issues and delegate fixes instead of editing files directly.
Generated platform surfaces are not canonical. Update autopus-adk content/templates and run auto update to refresh .claude/*, .codex/*, .gemini/*, .opencode/*, .omp/*, OpenCode-owned .agents/skills/*, and plugin surfaces in a target project.
External design references are untrusted until explicitly promoted. auto design import stores sanitized artifacts under .autopus/design/imports/<import-id>/; it must not replace a human-maintained DESIGN.md by default. URL imports are public-HTTPS-only and SSRF-guarded: they reject local/private/metadata targets and unsafe redirects, cap redirects, timeout, and response size, and persist only redacted diagnostics when rejected.
Now you're ready. Describe what you want in plain language:
# 1. Plan โ AI creates a full SPEC (requirements, tasks, acceptance criteria)
/auto plan "Add a health check endpoint at GET /healthz"
# 2. Build โ 16 agents handle implementation, testing, and review
/auto go SPEC-HEALTH-001 --auto
# 3. Ship โ Sync docs, update SPEC status, commit with decision history
/auto sync SPEC-HEALTH-001โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ Pipeline Complete! โ
โ SPEC-HEALTH-001: Health Check โ
โ Tasks: 3/3 โ Coverage: 92% โ
โ Review: APPROVE โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
The workflow connects implementation, verification, and documentation. Confirm the project's acceptance criteria and recorded checks before deployment.
| What you want | Command |
|---|---|
| Brainstorm an idea | /auto idea "description" --multi --ultrathink |
| Full cycle (recommended) | /auto dev "description" |
| Plan a new feature | /auto plan "description" |
| Implement a SPEC | /auto go SPEC-ID --auto --loop --team |
| Fix a bug (no SPEC needed) | /auto fix "description" |
| Just describe in plain language | /auto Add 2FA to login page |
| Post-deploy health check | /auto canary |
| Code review | /auto review |
| Security audit | /auto secure |
| Resume interrupted pipeline | /auto go SPEC-ID --continue |
| Update docs after changes | /auto sync SPEC-ID |
Autopus has two separate update steps. When adopting a new release, run them in order from the project you want to refresh.
1. Binary update โ update the auto CLI itself:
auto update --selfDownloads the latest release from GitHub and replaces only the CLI binary. The updater included in
v0.50.73 and later first authenticates checksums.txt with the ECDSA P-256 publisher envelope
checksums.txt.signatures, then verifies the archive's SHA256 checksum before extraction. Missing,
malformed, untrusted, or expired signing data fails closed. This command does not refresh generated
project files. Check your current version with auto version. On macOS, the updater included in
v0.50.72 and later also preserves the downloaded release bytes and Developer ID signature.
Darwin and Linux stage the new binary on the target filesystem and commit it with an atomic exchange. If the kernel or filesystem does not support atomic exchange, the update fails before changing the installed binary; use the package manager or reinstall the release manually instead.
Windows preserves the installed binary beside the target as <binary>.old while placing the new
binary. A forced process or power interruption between those two moves can leave the target path
temporarily absent. Restore it from PowerShell, using the actual installation path, and then rerun
the update:
Move-Item -LiteralPath "C:\path\to\auto.exe.old" -Destination "C:\path\to\auto.exe"
auto update --selfIf both auto.exe and auto.exe.old exist, the updater removes .old automatically only when its
own <binary>.old.autopus-complete marker proves that the prior installation finished. An unmarked
or invalid recovery file is never deleted automatically: confirm which binary you want to keep,
then restore or remove .old manually.
One-time macOS migration from v0.50.71 or earlier: Do not use the one-line shortcut below for this migration. Run these commands separately and in order:
auto update --self auto update --self --force auto updateThe first command is still executed by the legacy updater. It verifies the SHA256 checksum without authenticating the publisher envelope and may replace the downloaded Developer ID signature with an ad hoc signature. After that first hop installs v0.50.72 or later, the second command is executed by the fixed updater now on disk and reinstalls the exact release bytes, restoring the Developer ID signature and
TeamIdentifier=GP2PFA2PUV. The finalauto updaterefreshes the current project's generated files. If the installed CLI is already v0.50.72 or later, future binary self-updates need only oneauto update --self; runauto updateafterward when you also need to refresh a project. A fresh Cask install, including a migration from the legacy Formula to the Cask, installs the signed release artifact directly and does not require the two self-update commands.
2. Harness update โ apply the installed CLI's templates to the current project:
auto updateRegenerates rules, skills, agents, and platform-specific files such as .claude/*, .codex/*,
.gemini/*, .opencode/*, .omp/*, and OpenCode-owned .agents/skills/* from the templates in the installed CLI.
With skills.compiler.mode: split, the update preview/apply flow also manages .opencode/skills/*
and .autopus/plugins/auto/skills/*, including stale artifact pruning. Your custom edits outside
AUTOPUS:BEGIN~AUTOPUS:END markers are preserved. Newly installed platforms are auto-detected.
If Claude Code already has a user-managed statusLine.command, the update flow defaults to preserving it, can merge it with the managed Autopus statusline, or replace it entirely via --statusline-mode keep|merge|replace.
Both at once (when the installed CLI is v0.50.72 or later):
auto update --self && auto updateWhen to update:
auto update --selfinstalls the new binary. The release is reflected in the current project's generated surfaces only after the followingauto updatesucceeds.
On machines with Autopus Desktop installed, the app owns the auto entry on your PATH
(usually ~/.local/bin/auto) and replaces it with a small launcher script that brokers every call
into the Desktop-managed CLI slot. When the app rejects the brokered call, auto exits with code
126 and prints:
Autopus Desktop managed ADK broker: managed_adk_broker_current_slot_rejected
The CLI itself is still installed. Invoke the managed binary directly โ quote the path, it contains spaces โ or alias it for the session:
"$HOME/Library/Application Support/co.autopus.desktop/managed-adk/current/auto" doctor
alias auto="$HOME/Library/Application Support/co.autopus.desktop/managed-adk/current/auto"Then run auto update from that managed binary, or reinstall Autopus Desktop, so the launcher and
the managed slot agree again. auto doctor reports the launcher as the
doctor.launcher.desktop_shim check โ it names the launcher path, the managed slot, and whether the
managed binary is present.
"I want to fix a bug"
/auto fix "500 error on login page"The agent automatically:
- Writes a reproduction test (confirms failure)
- Analyzes root cause
- Applies minimal fix
- Verifies all tests pass
No SPEC needed โ runs immediately.
"I want to add a new feature"
# Small feature โ SPEC only, skip PRD
/auto plan "Add GET /healthz health check endpoint" --skip-prd
# Large feature โ full PRD + SPEC
/auto plan "OAuth2 Google + GitHub provider support"
# Exploring an idea first โ multi-provider brainstorm
/auto idea "Should we migrate to microservices?" --multi/auto idea runs multi-provider brainstorming with ICE scoring (Impact, Confidence, Ease), generates a BS file, and can chain directly into /auto plan.
"I want a code review"
/auto review # TRUST 5 review of current changes
/auto secure # OWASP Top 10 security scan
/auto review --multi # Multi-model cross-review (debate strategy)"I just want to describe what I need in plain language"
/auto Add 2FA to the login pageAutopus Triage analyzes your request automatically:
- Complexity assessment (LOW / MEDIUM / HIGH)
- Impact scope scan
- Recommended workflow (fix / plan / idea)
๐ Triage โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Request: "Add 2FA to the login page"
Complexity: HIGH โ /auto idea --multi (recommended)
For Codex, use @auto ... after installing the generated local plugin from .agents/plugins/marketplace.json, or invoke $codex-auto-<route> ... immediately. The plugin adds only the router; detailed workflow instructions live in unique native .codex/skills/codex-<name>/SKILL.md resources.
Ordinary work stays inline; a validated compact contract uses the three-phase runtime route. This diagram illustrates the responsibilities in a full job, not a mandatory agent per phase:
sequenceDiagram
participant S as SPEC
participant P as ๐ง Planner
participant T as ๐งช Tester
participant E as โก Executor รN
participant A as ๐ Annotator
participant V as โ
Validator
participant R as ๐ Reviewer + ๐ก๏ธ
S->>P: Phase 1: Task decomposition + agent assignment
P->>T: Phase 1.5: Scaffold failing tests (RED)
rect rgb(230, 245, 255)
Note over E: Phase 2: TDD in parallel worktrees
T->>E: T1, T2, T3 ... (parallel)
end
opt Explicit annotation request
E->>A: Apply requested @AX tags
A-->>E: Annotation result
end
E->>V: Gate 2: Build + lint + vet
V->>T: Phase 3: Relevant tests + coverage gate (default 85%)
T->>R: Phase 4: TRUST 5 + OWASP audit
R-->>S: โ
APPROVE
| Agent | Role | When |
|---|---|---|
| Planner | SPEC decomposition, task assignment, complexity assessment | Phase 1 |
| Spec Writer | Generate spec.md, plan.md, acceptance.md, research.md | /auto plan |
| Tester | Test scaffold (RED) + coverage boost (GREEN) | Phase 1.5, 3 |
| Executor | Implementation; native isolation when supported and needed | When delegated |
| Annotator | @AX tag lifecycle management | Explicit request only |
| Validator | Build, vet, lint, file size checks | Gate 2 |
| Reviewer | TRUST 5 code review | Phase 4 |
| Security Auditor | OWASP Top 10 vulnerability scan | Phase 4 |
| Architect | System design, architecture decisions | on-demand |
| Debugger | Reproduction-first bug fixing | /auto fix |
| DevOps | CI/CD, Docker, infrastructure | on-demand |
| Frontend Specialist | Playwright E2E + VLM visual regression | Phase 3.5 |
| UX Validator | Frontend component visual validation | Phase 3.5 |
| Perf Engineer | Benchmark, pprof, regression detection | on-demand |
| Deep Worker | Long-running autonomous exploration + implementation | on-demand |
| Explorer | Codebase structure analysis | /auto map |
/auto go SPEC-ID --quality ultra # Premium path for every role; Codex effort varies by role
/auto go SPEC-ID --quality balanced # Top-model planning/review/debugging; lighter implementation
auto quality ultra --apply # Persist Ultra and refresh this project's managed agents
auto quality balanced --apply # Persist Balanced and refresh this project's managed agents
auto quality provider claude ultra --apply # Claude only (claude-code is also accepted)
auto quality provider codex balanced --apply # Codex only
auto quality provider claude inherit --apply # Remove the Claude override
auto quality supervisor inherit --apply # Use the user's Codex model for the primary session
auto quality show # Show the persisted mode and supervisor policy
auto quality show --agents # Also print the agent ร platform model table, read-only
auto quality # Compose per-agent tiers by role group (interactive)Projects using both Claude Code and Codex can select their modes independently:
quality:
default: balanced
providers:
claude: ultra
codex: balancedquality.providers accepts the canonical keys claude and codex.
Custom preset names must be 1โ64 ASCII characters, start with a letter or digit,
and then contain only letters, digits, hyphens, or underscores.
quality.default remains the fallback for providers without an override, so existing
configuration files keep their behavior. A per-run --quality flag is an explicit global
override and temporarily wins over both persisted provider values without rewriting YAML.
Provider-specific --apply refreshes only that configured platform; the existing global
auto quality <mode> --apply still refreshes every configured platform.
New projects default to supervisor_model_policy: inherit, so Autopus does not override the
user's Codex model for the primary session. Quality mode still controls managed agents and
quality-managed orchestra providers. Existing projects without this policy keep the legacy
quality interpretation, while ambiguous markerless root assignments are preserved during migration.
Run auto quality supervisor inherit --apply to explicitly remove a known generated root profile, or
auto quality supervisor quality --apply to opt an unchanged Autopus-managed primary config into the
Astra profile for the selected quality mode. User-owned project model or effort assignments remain
preserved and take precedence. Start a new Codex session after applying changes so managed agent
definitions are reloaded.
GPT/Codex Ultra support in the CLI and Ultra activation in a project are separate. Installing a
new binary does not enable Ultra. Run auto update to refresh the project's generated files, then
opt in with auto quality ultra --apply and start a new Codex session. Any Ultra compact rollout or
promotion remains separate and is not activated by these update commands.
Claude Code and Codex share the standard balanced role matrix with OMP:
| Native agent group | Claude Code balanced | Codex balanced |
|---|---|---|
| planner, architect, spec-writer, reviewer, security-auditor, debugger, deep-worker | claude-fable-5-1 / max |
gpt-6-astra / max |
| executor, tester, devops, frontend-specialist, perf-engineer | claude-sonnet-5-5 / max |
gpt-6-luna / max |
| explorer, annotator, validator, ux-validator | claude-sonnet-5-5 / high |
gpt-6-luna / max |
The native files are .claude/agents/autopus/*.md (model, effort) and
.codex/agents/*.toml (model, model_reasoning_effort).
Apply both through auto quality balanced --apply, or use the provider-specific commands above.
Complete historical default layouts receive the standard placement without rewriting their YAML;
an explicit different agent tier or a custom quality preset keeps its existing interpretation.
One custom agent does not change its siblings.
Codex retains the exact standard profile with an unverified diagnostic when its native catalog cannot be read. If an observed catalog rejects the requested model or effort, generation stops before writing files instead of substituting an older model or lower effort.
Ultra is unchanged: its seven-role core uses Fable/Astra, and remaining roles use Opus/Sol. Claude Ultra emits max for its Fable/Opus agents; Codex Ultra uses Astra/max and Sol/xhigh. Supervisors still inherit by default; quality-managed Codex supervisors use Astra/ultra in Ultra and Astra/xhigh in Balanced. Native multi-provider review defaults to Fable 5.1/max and Astra/max in both modes, while explicit provider model/effort pins remain untouched.
auto quality without arguments, every interactive auto update, and the auto init quality step
share one composition step. It shows one row per agent and one column per installed platform:
| Column | Cell |
|---|---|
| Tier | the tier generation uses; default(<tier>) when the preset omits the agent, invalidโ<tier> for an unknown value |
| Claude Code | the model ยท effort written to .claude/agents/autopus/<agent>.md |
| Codex | the model ยท effort written to .codex/agents/<agent>.toml, resolved from one Codex catalog read that the same run also generates from |
| OMP | the route the selected OMP profile requests, headed requested route ยท before catalog check (platform default without a profile); OMP's own catalog check at generation can still lower it |
| OpenCode, Antigravity | platform default: their agents carry no model |
A quality.providers.claude or quality.providers.codex override labels its column
override: <preset>. Edits go through four role groups that exist only on screen and are never
written to autopus.yaml:
| Role group | Agents |
|---|---|
| DesignยทJudgment | planner, architect, spec-writer, security-auditor |
| Implementation | executor, debugger, deep-worker, devops, frontend-specialist, perf-engineer |
| VerificationยทReview | reviewer, validator, tester, ux-validator |
| ExplorationยทSupport | explorer, annotator |
At Change the composition?, g picks one tier per group (Enter keeps a group, mixed ones
included), a takes agent=tier lines, and u (shown only when one exists) updates
previous-version defaults to the current ones without changing quality.default. The preview marks
every changed cell with * and lists every key it writes; only y writes. A result equal to the
current balanced or ultra default binds that preset, writing the preset too when it is missing or
a previous-version copy; any other result is saved as quality.presets.custom with
quality.default: custom. Each written balanced and ultra preset is classified by its exact agent
map: current default, previous-version default (can update) (a default an earlier release
wrote), or customized (N differ) (anything else, partial maps included). A customized preset's
agents and description are never modified; a composition that would bind it is saved as custom.
auto update asks once on every interactive run, after its project settings prompts. Enter, input
end, or three invalid answers keep autopus.yaml byte-identical; a confirmed change is generated in
the same run, so the agent files equal the preview. --yes/-y, --auto, --check, a CI value
other than empty, 0, or false, non-TTY input, and --workspace neither ask nor change anything
and print at most one line naming previous-version presets; --plan, --preview, and --dry-run
skip the step. auto quality --apply regenerates right after a confirmed change, and
auto quality show --agents prints the table read-only on any stdin.
The composition step and the per-tool editors refuse to write, and leave the file unchanged, while
the quality block holds a ${NAME} value of a set environment variable or a YAML alias or merge
key. They rewrite only the quality block: every byte outside it stays identical, comments inside it
are not kept.
In a terminal the step runs as huh forms, like the init wizard: arrow keys and Enter choose, and scripted or piped input keeps the line prompts above. The menu offers keep, update to the latest defaults (only when a built-in preset is a previous-version default), edit the composition, and, in auto quality, choose the default preset. edit the composition opens a tool tab:
- same for all tools is the role-group composition above; every tier option names the cells each tool would get, for example
opus โ Claude Code: opus-5-5 ยท high | Codex: 6.1-sol ยท xhigh. - Claude Code and Codex change only that tool. Options read
<cells> [<tier>], such as6.1-sol ยท xhigh [opus], and the result is saved asquality.presets.<provider>-custom(all 16 agents) withquality.providers.<provider>: <provider>-custom. Binaries older than v0.50.88 ignorequality.providers. - OMP appears in
auto updateandauto qualitywhen the platforms saved in autopus.yaml include omp, and inauto initwhen the platforms this init chose include omp. It pins one installed model and thinking level per native OMP agent, previews the plan's real routes, and writes through the existing OMP profile writer; init keeps the choice in its config and writes it with the platform files.
A Claude label names the model slug (opus-5-5), while the table cell is the frontmatter value the generator writes (opus, or an exact ID such as fable-5-1). auto update also shows a column for every platform it detected in this run and generates them from the same catalog read. Ctrl+C in a form ends auto update with a non-zero exit before any generation, cancels auto init before it writes any file, and leaves auto quality without an error.
On the Claude Code and Codex tabs every tier select, for a group or for one agent, is followed by that tool's effort select (SPEC-MODELUX-003). keep is the default; the other options are the levels every affected agent accepts, each labelled with the cells it leaves and (automatic) on the automatic one. Claude Code offers low, medium, high, xhigh, and max and leaves haiku agents out; Codex offers the levels the run's catalog reports for the agents' models, and with an unreadable catalog it asks nothing and prints Codex catalog unreadable; effort stays automatic. An agent given its automatic level stores nothing; the rest are written with the tiers to quality.presets.<provider>-custom.efforts, a map from canonical agent names to those five levels. The preview lists quality.presets.<provider>-custom.efforts written (N agents) (or rewritten, removed) and, for the file's first efforts map, auto older than v0.50.126 cannot read quality.presets.*.efforts. An explicit effort takes the agent off the standard balanced placement and is generated as Claude effort: (never for haiku) and as Codex model_reasoning_effort, resolved from the same catalog read. Later edits, u, and the per-tool line editor keep stored efforts, and same for all tools moves a binding preset's efforts into custom (quality.presets.custom.efforts carried (N agents)) instead of writing them onto another built-in. A file without efforts loads and generates exactly as before. The OMP tab picks a model and its thinking per role group or agent instead, as the next paragraph describes.
In the default autopus mode the OMP tab asks no profile or family (SPEC-MODELUX-003). It starts from the current pins, or from the current profile's effective routes (one pin-less plan, whose blocker returns to the menu with nothing written), and asks role groups (the four groups above) or per agent (the 16 agents, plus task while it has its own pin). Every model select offers keep โ <current>, keep the OMP session model, and the installed models of every provider that Autopus can attest, as provider/model sorted by provider and model; a group lists only models every member accepts. A strict catalog attests by its family and capability metadata; a catalog without that metadata lists only the installed models the built-in profiles declare, after The installed OMP catalog has no family or capability metadata; only models Autopus can attest are listed. The thinking select offers only the levels the chosen model reports. keep the OMP session model drops the pin, and for task the option reads follow planner: task follows planner unless it has its own pin, so the DesignยทJudgment group moves planner but never an existing agents.task. The result is saved through the existing OMP plan, write, and activation as pins without a profile โ role_model_policy: {version: v1, agents: {<agent>: {candidates: [{selector, thinking, family}]}}}, with config_mode and agent_source kept โ and the preview adds auto older than v0.50.126 cannot read role_model_policy.agents without a profile. Only pinned agents get an override, and task gets one through its own or planner's pin; the rest inherit the session model, and a pinned model the catalog no longer has fails closed with required_route_unresolved. Applying over a profile-based policy prints Moving the routes of OMP profile <name> to per-agent pins; unchanged agents keep their routes. before the confirmation: every unchanged agent keeps all candidates of its route, task keeps its route (stored as agents.task only when it differs from planner's), the legacy scout, security-reviewer, and sonic keys are expanded into per-agent pins and removed, profile and family go away, and an ultra profile's link to quality.presets.ultra ends. Cancelling leaves the file unchanged. Native mode, the OMP line editor, and auto platform omp profile apply keep using profiles, and a profile with pins still loads. Agents without a profile are an autopus-mode policy: with agent_source: native the load fails with role_model_policy.agents_require_profile and says to set role_model_policy.profile or remove agent_source: native. On a catalog without family or capability metadata, the tab warns at start when the current profile's routes use models outside the built-in declarations: Autopus cannot attest these models on this catalog, so applying with them unchanged is blocked: <models>; the OMP line editor or auto platform omp profile apply keeps editing the profile.
| Flag | Mode | Description |
|---|---|---|
| (default) | Inline-first execution | Delegate independent slices or work needing specialist/context isolation |
--team |
Team topology | Platform-native Lead / Builder / Guardian responsibility profile |
--solo |
Single session | No subagents, direct TDD |
--auto --loop |
Full autonomy | RALF self-healing, no human gates |
--multi |
Provider diversity | Provider-diverse planning/review; not execution topology |
OMP keeps these axes separate: --team selects the owner-omp native task/hub/todo topology, while --multi adds provider-diverse planning and review. --team --multi composes both.
For most features, you only need two commands:
# 1. Brainstorm โ multi-provider debate + deep analysis
/auto idea "Add webhook delivery with retry" --multi --ultrathink
# 2. Build & Ship โ full autonomous pipeline
/auto dev "Add webhook delivery with retry"/auto idea runs multi-provider brainstorming (Claude ร Codex ร Gemini debate) with deep sequential thinking, scores ideas with ICE, and saves the result.
/auto dev does the rest โ plan โ go โ sync in one shot with all the power flags on by default:
| Stage | What Happens | Flags (auto-applied) |
|---|---|---|
| plan | PRD + SPEC + multi-provider review | --auto --multi --ultrathink |
| go | 16 agents in Agent Teams + self-healing | --auto --loop --team |
| sync | Docs + changelog + Lore commit | โ |
๐ก Don't want the full power? Use
--solofor single-session mode,--no-multito skip multi-provider review, or callplan/go/syncindividually for fine-grained control.
For more control, run each stage separately:
flowchart LR
PLAN["๐ plan\nDescribe"] -->|SPEC created| GO["๐ go\nBuild"]
GO -->|Code + Tests| SYNC["๐ฆ sync\nShip"]
Turn a plain-English description into a full SPEC โ requirements, tasks, acceptance criteria, and risk analysis.
/auto plan "Add webhook delivery with retry and dead letter queue"The spec-writer agent produces 5 documents:
.autopus/specs/SPEC-HOOK-001/
โโโ prd.md # Product Requirements Document
โโโ spec.md # EARS-format requirements
โโโ plan.md # Task breakdown + agent assignments
โโโ acceptance.md # Given-When-Then criteria
โโโ research.md # Technical research + risks
Options: --multi for a read-only multi-provider planning advisory plus final SPEC review ยท --prd-mode minimal for lightweight PRDs ยท --skip-prd to go straight to SPEC
Feed the SPEC to 16 agents that plan, scaffold tests, implement in parallel, validate, annotate, test, and review โ all automatically.
/auto go SPEC-HOOK-001 --auto --loopPhase 1 โ ๐ง Planner โ SPEC โ tasks + agent assignments
Phase 1.5 โ ๐งช Tester โ Failing test skeletons (RED)
Phase 2 โ โก Executor รN โ TDD in parallel worktrees
Optional โ ๐ Annotator โ @AX tags only when explicitly requested
Gate 2 โ โ
Validator โ Build + lint + vet
Phase 3 โ ๐งช Tester โ Relevant tests + coverage gate (default 85%)
Phase 4 โ ๐ Reviewer + ๐ก๏ธ โ TRUST 5 + OWASP audit
Options: --team for Agent Teams ยท --solo for single-session TDD ยท --quality ultra for the premium execution path ยท --multi for multi-model review
Update SPEC status, regenerate project docs, manage @AX tag lifecycle, and commit with structured Lore history.
/auto sync SPEC-HOOK-001
auto sync verify --spec SPEC-HOOK-001 --strictBefore committing, auto sync verify creates a read-only staging plan and prints the topology it detected: a multi-repo workspace splits into Phase A (module) and Phase B (meta), while a single Git repository holding autopus.yaml โ including a linked worktree โ yields one commit group. Both topologies exclude generated/runtime, tracked-but-ignored, unclassified, and shell-unsafe paths; a location that is neither fails with an unsupported topology: diagnostic under its own exit code. --spec limits the plan to workspace-relative files owned by exactly one SPEC host, and --strict fails on anything excluded or unrelated.
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ Pipeline Complete! โ
โ SPEC-HOOK-001: Webhook Delivery โ
โ Tasks: 5/5 โ Coverage: 91% โ
โ Review: APPROVE โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Three commands connect requirements, implementation, and delivery records. Check the recorded acceptance and verification results before treating the work as complete.
Every review scores across 5 dimensions:
| Dimension | What It Checks | |
|---|---|---|
| T | Tested | Relevant behavior, edge cases, race checks, and the coverage gate (default 85%) |
| R | Readable | Clear naming, cohesive responsibilities, explicit project limits |
| U | Unified | gofmt, goimports, golangci-lint, consistent patterns |
| S | Secured | OWASP Top 10, no injection, no hardcoded secrets |
| T | Trackable | Meaningful logs, error context, SPEC/Lore references |
| Strategy | How It Works | Best For |
|---|---|---|
| ๐ค Consensus | Independent answers merged by key agreement | Planning, code review |
| โ๏ธ Debate | 2-phase adversarial review + judge verdict | Critical decisions, security |
| ๐ Pipeline | Provider N's output โ Provider N+1's input | Iterative refinement |
| โก Fastest | First completed response wins | Quick queries |
Providers: Claude ยท Codex ยท Gemini ยท OpenCode โ with graceful degradation.
Every provider runs as a headless subprocess (or through OMP for a backend: omp provider), and each command runs all rounds synchronously and prints its result directly. WebSearch fallback when Context7 docs are unavailable.
CLI Commands (28 root commands, 110+ total with subcommands)
| Command | Description |
|---|---|
auto init |
Initialize harness โ detect platforms, generate files |
auto update |
Update harness (preserves user edits via markers) |
auto quality |
Persist/show quality mode, apply managed profiles, or choose supervisor model ownership |
auto doctor |
Health diagnostics |
auto platform |
Manage platforms (list / add / remove) |
auto arch |
Architecture analysis (generate / enforce) |
auto spec |
SPEC management (new / validate / review / gates โ gate applicability receipt with exact-input evidence reuse) |
auto lore |
Decision tracking (context / commit / validate / stale) |
auto orchestra |
Multi-model orchestration (brainstorm / plan / review / secure / run) |
auto setup |
Project context documents (generate / update / validate / status) |
auto status |
SPEC dashboard (done / in-progress / draft) |
auto telemetry |
Pipeline telemetry (record / summary / cost / compare / leadtime โ first-slice and critical-path lead time with baseline regression gate) |
auto skill |
Skill management (list / info / create) |
auto search |
Knowledge search (Exa) |
auto docs |
Library documentation lookup (Context7) |
auto design |
Design context and provider docs (context / import / pack / docs / figma) |
auto lsp |
LSP integration (diagnostics / refs / rename / symbols / definition) |
auto verify |
Frontend UX verification (Playwright + VLM) |
auto check |
Harness rule checks (anti-pattern scanning) |
auto hash |
File hashing (xxhash) |
auto issue |
Auto issue reporter (report / list / search) |
auto experiment |
Autonomous experiment loop (init / metric / record / commit / reset / summary / status) |
auto test |
E2E scenario runner (run) |
auto react |
Reaction engine (check / apply) |
auto agent |
Agent management (create / run) |
auto terminal |
Terminal multiplexer management (detect / workspace / split / send / notify) |
auto pipeline |
Pipeline state management and monitoring |
auto permission |
Permission mode detection (bypass / safe) |
auto browse |
Browser automation (cmux browser / agent-browser) |
auto canary |
Post-deploy health check (build + E2E + browser) |
auto connect |
Provider connection wizard (server auth โ workspace โ OpenAI OAuth) |
auto connect status |
Local verify/readiness summary for saved connect state |
auto update --self |
CLI binary self-update (publisher signature + SHA256) |
Slash Commands (inside AI Coding CLI)
| Command | Description |
|---|---|
/auto plan "description" |
Create a SPEC for a new feature |
/auto go SPEC-ID |
Implement with full pipeline |
/auto go SPEC-ID --auto --loop |
Fully autonomous + self-healing |
/auto go SPEC-ID --team |
Agent Teams (Lead/Builder/Guardian) |
/auto go SPEC-ID --multi |
Multi-provider orchestration |
/auto fix "bug" |
Reproduction-first bug fix |
/auto review |
TRUST 5 code review |
/auto secure |
OWASP Top 10 security audit |
/auto map |
Codebase structure analysis |
/auto sync SPEC-ID |
Sync docs after implementation |
auto sync verify [--spec SPEC-ID] [--strict] |
Read-only, fail-closed commit plan: one group in a single repo, Phase A/B in a multi-repo workspace |
auto spec change SPEC-ID --class small_ui --ac AC-001 --surface path |
Compact change contract for low-risk work; high-risk classes escalate to a full SPEC |
auto spec gates SPEC-ID --change-class small_ui --json |
Per-gate required/not_applicable/blocked applicability with reasons |
auto spec review SPEC-ID --single-pass |
One provider round; receipt carries loop_status and blocking_reasons |
/auto dev "description" |
Full power: plan(--multi --ultrathink) โ go(--team --loop) โ sync |
/auto setup |
Generate/update project context docs |
/auto stale |
Detect stale decisions and patterns |
/auto why "question" |
Query decision rationale |
/auto experiment |
Autonomous experiment loop (metric-driven iteration) |
/auto test |
Run E2E scenarios against your project |
/auto go SPEC-ID --continue |
Resume interrupted pipeline from checkpoint |
/auto browse |
Browser automation โ open, snapshot, click, verify |
/auto idea "description" |
Multi-provider brainstorm with ICE scoring |
/auto canary |
Post-deploy health check (build + E2E + browser) |
autopus.yaml โ single config for everything
mode: full # full or lite
project_name: my-project
platforms:
- claude-code
architecture:
auto_generate: true
enforce: true
lore:
enabled: true
required_trailers: [Why, Decision]
stale_threshold_days: 90
forbidden_trailers: [Co-Authored-By] # default; [] allows them
spec:
review_gate:
enabled: true
strategy: debate
providers: [claude, gemini]
judge: claude
methodology:
mode: tdd
enforce: true
orchestra:
enabled: true
default_strategy: consensus
providers:
claude:
binary: claude
codex:
binary: codex
gemini:
binary: agy
opencode:
binary: opencodeautopus-adk/
โโโ cmd/auto/ # Entry point
โโโ internal/cli/ # 28 Cobra commands (110+ total with subcommands)
โโโ pkg/
โ โโโ adapter/ # 4 platform adapters (Claude, Codex, Gemini, OpenCode)
โ โโโ arch/ # Architecture analysis + rule enforcement
โ โโโ browse/ # Browser automation backend (cmux/agent-browser routing)
โ โโโ config/ # Configuration schema + YAML loading
โ โโโ constraint/ # Anti-pattern scanning
โ โโโ content/ # Agent/skill/hook/profile generation + skill activator
โ โโโ cost/ # Token-based cost estimator
โ โโโ detect/ # Platform/framework/permission detection
โ โโโ e2e/ # E2E scenario generation, execution, verification
โ โโโ experiment/ # Autonomous experiment loop (metric, circuit breaker)
โ โโโ issue/ # Auto issue reporter (context collection, sanitization)
โ โโโ lore/ # Decision tracking (9-trailer protocol)
โ โโโ lsp/ # LSP integration
โ โโโ orchestra/ # Multi-model orchestration (4 strategies + brainstorm + debate judge, subprocess and OMP backends)
โ โโโ pipeline/ # Pipeline state persistence + checkpoint + team monitor
โ โโโ search/ # Knowledge search (Context7/Exa) + hash-based search
โ โโโ selfupdate/ # CLI binary self-update (publisher signature, SHA256, transactional replace)
โ โโโ setup/ # Project doc generation + validation
โ โโโ sigmap/ # AST-based API signature extraction (Go + TypeScript)
โ โโโ spec/ # EARS requirement parsing/validation
โ โโโ telemetry/ # Pipeline telemetry (JSONL event recording)
โ โโโ template/ # Go template rendering
โ โโโ terminal/ # Terminal multiplexer adapters (cmux, tmux, plain)
โ โโโ version/ # Build metadata
โโโ templates/ # Platform-specific templates
โโโ content/ # Embedded content (16 agents, 53 skills)
โโโ configs/ # Default configuration
"A popular Python package with tens of millions of monthly downloads was injected with malicious code. A simple
pip installcould steal SSH keys, AWS credentials, and DB passwords โ not from the package you installed, but from somewhere deep in its dependency tree." โ Andrej Karpathy
AI coding environments make this worse: agents auto-install packages, expand dependency trees, and execute code โ all without human review. Autopus builds defense into the pipeline itself.
| Layer | Protection | How |
|---|---|---|
| Pipeline Gate | Dependency vulnerability scan at every /auto go |
Security Auditor agent runs govulncheck ./... in Phase 4 |
| Secret Detection | Hardcoded credentials caught before commit | gitleaks detect scans all changed files |
| Dependency Audit | Known CVE detection in dependency tree | go list -m -json all | nancy sleuth for Go projects |
| Lock File Integrity | Checksum-verified dependencies | Go's go.sum ensures reproducible, tamper-proof builds |
| OWASP Top 10 | Injection, auth bypass, SSRF โ all checked | Security Auditor covers A01โA10 systematically |
| AI Agent Guardrails | Agents can't blindly install packages | Harness rules constrain agent actions; security gate blocks deploy on FAIL |
The same principles apply when Autopus manages Python, Node.js, or other ecosystems:
# autopus.yaml โ configure per-ecosystem security scans
security:
scanners:
go: "govulncheck ./..."
python: "pip-audit && safety check"
node: "npm audit --audit-level=high"Best practices enforced by the harness:
- Version pinning โ Lock all dependencies to exact versions (
go.sum,package-lock.json,requirements.txt) - Minimal dependencies โ Reuse existing code and native capabilities before adding dependencies or abstractions
- Isolation โ Use native isolation when available; shared-workspace writers require disjoint ownership. Conversation forks alone do not isolate files.
- No blind installs โ Security Auditor agent flags unknown or unvetted packages before they enter the codebase
Every binary release from v0.50.73 includes SHA256 checksums (checksums.txt) and an ECDSA
P-256 publisher envelope (checksums.txt.signatures). The current POSIX installer, Windows
installer, and the self-updater shipped in v0.50.73 or later authenticate the checksum manifest
before downloading or extracting an archive, then verify the archive checksum. They do not fall
back to checksum-only installation. The installers reject unsigned v0.50.72-or-earlier releases.
The POSIX path requires OpenSSL plus sha256sum or shasum; missing verification tools fail
closed. The Windows path uses the platform CNG implementation and Get-FileHash.
Recommended: Inspect before you install
# 1. Download the script first โ review it before running
curl -sSfL https://raw.githubusercontent.com/autopus-ai/autopus-adk/main/install.sh -o install.sh
less install.sh # Read what it does
sh install.sh # Run only after reviewOr verify manually:
# Download binary + checksums separately
VERSION=$(curl -s https://api.github.com/repos/autopus-ai/autopus-adk/releases/latest | grep tag_name | sed 's/.*"v\(.*\)".*/\1/')
curl -LO "https://github.com/autopus-ai/autopus-adk/releases/download/v${VERSION}/autopus-adk_${VERSION}_$(uname -s | tr A-Z a-z)_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz"
curl -LO "https://github.com/autopus-ai/autopus-adk/releases/download/v${VERSION}/checksums.txt"
# Verify SHA256 integrity only (this does not authenticate the publisher)
shasum -a 256 -c checksums.txt --ignore-missingFor an authenticated install, use the inspected current installer or the updater shipped in
v0.50.73 or later; both require a trusted publisher signature before accepting checksums.txt.
Trust boundary: the one-line installers are served from the repository's main branch. Given
trusted installer or updater bytes, publisher verification protects release assets delivered by
GitHub and its CDN. It does not authenticate the installer bootstrap itself. A compromise of
repository main or raw-main delivery can replace the verifier, pins, or download target without
also compromising the release assets. An independently pinned installer origin is not provided yet.
- No telemetry or analytics collection
- No network calls except explicit commands (
orchestra,search,update --self) - No access to your AI provider API keys โ Autopus orchestrates CLI tools, not API calls
Autopus-ADK is open source under the MIT license. PRs welcome!
make test # Run tests with race detection
make lint # Run go vet
make coverage # Generate coverage report๐ Autopus โ Of the agents. By the agents. For the agents.
