Skip to main content

amicus

Give your coding agent a second opinion from a different model.

amicus is one MCP server that fronts Codex, Kimi and Claude. The backend is a parameter, not a separate installation — so instead of running three servers and learning three tool surfaces, you ask for a consult, a review, or a delegated task and say which model should answer.

  • Consult — a read-only second opinion on an approach, a bug, or a design.
  • Review — a structured review of changes gathered from git, with findings tied to evidence.
  • Delegate — a task implemented in a throwaway git worktree, returned as a diff you review. It is never applied to your working tree.
  • Adversarial review — a fixed critic aimed at a plan, claim, or decision.

Long-running calls can be started in the background and polled, so a broad review does not block your session.

Install

Claude Code

/plugin marketplace add briandconnelly/amicus
/plugin install amicus@amicus

Codex

codex plugin marketplace add briandconnelly/amicus
codex plugin add amicus@amicus

Start a new session afterwards so the host loads the bundled skill and tools.

Any other MCP client

The plugins launch the server from a published release tag, pinned in .mcp.json. Point your client at the same command:

{
  "mcpServers": {
    "amicus": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/briandconnelly/amicus.git@v0.4.0", "amicus-mcp"]
    }
  }
}

Requirements

  • Python 3.11 or newer, and uv.
  • The CLI for each backend you enable, installed and authenticated: codex, kimi, claude. amicus drives those CLIs; it does not talk to the providers itself, and it stores no credentials.

Using it

Choose which backends are available with AMICUS_BACKENDS — a comma-separated list of codex, kimi and claude. Only the backends you name are enabled.

Then just ask, in your own words:

  • "Get a second opinion on this approach from another model."
  • "Have another model review my current changes."
  • "Delegate this task to another model and show me the proposed diff."

In Claude Code there are also slash commands:

Command What it does
/amicus:consult Ask another model for a read-only second opinion
/amicus:review Have another model review your git changes
/amicus:delegate Delegate a coding task; get back a reviewable diff
/amicus:delegate-async Delegate a long coding task in the background; get a job id to poll with /amicus:jobs
/amicus:adversarial Run a fixed adversarial critic against a plan, claim, or decision
/amicus:dry-run Preview what a review or delegate call would send — free, no model call
/amicus:jobs Poll, fetch, list, or cancel a background job
/amicus:status Check which backends are enabled, installed, and authenticated

Start with /amicus:status — it tells you which backends are actually usable before you spend anything.

The tools

Nineteen tools, in five groups, one of them a deprecated alias. Discovery, previews and job management are free; the verbs and their background twins invoke the selected backend and spend its quota.

Group Tools
Discovery — free amicus_backends, amicus_capabilities, amicus_models
Verbs — paid amicus_consult, amicus_review_changes, amicus_delegate, amicus_adversarial_review
Previews — free amicus_review_changes_dry_run (review), amicus_delegate_dry_run; amicus_dry_run is the review preview's deprecated alias, removed at or after 0.5.0
Background twins — paid the four verbs again, each with an _async suffix
Jobs — free amicus_job_status, amicus_job_result, amicus_job_consume_result, amicus_job_list, amicus_job_cancel

Not every backend does everything:

Verb Codex Kimi Claude
consult, review_changes yes yes yes
delegate yes yes no
adversarial_review no no yes

A no is amicus's routing policy, not a model limitation. Claude is review-only, and the dedicated adversarial-review verb is scoped to Claude. To ask Codex or Kimi for an adversarial review, use consult or review_changes and supply the stance yourself; the dedicated verb adds a fixed critic stance and the target and evidence inputs.

Asking a backend for something it does not support returns a feature_unsupported error naming the backend and the feature, rather than failing obscurely.

