backends

ACE supports multiple AI coding backends. Set the backend in ace.toml or ace.local.toml with backend = "value". Default: claude.

cli override

Override the configured backend for a single invocation without editing config. Flags are global — they work on any ace subcommand.

Flag Equivalent
-b, --backend <value> explicit backend name (claude, codex)
--claude shortcut for --backend claude
--codex shortcut for --backend codex
$ ace --codex # launch Codex for this session only
$ ace --claude -- --continue # resume with Claude, passing --continue through
$ ace mcp --codex # check MCP against Codex without switching config
Config Value Binary Project Dir Instructions File
claude claude .claude CLAUDE.md
codex codex .agents AGENTS.md

custom backends

Schools, users, or projects can register additional backend entries via [[backends]]. A custom backend aliases a built-in (claude, codex) and may override its launch cmd and env. The MCP, instructions file, and linked-folder behavior are inherited from the aliased kind.

# Override env on the built-in claude backend
[[backends]]
name = "claude"
env = { ANTHROPIC_BASE_URL = "https://proxy.example.com" }

# Custom name aliasing claude
[[backends]]
name = "bailer"
kind = "claude"
env = { ANTHROPIC_BASE_URL = "https://bailer.example.com" }

# Wrap the claude binary through a process wrapper
[[backends]]
name = "claude-wrapped"
kind = "claude"
cmd = ["wrapper", "claude"]

Selectable via backend = "bailer" in any config layer or -b bailer on the CLI. Layer order for merging [[backends]] decls is school → user → project → local; later layers may add new entries or partially override earlier ones. A custom backend cannot introduce new behavior beyond its aliased kind — that requires a source change.

linked folders

ACE links school folders into the project's backend directory. skills/ becomes a real directory with per-skill symlinks (driven by skills/include_skills/exclude_skills in ace.toml); the rest are whole-directory symlinks. Not all backends support every folder.

Backend skills/ rules/ commands/ agents/
claude yes yes yes yes
codex yes

trust modes

Trust modes control backend permission prompts. Set with trust = "auto" or trust = "yolo" in ace.local.toml, or use ace auto / ace yolo.

Backend auto yolo CLI Flags
claude yes yes --permission-mode auto / --permission-mode bypassPermissions
codex yes yes --ask-for-approval on-request --sandbox danger-full-access / --dangerously-bypass-approvals-and-sandbox
Each backend maps ACE trust modes to its own CLI flags. The mappings differ between backends.

MCP registration

ACE registers [[mcp]] entries from school.toml into the active backend. All entries are remote HTTP endpoints.

Backend Method OAuth
claude CLI: claude mcp add -t http -s user auto on 401
codex CLI-first: codex mcp add in-session via /mcp

readiness check

ACE verifies the backend is authenticated before launching a session.

Backend Check
claude ~/.claude.json exists
codex ~/.codex/auth.json exists, or CODEX_API_KEY / OPENAI_API_KEY set

quirks

Backend Notes
claude Default backend. Full feature support. MCP servers registered at user scope (-s user), not project scope. Auto-resume via --continue fails when no prior session exists; ACE prints a hint suggesting ace new to start fresh.
codex MCP registration is CLI-first. MCP auth and ongoing management happen inside Codex via /mcp. Only skills/ is linked.