Skip to main content
Liza wraps provider CLIs — not their APIs — so your existing subscription (Claude Max, ChatGPT Pro, and similar) works out of the box. You do not need to configure API keys or manage per-token billing inside Liza. Each provider’s own CLI handles authentication using your personal setup, and Liza spawns that CLI as a supervised child process for each agent.
Not all providers are equal. The behavioral contract Liza enforces requires meta-cognitive machinery: the ability to parse instructions as executable specifications, observe state, and pause at gates. Providers that lack this capability fail silently or produce incorrect output that Liza’s validator catches. Test any new provider on a non-critical task before relying on it for unattended work.

Compatibility Matrix

The table below summarizes how each provider works with Liza’s three operating modes.

Mode definitions

  • Pairing — Human-agent collaboration under Liza’s behavioral contract. A single agent session with you guiding the work.
  • Adversarial Pairing — One doer agent plus one reviewer agent working through a shared Markdown blackboard. Each role can use a different provider for reviewer diversity.
  • Multi-Agent — Fully autonomous pipeline with 13 specialized roles across four phases. Agents claim tasks, implement work, submit for review, and merge — without manual intervention within a sprint.

Per-Provider Details

Claude is Liza’s reference implementation. Every feature, flag, and workflow has been validated with Claude first.Setup:
How it works: liza init --claude writes .claude/settings.json with the full Liza permission set, installs git hooks under .claude/hooks/, and creates a .claudeignore. It also sets defaultMode: acceptEdits so agents run headlessly without prompting for approval.Configuration: Liza uses a two-layer permission architecture for Claude Code. The project layer (.claude/settings.json, managed by liza init) contains Liza CLI permissions, skills, and build commands. The global layer (~/.claude/settings.json, managed manually) holds your personal MCP tools and machine-specific settings. Both layers are required for full functionality.ACP mode: Not applicable. Claude Code runs via claude CLI directly.Recommendation: Use Claude for all production multi-agent runs. It is the most thoroughly tested provider and handles the full 13-role pipeline reliably.
Codex CLI is a fully compatible alternative to Claude. Liza uses it for all the same workflows and has validated it across the complete pipeline.Setup:
How it works: liza init --codex manages ~/.codex/config.toml, configuring sandbox mode, approval policy (never), high reasoning effort, and network access. It adds the active project root and project .git directory to writable_roots so Codex can write Git metadata from inside task worktrees.ACP mode: Use --cli codex-acp to run Codex through ACPX. This requires the acpx executable on your PATH (npm install -g acpx). Liza preflights the prerequisite before spawning.Pinning versions: For reproducible MAS agent runs, set codex_package_version in .liza/state.yaml. This causes Liza to launch headless agents via npm exec --yes --package @openai/codex@<version> -- codex. Interactive liza agent -i always uses your installed binary.Recommendation: Use Codex as a primary provider or mix with Claude in adversarial pairing (Claude as doer, Codex as reviewer) for diversity.
OpenCode runs Liza agents via opencode run in headless mode and has native ACP (Agent Coordination Protocol) support.Setup:
How it works: liza init --opencode activates the contract through AGENTS.md and installs .opencode/tools/exec.ts, a compatibility tool that exposes a simple exec schema. Headless runs add --dangerously-skip-permissions and, when logging is enabled, --format json.ACP mode: Use --cli opencode-acp (the ACPX-backed runtime targeting OpenCode). Note that opencode-acp is a Liza CLI selector name, not an OpenCode executable. To configure OpenCode as an ACP server for external tools, use:
Groq-backed runs: Prefer a stable tool-calling model such as Llama 3.3 70B over less-proven alternatives when using Groq as the backend. Always validate the model on a real task before unattended use.
Kimi runs through Liza’s Claude wrapper with Kimi-specific environment variables. It works but performs poorly on complex real-world tasks.Setup:
Characteristics:
  • Responsive to tooling feedback and explicit instructions
  • Struggles with real-world implementation complexity
  • Uses the Claude contract infrastructure with Kimi-specific env vars injected at spawn time
When to use: Kimi can be useful for lighter tasks such as documentation, simple refactoring, or review-only roles where deep implementation reasoning is not required. Do not use it as the primary doer on complex coding tasks.Recommendation: Evaluate Kimi on non-critical tasks first. Use Claude or Codex for production multi-agent runs.
Mistral requires explicit activation and additional supervision to work reliably within Liza’s pipeline.Setup:
How it works: liza setup --mistral installs the Mistral/Vibe prompt link under ~/.vibe/prompts/. Mistral agents run via the mistral CLI selector.Characteristics:
  • Pairing mode works with explicit guidance
  • Adversarial pairing is limited — reviewer roles may not follow the review protocol reliably
  • Multi-agent mode requires close supervision; not recommended for unattended pipeline runs
  • Weaker instruction following compared to Claude and Codex on complex tasks
When to use: Mistral can work for pairing sessions where you are present and can intervene. Avoid using it as the sole provider in autonomous multi-agent runs.
Gemini is currently incompatible with Liza’s behavioral contract due to architectural limitations in instruction following.Why it does not work: The incompatibility is not a configuration problem and cannot be resolved through prompt engineering. Gemini’s weaker instruction following means it does not reliably parse Liza’s contract as an executable specification, skip gates it should respect, or produce structured output in the formats Liza’s state machine expects.Status: This is a known architectural limitation documented through empirical testing. No workaround exists at the prompt level.Setup flag: --gemini exists as a liza setup flag and installs skill symlinks under ~/.gemini/skills/, but running Gemini agents through Liza’s multi-agent pipeline is not supported.Recommendation: Do not use Gemini for any Liza mode. Use Claude or Codex instead.

CLI Mode vs. ACP Mode

Liza supports two execution modes for compatible providers.
Liza spawns the provider’s command-line executable directly as a child process. This is the default for all providers.Characteristics:
  • Uses your installed provider binary
  • Works with all compatible providers
  • Output streamed to .liza/agent-outputs/ for analysis
  • No additional prerequisites beyond the provider CLI itself

Recommendations

Production multi-agent runs

Use Claude Opus 4.x or GPT-5.x-Codex as your primary provider. Both handle the full 13-role pipeline reliably through multiple sprints without supervision.

Adversarial pairing diversity

Mix providers between doer and reviewer roles. For example, use Claude as the coder and Codex as the code-reviewer. Different models catch different failure patterns.

Default CLI resolution

Set config.default_doer_cli and config.default_reviewer_cli in .liza/state.yaml to use different providers per role type without specifying --cli on every liza agent invocation.

Experimental providers

Test Kimi or Mistral on a simple, low-stakes task before committing to a full sprint. Check .liza/agent-outputs/ logs and run liza validate frequently to catch unexpected behavior early.

Setting per-role defaults

For full provider configuration details including Codex ~/.codex/config.toml settings, Claude settings.json structure, and optional indexing tool activation, see the Configuration reference.