Safety

  • A delegated diff is never applied. It runs in a throwaway git worktree and comes back for you to read and apply yourself.
  • Every verb call spends the selected backend's quota. The dry runs and the discovery and job tools do not.
  • Enabling a backend that can write makes the tool surface carry that backend's approval annotations — see docs/MIGRATION.md.
  • Your prompts go to whichever provider you selected, through that provider's own CLI. Each backend discloses how it carries your text — visible on amicus_backends.
  • A paid call's whole answer stays on disk in the job record under AMICUS_STATE_DIR, whatever detail delivered it and after only best-effort secret redaction, until it expires (AMICUS_JOB_TTL, default 24h; an expired record is removed on a later job call, not by a daemon), the per-workspace cap evicts it or amicus_job_consume_result removes it. It can quote what you sent. Your inputs themselves are never written there (ADR 0035).

Configuration

AMICUS_BACKENDS is the one most people set. Beyond it, each backend takes an optional model, reasoning effort, and binary path (AMICUS_CODEX_MODEL, AMICUS_KIMI_REASONING_EFFORT, AMICUS_CLAUDE_BIN, and so on), and there are limits for timeouts, job retention and payload sizes. The full list is the env_vars array in .mcp.json.

Logging goes to stderr, and AMICUS_LOG_FILE mirrors amicus's own records to a file. To reduce the risk of prompt text leaking through dependency logs, fastmcp and mcp records are limited to WARNING or higher on stderr, reduced to non-message diagnostics, and never written to that file (ADR 0023).

Coming from codex-in-claude, moonbridge, or claude-in-codex

amicus replaces all three. docs/MIGRATION.md maps the old tool names onto the new ones.

Status and known limits

0.4.0 is the current release, and it is a breaking one: sibling environment names are no longer read, and an unreadable review is now delivered as review_status: unstructured instead of an error. The discovery surface moved from amicus/0.1/schema-30 to amicus/0.1/schema-35 and stored job results from RESULT_FORMAT 6 to 7, so a job result 0.3.0 stored cannot be read after upgrading. docs/MIGRATION.md explains how to upgrade, and CHANGELOG.md lists every user-visible change.

One known limit: a third-party backend distribution can load through the amicus.backends entry-point group, but cannot yet be enabled or called. AMICUS_BACKENDS and the backend parameter accept only the three in-tree ids.

Development

uv sync
uv run prek install --prepare-hooks   # one-time local hooks

The gate is defined once, in AGENTS.md (Rules, item 2); CI runs it on every supported Python version.

Question Read
What is being built and why docs/superpowers/specs/2026-09-04-amicus-design.md; for M8, docs/superpowers/specs/2026-09-15-amicus-M8-sdk-in-tree-design.md
How milestones are executed by agents docs/superpowers/plans/2026-09-04-amicus-execution-model.md
Architecture decisions docs/adr/
How a release is cut docs/RELEASING.md
Deprecating the sibling projects docs/DEPRECATING-SIBLINGS.md
The router skill an agent loads to call amicus skills/collaborating-with-amicus/
Host captures and CLI evidence docs/host-captures/, docs/claude-help/, docs/kimi-help/
How past milestones were built git history — executed plans are removed once merged

License

MIT. See LICENSE.

Release files for amicus 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amicus 0.4.0
File Size Uploaded
amicus-0.4.0.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for amicus 0.4.0
File Interpreter ABI Platform
amicus-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.1 MB

Release files / amicus-0.4.0.tar.gz

Download URL amicus-0.4.0.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
5386f72ec0199179a30713a918b1d27ee8a005be94e36daae413692a8d06751c
BLAKE2b-256 checksum
How to use checksums
db082faa6bb3b391e7f53bf2b5fd15b76e51922849c9a52f9599b677b8be10c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / amicus-0.4.0-py3-none-any.whl

Download URL amicus-0.4.0-py3-none-any.whl
Size 397.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
249051bf5c2be720a33f4462ce14e3db038c8746a35965505dd0381246209862
BLAKE2b-256 checksum
How to use checksums
f7b7f32b8bb0167790d5b604a004b78e4d981bcaa725e9611aedb576a667a6b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.0

2 release files

0.5.0

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page