Install an agent runtime
AACWorkflow drives whichever AI coding tools you have on your machine. This page shows you how to install each of the 16 supported tools so the daemon can detect them.
A runtime in AACWorkflow is the daemon on your machine paired with one AI coding tool the daemon found on your PATH. If the onboarding "Connect a runtime" step shows No supported tools detected, it means the daemon scanned PATH and didn't find any of the 16 tools it knows how to drive. Install one (or several) of the tools below, then come back to the step and re-scan — the runtime will show up within a few seconds.
This page is the install-side companion to:
- Daemon and runtimes — how detection works
- AI coding tools matrix — what each tool can and can't do (session resumption, MCP, model selection)
The AACWorkflow server never sees your API keys or the tools themselves. Everything below — installation, authentication, model access — lives on your local machine. If something fails, it's almost always a local problem.
Before you start
Two prerequisites apply to every tool below:
- The AACWorkflow daemon must be running. Either run
aacworkflow daemon startafter installing the AACWorkflow CLI, or use the AACWorkflow desktop app, which launches the daemon automatically. Without a running daemon there is nothing to detect tools. - The tool's binary must be reachable on
PATH. The daemon shells out to each tool by name (see the Daemon looks for column in each section). Ifwhich <name>doesn't find it in your terminal, the daemon won't find it either. After installing, open a fresh terminal (or restart the daemon) so the newPATHentry is picked up.
After installing a tool, restart the daemon:
aacworkflow daemon restartOr, in the desktop app, just relaunch the app. The daemon re-scans PATH on every start.
The 16 supported tools
Listed roughly from most to least common. Pick whichever ones you already have credentials for — you don't need all 16.
Claude Code (Anthropic)
The most complete integration. Session resumption works, MCP works, and it consumes the mcp_config field on agents (see the matrix).
| Daemon looks for | claude |
| Install | Follow the official guide at claude.com/claude-code. The standard route is the npm package @anthropic-ai/claude-code (Node.js 18+ required). |
| Authentication | Run claude once and follow the in-CLI login flow, or set ANTHROPIC_API_KEY. |
| Notes | First-choice recommendation for new users. |
Codex (OpenAI)
JSON-RPC 2.0 transport with finer-grained approval gates. MCP config is written into the per-task $CODEX_HOME/config.toml. Session resumption works through Codex app-server thread/resume; stale or missing threads fall back to a fresh thread.
| Daemon looks for | codex |
| Install | Follow the official guide at github.com/openai/codex. The standard route is the npm package @openai/codex. |
| Authentication | codex login (browser-based) or OPENAI_API_KEY. |
Cursor (Anysphere)
The CLI counterpart to the Cursor editor. Session resumption works with current Cursor Agent releases: AACWorkflow reads session_id from the stream-json events and passes it back with --resume <id>.
| Daemon looks for | cursor-agent |
| Install | Install the Cursor editor and then the CLI per their docs at docs.cursor.com. The binary name is cursor-agent, not cursor. |
| Authentication | Sign in through the Cursor editor; the CLI reuses that session. |
For authenticated MCP servers, Cursor stores OAuth state in the project data directory where the auth flow first ran. AACWorkflow isolates managed Cursor MCP runs with a per-task CURSOR_DATA_DIR, so it does not scan or copy every file under ~/.cursor/projects. To opt in for one agent, set the agent custom env key CURSOR_MCP_AUTH_SOURCE to the absolute path of the trusted mcp-auth.json file, or to the Cursor project data directory containing that file. AACWorkflow links or seeds only that mcp-auth.json into the isolated task project data directory. When symlinks are supported, Cursor token refreshes may write back to the trusted source; environments that cannot create symlinks fall back to copying the file.
GitHub Copilot
Model routing goes through your GitHub account entitlement — the tool doesn't pick a model itself; GitHub decides which model you get.
| Daemon looks for | copilot |
| Install | See GitHub's CLI docs at github.com/github/copilot-cli. |
| Authentication | Browser-based GitHub login through the CLI. |
| Notes | Requires an active GitHub Copilot subscription on the signed-in account. |
OpenCode (SST)
Commercial CLI agent. Dynamically discovers available models from its own configuration file — good fit for users who want to bring their own model catalog. Consumes the agent's mcp_config field through OPENCODE_CONFIG_CONTENT.
| Daemon looks for | opencode |
| Install | Follow the official guide at opencode.ai or the GitHub repo at github.com/sst/opencode. The typical route is the install script or the npm package. |
| Authentication | Configure your model provider(s) per OpenCode's docs (Anthropic, OpenAI, etc.). |
DevEco Code (Huawei)
DevEco Code is Huawei's independent coding agent for HarmonyOS, built on the OpenCode engine. It ships its own model catalog and Huawei-account auth. AACWorkflow drives it over deveco run --format json; models are discovered dynamically from deveco models (built-in deveco/GLM-5.1). MCP servers are configured through DevEco's native config (DEVECO_CONFIG_CONTENT); AACWorkflow-side mcp_config wiring is in progress.
| Daemon looks for | deveco |
| Install | npm install -g @deveco/deveco-code. See the official README at gitcode.com/openharmony-sig/deveco-code or the npm page at npmjs.com/package/@deveco/deveco-code. |
| Platforms | Windows x64 and macOS (arm64/x64) only — no Linux build is published. |
| Authentication | Huawei-account login through the DevEco CLI. |
Kiro CLI (Amazon)
ACP-over-stdio transport. Session resumption works through ACP session/load; MCP config is passed through ACP mcpServers; skills are copied into .kiro/skills/.
| Daemon looks for | kiro-cli |
| Install | See the Kiro docs at kiro.dev. The binary name is kiro-cli, not kiro. |
| Authentication | AWS-account-based; follow Kiro's own onboarding. |
Kimi (Moonshot)
ACP-protocol agent, primarily aimed at the Chinese market. MCP config is passed through ACP mcpServers; skills live under .kimi/skills/ (native discovery).
| Daemon looks for | kimi |
| Install | Follow the official guide at github.com/MoonshotAI/kimi-cli. |
| Authentication | Moonshot API key, configured per the vendor's docs. |
Hermes (Nous Research)
ACP-protocol agent (shares the transport with Kimi). Session resumption works, and MCP config is passed through ACP mcpServers. Hermes discovers skills only from its home (~/.hermes/skills/), so when an agent has skills assigned AACWorkflow points HERMES_HOME at a per-task overlay of your ~/.hermes/ (real home mirrored by symlink; a derived config.yaml references your existing skills as external roots) and writes the assigned skills into its skills/ directory for native discovery. The SQLite state.db session store and its journal files remain task-local, so host conversation history is neither linked nor copied and live Windows WAL locks cannot block setup. Tasks with no assigned skills run against your real home unchanged.
| Daemon looks for | hermes |
| Install | See Nous Research's repository at github.com/NousResearch for the latest CLI distribution. |
| Authentication | Per the vendor's docs. |
OpenClaw
Commercial CLI agent orchestrator. MCP config is materialized through AACWorkflow's per-task config wrapper. Model is bound at the agent layer (openclaw agents add --model) — it can't be overridden per task, and you can't pass --model or --system-prompt from AACWorkflow.
| Daemon looks for | openclaw |
| Install | See the project at github.com/openclaw-org/openclaw (community-maintained). |
| Authentication | Configure the underlying model provider per OpenClaw's docs. |
Pi (Inflection AI)
Minimalist. Session resumption is unusual — the resume id is the path to a session file on disk, not a string id.
| Daemon looks for | pi |
| Install | See Inflection's CLI docs at pi.ai. |
| Authentication | Per the vendor's docs. |
CodeBuddy (Tencent)
A Claude Code–compatible CLI agent. AACWorkflow drives it with the same stream-json protocol as Claude Code: session resumption works via --resume, MCP config is passed through --mcp-config. CodeBuddy ships its own native config directory rather than reusing Claude's, so skills land in .codebuddy/skills/ and the runtime brief is written to CODEBUDDY.md. Models are discovered dynamically.
| Daemon looks for | codebuddy |
| Install | See the official CLI docs at codebuddy.ai/cli. |
| Authentication | Per the vendor's docs. |
Qoder (Alibaba)
Agentic coding CLI using the ACP protocol over stdio (shares the transport with Hermes, Kimi, and Kiro CLI). Session resumption works through ACP session/resume, MCP config is passed through ACP mcpServers, model selection is discovered dynamically, and skills are copied into .qoder/skills/.
| Daemon looks for | qodercli |
| Install | See the official CLI docs at qoder.com/cli. |
| Authentication | Per the vendor's docs. |
Trae CLI (ByteDance)
ByteDance's official TRAE CLI (traecli, paired with the Trae IDE — not the open-source bytedance/trae-agent). It is ACP-native, so AACWorkflow drives it over stdio via traecli acp serve --yolo, sharing the transport with Hermes, Kimi, Kiro CLI, and Qoder. Session resumption works through ACP session/load, MCP config is passed through ACP mcpServers, model selection is discovered dynamically (switched per task via session/set_model), and skills are copied into .traecli/skills/.
| Daemon looks for | traecli |
| Install | See the official CLI docs at docs.trae.cn/cli. |
| Authentication | Run traecli once interactively to complete the browser-based enterprise login (the token persists in ~/.trae plus the OS keyring). Logging into the Trae IDE does not log in the CLI — they are separate. |
| Notes | traecli reads project rules from .trae/rules/ and has no --system-prompt flag, so AACWorkflow delivers its runtime brief inline in the prompt. Set a daemon-wide default model with AACWORKFLOW_TRAECLI_MODEL. |
Antigravity (Google)
Google's Antigravity CLI (agy). Pairs with Google's Antigravity service and runs Gemini-backed models. AACWorkflow launches it with agy -p, the daemon-compatible non-interactive mode; current Antigravity CLI releases can execute tools from that mode, while agy -i requires an attached TTY. Session resumption works through --conversation <id>, captured by the daemon from the CLI log file. Model selection is managed inside the Antigravity CLI itself — AACWorkflow disables the per-agent model picker for this provider. Skills are written to .agents/skills/ (the CLI inherits Gemini CLI's workspace skill layout — see Antigravity docs).
| Daemon looks for | agy |
| Install | Follow the official guide at antigravity.google/docs/cli-overview. The CLI ships pre-built — run agy install once to wire up PATH and shell aliases. |
| Authentication | Run agy once interactively and complete the Google account login, or sign in via the Antigravity desktop app — the CLI reuses the keyring entry the GUI writes. |
| Notes | The CLI emits plain assistant text on stdout, not a structured event stream; intermediate "I will run X" lines and the final reply are both relayed to AACWorkflow as text, and per-tool telemetry is not available today. |
Grok (xAI)
xAI's Grok Build CLI (grok). AACWorkflow drives it over ACP via grok --no-auto-update agent --always-approve stdio, sharing the transport with Hermes, Kimi, Kiro CLI, Qoder, and Trae. It selects an auth method advertised by initialize and completes the headless authenticate handshake before any session operation. Session resumption works through ACP session/load. Models are discovered from session/new. MCP config is passed through ACP mcpServers. Skills are copied into .grok/skills/; user skills are discovered from $GROK_HOME/skills/ (default ~/.grok/skills/) and ~/.agents/skills/.
| Daemon looks for | grok |
| Install | Install the Grok Build CLI and ensure grok is on PATH (often ~/.grok/bin). |
| Authentication | Run grok login for cached-token auth, or set XAI_API_KEY. The CLI must advertise the corresponding ACP method. |
| Notes | Override the binary with AACWORKFLOW_GROK_PATH and the default model with AACWORKFLOW_GROK_MODEL (e.g. grok-4.5). Minimum CLI version: 0.2.89. |
After installing
- Confirm the binary is on
PATH. Open a fresh terminal and runwhich <name>(for examplewhich claude,which cursor-agent,which kiro-cli,which agy). If it prints a path, the daemon will find it. If it prints nothing, fix your shellPATHfirst (the typical cause is a per-shell rc file that wasn't reloaded). - Restart the daemon.
aacworkflow daemon restart, or relaunch the desktop app. The daemon only scansPATHat startup. - Check the Runtimes page. In the AACWorkflow UI, the Runtimes page should now list one row per
(workspace × tool)combination. If the row says "offline", see Daemon and runtimes → When a runtime is marked offline. - Go back to onboarding. The "Connect a runtime" step polls and will pick up the new runtime within a few seconds — no need to refresh.
Troubleshooting
whichfinds the binary but the daemon doesn't. The daemon was started with an olderPATH. Restart it.- The binary exists but launching fails. Run the tool's own
--versionor--helponce from the terminal — most failures here are missing auth, expired tokens, or a Node.js / runtime mismatch. - The Runtimes page shows the row, but tasks fail immediately. Check
aacworkflow daemon logs -fwhile triggering a task. The daemon surfaces the tool's own error output.
For broader symptoms, see the Troubleshooting guide.
Next
- Daemon and runtimes — how detection, heartbeats, and offline handling work
- AI coding tools matrix — capability differences once a tool is connected
- Creating and configuring agents — pick a tool for your agent and start running tasks