mcpField
A
Amicus

Amicus

ローカル
bourbondog.github.ioAI・エージェント21 日前に更新

Amicus について

Amicusは、Claude Code向けのマルチモデルレビューおよび並列チャットシステムで、CLIとMCPインターフェースを備えています。構造化レビュー、モデル間の相互評価、別モデルとの会話を元の作業に戻す機能を提供します。

主な機能

  1. 01構造化されたマルチモデルレビュー
  2. 02匿名の相互評価と議長の判定
  3. 03会話を別モデルに分岐
  4. 04sidecarの結果をセッションに反映
  5. 05CIでのヘッドレス実行
  6. 06ローカルモデル対応

活用シーン

  1. 01複数モデルで計画、設計、コード差分をレビュー
  2. 02ClaudeランタイムなしでCIレビューを実行
  3. 03別モデルに並行会話で作業を依頼
  4. 04ローカルモデルで非公開のオフラインレビュー

MCP 対応

AmicusにはMCPサーバーが含まれ、セッション、コンテキスト共有、並列実行のエンジンをClaudeに公開します。CLIを使えば、Claudeランタイムなしでレビューを実行できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"bourbondog-amicus": {
"command": "npx",
"args": [
"-y",
"amicus"
],
"env": {
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>",
"AMICUS_SKIP_POSTINSTALL": "<AMICUS_SKIP_POSTINSTALL>"
}
}
}
}
起動コマンドnpx -y amicus
設定が必要な環境変数
OPENROUTER_API_KEYシークレットOpenRouter API key (recommended multi-model route). Optional when a provider key is configured via 'amicus setup' (~/.config/amicus/.env) or OpenCode auth.json.
AMICUS_SKIP_POSTINSTALLSet to 1 when a plugin/client manages registration itself (skips npm postinstall side effects).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmamicus4.14.3

ツール

16

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tagstringいいえ一覧表示/検索/使用額のグループ分けに使うセッションのラベル
noUibooleanいいえGUI なしの headless モードで実行します。デフォルトは false(Electron ウィンドウを開く)です。
packstringいいえポリシーパック名またはパス。この実行における bench/chair/options/template のデフォルトを設定します。明示的に指定したパラメーターはパックの値を上書きします(どちらの場合も記録されます)。
agentenumいいえエージェントモード。Chat(インタラクティブのデフォルト。headless 実行では自動的に Build に変換):読み取りは自動、書き込みには許可が必要です。Plan:編集せずに分析します(読み取り、検索、shell の実行は可能)。Build:完全自動(すべての操作が承認済み)。Chat | Plan | Build
modelstringいいえ短縮エイリアス(gemini、gemini-pro、gpt、opus、deepseek、gpt-pro、codex、claude、sonnet、haiku、fable、qwen、qwen-coder、qwen-flash、mistral、glm、minimax、grok、kimi、seed、inkling)、または完全なモデル ID(provider/model のみの形式が正規形で、直接接続を優先します。例:anthropic/claude-opus-4-8。openrouter/provider/model は OpenRouter を強制します)。省略した場合は、設定済みのデフォルトを使用します。すべてのエイリアスを確認するには amicus_guide を呼び出してください。
promptstringはい詳細なタスクブリーフィング。目的、背景、関連ファイル、成功基準を含めてください。
gatewayenumいいえルーティングの優先設定:auto(直接接続を優先、デフォルト)、direct(プロバイダーの直接キーを必須とする)、または openrouter(OpenRouter を強制)。auto | direct | openrouter
projectstringいいえ任意のプロジェクトディレクトリのパス。省略した場合は、作業ディレクトリから自動検出します。
timeoutnumberいいえヘッドレスモードのタイムアウト時間(分)。デフォルト:15。noUi が true の場合にのみ適用されます。
thinkingenumいいえ推論の労力レベル。省略した場合、何も送信されず、プロバイダー独自のデフォルトの労力レベルが適用されます。モデルが宣言していないレベルは、リソースを消費する前に拒否されます(エンジンには各モデルが宣言する内容が一覧表示されます)。エンジンのカタログがモデルを時間内に認識できない場合、レベルは未検証のまま送信されます(レコードでは variantUnverified: true)。none | minimal | low | medium | high | xhigh | max
contextSincestringいいえコンテキストの時間フィルター — 直近 N 分/時間/日以内のターンのみを含めます。形式:30m、2h、1d。設定すると contextTurns を上書きします。
contextTurnsnumberいいえClaude セッションから含める会話ターンの最大数。デフォルト:50。
coworkProcessstringいいえCowork VM のプロセス名(例:"modest-laughing-goodall")。CWD から抽出:/sessions/<name>/。親コンテキストの読み込みに必要です。
parentSessionstringいいえコンテキストを正確に照合するための Claude Code セッション UUID。同じプロジェクトで複数のセッションがアクティブな場合の曖昧さを防ぎます。
summaryLengthenumいいえ折りたたみサマリーの詳細度。brief:重要な発見のみ。normal(デフォルト):構造化された完全な出力。verbose:最大限の詳細。brief | normal | verbose
includeContextbooleanいいえ親の会話履歴をコンテキストとして含めるかどうか。デフォルト:true。ブリーフィングが自己完結しており、以前の会話に依存しない場合は false に設定してください。ガイダンスについては amicus_guide を参照してください。
windowPositionenumいいえ画面上の Amicus ウィンドウの配置位置。right(デフォルト):右端にぴったり配置。left:左端にぴったり配置。center:中央に配置。right | left | center
contextMaxTokensnumberいいえコンテキストサイズの上限(トークン単位)。デフォルト:80000。

詳細

Amicus

Claude 向けのマルチモデル LLM 協議会 — その下で並行して動作する AI ウィンドウ。

3回の協議で進むAmicusの協議会の儀式:独立レビューのスポーク、匿名の相互レビュー、Claude以外の議長による評決の統合 — 3回目の協議では、クラウド上のモデルと並んでローカルのQwen2.5-Coderをデバイス上で起用します

計画、デザイン、差分、アーキテクチャの決定、原稿など、何でも Claude に渡して 「これを協議会でレビューして」 と伝えてください。Amicus はそれを異なるモデルファミリーの複数モデルに回し、匿名で相互レビューさせたうえで、Claude 以外の議長が評決をまとめます。その結果を採用/却下の編集に反映できます。あるいは、手続きを省いて、1つの会話を Gemini、GPT、DeepSeek、その他のモデルに分岐させることもできます。すべてのコンテキストを引き継いで並行して動作し、準備ができたら結果を統合できます。全体を通じて Claude がオーケストレーションを行い、作業場所はエディターのままです。

同じ協議会を、より多くの方法で実行できます: Claude ランタイムなしで CI からヘッドレス実行したり、ディベートラウンドで議論を深めたり、無料のローカルモデル(Ollama、LM Studio、vLLM)で $0 のままプライベートに、オフラインで実行したりできます。

npm バージョン ライセンス:MIT Node.js PR を歓迎します

クイックスタート ↓ · コマンド · ドキュメント · トラブルシューティング

対応クライアント: Claude Code CLI、Claude Desktop、Claude Cowork は十分にテストされ、サポートされています。Claude Code web は実験的な対応です。


目次


Amicus とは

1 回のインストールで、連携して動作する 6 つの機能が利用できます。

  • second-opinion LLM Council スキル。 構造化されたマルチモデルレビューです。独立したレビュー → 匿名化されたピアクロスレビュー → Claude 以外の議長による評決 → 段階的な採用/却下の判断を行います。これが主役です。
  • sidecar チャットスキル。 必要に応じてフォーク/作業/統合します。別のモデルを実際のウィンドウ(またはヘッドレス)で起動し、並行して作業した後、要約を統合します。
  • amicus CLI(am エイリアス付き)と MCP サーバー。 2 つのスキルを支えるエンジンです。セッションを起動し、コンテキストを共有し、並列ウェーブを実行して、同じ機能を MCP ツールとして Claude に公開します。
  • 自動更新されるモデルカタログ。 エイリアスと検証は、プロバイダー API から取得した最新カタログ(ローカルにキャッシュ)を使って解決されるため、ハードコードされた一覧を使わなくてもモデル名を最新に保てます。
  • 可観測性。 amicus watch <id> は、あらゆるターミナルから、実行中または完了済みの任意の実行(ファンアウトまたは Council)を表示します。--follow は進行状況をリアルタイムでストリーミングし、--on-complete は実行の完了時にフックを実行します。--retry-failed と、任意で有効にする低コストモデルへのフォールバックを使えば、ウェーブ全体を再起動せずに失敗した処理を復旧できます。amicus spend では、実行ごとの内訳を見て「費用はいくらで、どこにかかったか」を確認できます。
  • Council Workspace。 amicus watch <runId> --ui:Council の 思考過程 を表示するウィンドウです。実行中の各席、匿名化された判定用パケット、裁定マトリクス、異論の詳細、議長の評決、席ごとのコストを、実行中と過去の実行の両方で確認できます。また、Claude Code から MCP 経由で Council を実行すると自動で開きます(ローカル)。そのため、フラグを忘れずに指定する必要はありません(docs/council.md を参照)。

オーケストレーターは Claude です。Council とチャットのスキルはエンジンの 上で 動作します。Claude に話しかけると、Claude が Amicus を操作します。

1 回のインストールで、second-opinion Council と sidecar の各スキルが amicus CLI + MCP エンジンと連携し、最新モデルカタログ、watch/spend、Council Workspace を利用できます


Council

Claude に 「これを Council でレビューして」 と伝えるか、プラグインチャネルで /amicus:council を直接実行して開始します。

マルチモデルを使う理由。 セッションを実行しているモデルも含め、どの単一モデルにも一貫した盲点があります。異なるファミリーのモデルに同じ資料を通すと、意見の食い違いが明らかになります。見落とされた問題、過剰な確信、モデル単独なら見過ごしていた主張などです。Council は、この考え方を構造化したものです。

5 つのステップで進むフロー:

  1. 独立したレビュー。 各 Council モデルがそれぞれ個別に成果物をレビューし(1 回の並列ウェーブ)、主張、重大度(blocker | major | minor | nit)、場所、根拠を含む、構造化された指摘リストを作成します。
  2. 匿名化されたクロスレビュー。 Claude は各レビューに別のラベル(Review A、B、C…)を付け、同一の一式をすべてのモデルに送ります。各モデルはレビューの順位付けと各指摘の裁定(agree | dispute | neutral)を行います。自分のレビューだと知らずに評価するため、自己バイアスが解消されます。これにより信頼度の順位が得られ、指摘は異論あり/確認済み/意見が分かれる/単独の各段階に分類されます。自己バイアスは席ごとに解消されます。意図的に同じモデルを 2 回配置した場合、各席がもう一方の席の指摘に投じた票は、実際のピア票として数えられ、その指摘が同じモデルの別の席からしか裏付けられていない場合はフラグが付けられます。
  3. 議長の評決。 指名された Claude 以外の議長が、匿名性を解除した全体像(すべてのレビュー、順位、裁定)を受け取り、独立した評決をまとめます。Claude はそれをそのまま提示し、要約や合成はしません。
  4. 段階的な判断。 確認済みの指摘はまとめて採用/却下でき、意見が分かれる指摘と単独の指摘は 1 件ずつ判断します(採用/却下/修正)。
  5. 結果の反映。 採用した指摘はレビュー済みのソースコピーに書き込まれ、実行全体は実行フォルダーに保存されます。
flowchart LR
    A["Artifact"] --> B["Independent<br/>reviews"]
    B --> C["Anonymized<br/>cross-review"]
    C --> D["Chair verdict<br/>(non-Claude)"]
    D --> E["Tiered<br/>accept / deny"]
    E --> F["Reviewed copy<br/>+ run folder"]

匿名化された相互レビュー:ベンチが順位付けする前にレビューを A、B、C と付け替えます — あるモデルが自分自身のレビューに異議を唱えます

実行によって生成されるもの(output/<stem>-council/):

  • review-<model>.md × N — 各モデルによる独立したレビュー。
  • crossreview-matrix.md — 裁定グリッドと、匿名解除後の信頼度テーブル。
  • verdict.md — 議長による統合結果。
  • report.md — 統合結果+完全な決定ログ+呼び出しごとの実行統計テーブル。
  • report.html — 決定論的なレンダラーの出力(裁定マトリックス、信頼度テーブル、重要度別の指摘、コスト — 議長の文章は含みません)。これがユーザーに渡されるデフォルトの成果物です。
  • 編集可能なソースの場合、承認された編集内容は元のファイルと同じ場所にある <stem>-reviewed.<ext> に保存されます。

オプションの評議会要素(v2.2.0、すべてデフォルトではオフ):オプトイン方式の動作が 4 つあり、起動時に一度だけメニューとして提示されます — 名前を指定しない限り何も有効にならず、確認時には有効な項目が正確に表示されます。議長の判定スケール(v2.2.0 のフォローアップ以降は標準機能 — オプトインではありません):議長は必ず 3~5 個の厳しい質問で締めくくり、解析可能な VERDICT: Ship it | Fix these first | Fundamental rethink の 1 行を出力します。

  • 批評者席 — 1 人のレビュー担当者が、4 パスの敵対的ブリーフ(敵対的な検証、エッジケースの探索、一貫性チェック、実行可能性テスト)に切り替わります。その指摘は他の全員と同じ匿名化バンドルに加わるため、ベンチが批評者を律します。作り上げられた否定的な指摘は「異議あり」となり、集計で退けられます。
  • 専門家の視点 — 各レビュー担当者が異なる専門家の視点を取り、パネルの領域(ビジネス、技術、顧客、財務、またはカスタム)を選択できます。視点を使った実行は信頼性台帳に反映されず、レポートには相互レビューの匿名性が弱まることが明記されます。
  • 討論モード — 相互レビューの後、「係争中」または「異議あり」の指摘はすべて、提起者に戻され、反論、修正、または撤回を求められます。その後、異議を唱えた判定者が再投票します。反論ラウンドは厳密に 1 回だけ行われ、その後に最終集計が行われます。
  • 評議会に Claude を参加 — Claude が新たなレビューをバンドルに追加し、ベンチが順位付けと裁定を行います。Claude は評価されますが、投票も議長も務めないため、判定の独立性が保たれます。

オプトインの評議会要素 4 つをトグルで表示 — 批評者席と討論はオン、専門家の視点と Claude の参加はオフ — 実行内容も事前に開示

批評者と専門家の視点の手法は、John Renaldi の product-kit(MIT)にある /critic および /debate エージェントを応用しています。ブリーフの定型文は skills/second-opinion/SEAT-BRIEFS.md にあります。

コストは事前に開示されます。 モデルを起動する前に、有効なオプション要素を含む実行内容が表示されます。たとえば次のようになります。

この実行では、2 回のファンアウトウェーブと 1 回の議長呼び出しで、評議会モデルを 3 つ使用します。批評者席と討論モードはオンです(基本実行は約 7 回+反論呼び出しは最大 6 回)。

その後、評議会は確認を待ちます。

予算ゲート:0.42 ドルの実行は通過し、31.80 ドルのベンチはブロックされ、領収書は見積もりと一致します

スキルは skills/second-opinion/SKILL.md にあります。その基盤となる設計仕様は skills/second-opinion/COUNCIL-DESIGN.md です。amicus council tally|verdict|report|stats が実際にどのような入力を受け取り、何を生成するのか — フィールドごとのスキーマ、verdict.json の来歴、実際の CLI を使った実行例の全体 — については、docs/council.md を参照してください。


評議会の実行方法

主役は評議会です。まずは日常的な方法から始め、必要に応じて、より強力な方法を使いましょう。

  • Claude Code で、ただ頼むだけです。 Claude に計画、差分、デザイン、原稿を渡し、「評議会でレビューして」と伝えます。second-opinion スキルが、API キー以外のセットアップなしで、セッション内で上記の一連の手順をすべて実行します。ほとんどの人はこの方法で使っています。→ クイックスタート
  • Claude のランタイムなしで、CI からヘッドレス実行します。 amicus council run --prompt-file plan.md --council free を実行すると、同じパイプライン(レビュー → 相互レビュー → 集計 → 議長の判定)を1つのコマンドで実行し、verdict.json と report.html を書き出します。Claude のセッションが不要なので、そのまま CI に組み込めます。→ ヘッドレス評議会(CI)
  • 討論ラウンドを追加します。 --debate を追加すると、「意見が分かれる」または「異議あり」とされた指摘はすべて、提起した審査員に差し戻され、反論、修正、または撤回が行われます。その間、異議を唱えた審査員は再投票します。反論ラウンドは1回だけで、その後に最終集計を行います。→ 評議会
  • 無料で使えるローカルのプライベートモデルを、0ドルで利用します。 amicus provider add を使って、評議会(およびサイドカー)の接続先を、Ollama、LM Studio、vLLM など、すでにマシン上で稼働している OpenAI 互換サーバーに設定します。API キーも、トークンごとの料金も不要で、データがマシンの外に出ることもありません。オフラインでも動作します。→ amicus provider
  • レビュー対象ではなく、成果物そのものに取り組ませます。 --intent task を追加すると、同じベンチが成果物を批評するのではなく、生成します。→ タスクモード(v4.9)

ローカルの Ollama モデルが、0.00ドルで対等な評議会メンバーとして着席しています — モードではなく、メンバーです

### ヘッドレス評議会(CI)

同じパイプラインは Claude ランタイムなしでも実行できます。amicus council run --prompt-file briefing.md --models gemini,glm --chair deepseek --json を実行すると、レビューの各ラウンド、匿名化された相互レビュー、集計、議長の判定が1つのコマンドで実行され、完全な実行ディレクトリ(議長が解析した overallVerdict を含む verdict.json、report.html、すべてのレビューと審査出力)が書き出されます。これにより、リポジトリ独自の Council Review GitHub Action v2 が動作します。council-review ラベルが付いた PR に対して、判定済みの結論をチェック実行と固定コメントとして投稿し、実行ディレクトリを証跡アーティファクトとしてアップロードします。また、デフォルトで fail_on 入力を使ってマージをブロックします(Fundamental rethink 判定の場合のみ失敗します。Ship it を必須にするには fail_on: fix を、レポートのみの場合は fail_on: none を指定します)。詳細:docs/council.md。

このアクションでは、席ごとに OpenRouter の上流プロバイダーを固定できますが、固定なしで提供されます(#202)。 OpenRouter は1つのモデルを複数の上流プロバイダーから提供しており、実行記録にはどのプロバイダーが各処理を担当したかが残らないため、遅い上流プロバイダーと遅いモデルを区別できません。ワークフローの COUNCIL_PROVIDER_ROUTING にルーティングドキュメントを設定すると、有料ステップの前に実行ディレクトリへ opencode.json を書き込み、ベンチ対象モデル1つの上流プロバイダー(provider.openrouter.models.<id>.options.provider)を固定します。単一のスラッグを指定する only を使えば、そのモデルの各処理がどのプロバイダーによるものか、構成上明確になります。この機能は、ルーティング未設定で提供されます。 #202 の Lever 2 実験では、qwen を1つの上流プロバイダーに固定して2回の実運用ラウンドを実施しましたが、最初のトークンが届くまでの時間のテールは改善しませんでした。どちらのラウンドでも、固定した席の最初の試行は無出力時の打ち切りで終了し、1回目のラウンドでは再試行も終了して(912秒)、その席は失われました。2回目のラウンドでのみ、再試行とその審査処理が同じ上流プロバイダー経由で完了しました(2ラウンドにおける固定済みの5処理のうち3つが失敗)。したがって、固定しても解決にはならず、測定可能なメリットがないまま、マージをブロックする席を単一の上流プロバイダーに依存させることはありません。この仕組みは、次の問いに備えて、制御された状態でテストを続けます。固定を設定した場合、ドキュメントは書き込み前に検証され、指定した上流プロバイダーが一覧に存在し稼働していなければ、キー不要の実行前チェックによってその実行では固定がスキップされます。また、キー不要のカナリアテストで、エンジンが引き続きリクエスト本文までファイルを渡すことを確認し、実行後のステップでは、固定したモデルの処理が失敗した場合に警告します。このような実行の内容を確認するには、council-run 証跡アーティファクトを開いてください。内部の opencode.json に、その実行時に適用されていたルーティングが記録されています。

リリースパイプラインを制御する評議会:終了コード0ならリリース、終了コード1なら差し戻し

無料の評議会(費用ゼロ)

モデル費用をかけずに相互検証したいですか?amicus setup では、無料の OpenRouter 評議会モードを選べます。readline ウィザードのオプション2、または Electron の Models ステップから利用できます。カタログから利用可能な無料の :free モデルを検出し、複数のモデルを選択できます(Enter キーを押すと、ベンダーが重複しないデフォルトの構成が選ばれます)。選択したモデルは councils.free に保存されます。これは、衝突を避ける free-* エイリアスの下に初期設定される、正式な councils 設定プリミティブです。config.default は変更されず、必要なのは OPENROUTER_API_KEY だけです。

評議会を実行できる場所なら、どこでも実行できます。

amicus fanout --council free --prompt "Review this design"

amicus_fanout MCP ツールでも同じ council パラメーターを使用でき、second-opinion スキルは councils.free を自動的に読み込みます。メンバーがカタログから削除された場合は警告とともに除外されますが、2つ以上のモデルが残っている限り、評議会は実行されます。無料モデルにはレート制限があり、品質にもばらつきがあります。また、データ共有を openrouter.ai/settings/privacy で有効にしないと、404 を返すモデルもあります。

Council プリセット

amicus council save <name> --models a,b,c(解決可能なエイリアスまたは provider/model ID が2つ以上)で名前付きのメンバーリストを保存し、Council を実行できる場所ならどこでも --council <name> を指定して実行できます。amicus council list を実行すると、保存済みのプリセットに加え、セットアップ不要ですぐ使える3つの組み込みベンチが表示されます。free(上記で説明した、councils.free を初期設定していない場合に使われる同じゼロコストの動的選択)、budget(各ベンダーファミリーから1つずつ選んだ低コストの主力モデル)、frontier(各ベンダーファミリーから1つずつ選んだプレミアムなフラッグシップモデル)です。amicus council show <name> は、保存済みか組み込みかを問わず、いずれのプリセットも解決し、現在利用可能なメンバーを報告します。保存済みの Council は、同じ名前の組み込みプリセットより常に優先されます。これは、ウィザードでの councils.free の初期設定とまったく同じ動作です。

ポリシーパック(v4.5)

Council プリセットで保存するのはベンチだけです。パックでは、ベンチ、議長、批評役/観点、コスト/タイムアウトのオプション、ブリーフィングテンプレートをまとめて、名前付きの共有可能な1つの JSON ファイルとして保存します。

amicus pack save review-bench --kind council --bench gemini,deepseek,gpt --chair opus --timeout 20 --max-cost 2
amicus council run --pack review-bench --prompt-file plan.md --json

2行目で指定したフラグは、該当する値だけを上書きします。パックに明示的に指定しなかった値だけが補完され、いずれの場合も実行時に記録されます。パックは fanout/start と、amicus_fanout/amicus_start/amicus_council_run MCP ツールの両方で同じように使えます。amicus pack list/show/rm でパックを管理できます。また、フラグを一切入力せずに、気に入った実行結果からパックを作るには --from-run <id> を使います。詳しくは、docs/usage.md § ポリシーパックを参照してください。

タスクモード(v4.9)

Council はデフォルトでレビューを行います。amicus council run --intent task --prompt-file brief.md を実行するか、amicus_council_run MCP ツールで intent: 'task' を指定すると、同じパイプラインを自由形式の作業向けに切り替えられます。各席がブリーフィングで求められた分析、回答、成果物を作成し、判定役はどの回答が最も適切に作業を遂行しているかを順位付けし、各回答が示した主張を判定します。そして議長は、レビューの判定ではなく、Converged | Split | Insufficient のいずれかの回答を統合します。タスク実行とレビュー実行では判定基準に共通の値がないため、タスク実行で Ship it が報告されることも、レビュー実行で Converged が報告されることもありません。タスク実行では信頼性台帳への書き込みを意図的に行いません(台帳の順位付けは欠陥の確認ではなく、意見の一致を測るためです)。通常なら空に見える画面では、その旨が表示されます。レビュー実行の動作は以前とバイト単位で同一です。詳しくは、docs/council.md § タスクモードを参照してください。

ブリーフィングテンプレート(v4.5)

--template <name> --artifact <file>(繰り返し指定可能な --var k=v も使用できます)は、start/fanout/council run のいずれでも、送信前に {{prompt}}/{{artifact}} 形式の Markdown テンプレートを展開します。テンプレートは ~/.config/amicus/templates/ に保存されます。MCP にはテンプレート専用のパラメーターがないため、パックの briefing.template を使って、MCP から呼び出す実行にテンプレートを適用します。amicus template list|show でテンプレートを管理できます。v4.5 には組み込みテンプレートとして review が1つ含まれています。詳しくは、docs/usage.md § ブリーフィングテンプレートを参照してください。


クイックスタート

インストール方法は2種類あります。まずはこちらをお読みください。 Amicus には2種類の提供方法があり、それぞれ CLI コマンドの形式が異なります。

  • npm グローバルインストール(npm install -g amicus またはインストールスクリプト) — 推奨方法です。 amicus/am を PATH に追加するため、この README に記載されている amicus <command> の例をそのまま実行できます。また、並行ウィンドウで実行する Electron GUI もインストール時に用意されます。
  • Claude Code プラグイン(/plugin install amicus@bourbondog-amicus)では、CLI は PATH に追加されません。CLI を呼び出すには、代わりに npx -y amicus@latest <command> を使います。たとえば、amicus doctor は npx -y amicus@latest doctor になります。その一方で、プラグイン経由では npm にはない2つの機能を利用できます。スラッシュコマンド /amicus:council と /amicus:sidecar です。**これらはプラグイン経由でのみ利用できます。npm ユーザーは利用できません。**代わりに「council review this」と伝えるか、Claude に話しかけることで、同じスキルを利用できます。

違いの詳細は以下の比較表をご覧ください。要点としては、インタラクティブウィンドウを使うなら npm がおすすめです。また、両方を併用してインストールできます。

**この README 全体での表記ルール:**プラグイン経由で利用する場合は、CLI の例の前に npx -y amicus@latest を付けてください(amicus/am 単体での実行は使いません)。利用経路ごとにコードブロックを重複して掲載していません。この注意書きに従ってください。

1. インストール

どの方法でも MCP サーバーと2つのスキルを利用できます。それ以外に利用できるものが異なります。

npm/インストールスクリプトClaude Code プラグイン
amicus/am が PATH に追加される✅❌ — 呼び出しには毎回 npx -y amicus@latest <command> を使用
インタラクティブな Electron ウィンドウ(amicus start、watch --ui)✅ インストール時に用意⚠️ ベストエフォート — 詳細は以下を参照
GUI の問題発生時に自己修復(amicus doctor --fix)✅❌ 実行する CLI がありません
MCP サーバーと2つのスキル✅✅
スラッシュコマンド /amicus:council、/amicus:sidecar❌✅

npm を使う場合 — 推奨

標準的なインストール方法で、インタラクティブな機能をすべて利用できます(Node.js ≥ 22.12 が必要です)。

npm install -g amicus

プラグインのスラッシュコマンドを特に使いたい場合を除き、この方法を選んでください。amicus/am が PATH に追加されます。並行ウィンドウはこれを使って動作します。また、postinstall によって Electron GUI が用意され、後で問題が発生した場合は amicus doctor --fix でその場で修復できます。

インストールスクリプトを使う場合

npm と同じ結果を、1つのコマンドで実現できます。macOS、Linux、Windows に対応しています(Node.js ≥ 22.12 が必要です)。

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/BourbonDog/amicus/main/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/BourbonDog/amicus/main/install.ps1 | iex
Claude Code プラグインとして

Claude Code をお使いの場合、最もネイティブな 登録 方法であり、スラッシュコマンドが使える唯一の方法です。

/plugin marketplace add BourbonDog/amicus
/plugin install amicus@bourbondog-amicus
/reload-plugins

Claude Code が MCP サーバーと両方のスキルを登録するため、設定は不要です。さらに /amicus:council(評議会によるレビューを実行)と /amicus:sidecar(会話を別のモデルにフォーク)も利用できます。npm 経由の方法では、これらは使えません。

この方法を選ぶ前に、トレードオフをご確認ください。 このプラグインでは amicus が PATH に追加されないため、対話型ウィンドウを開くコマンドも含め、すべての CLI 呼び出しで npx -y amicus@latest <command> を使います。また、Electron GUI のセットアップと自己修復を行う amicus の postinstall もスキップされます。Electron が npx キャッシュに配置されればウィンドウは動作し、Claude Code から評議会を実行すると Council Workspace も引き続き自動で開きます。しかし、Electron が配置されなかった場合に修復する仕組みはなく、新しいリリースごとに新しいキャッシュディレクトリへ再解決されます。並列ウィンドウを日常的に使いたい場合は、npm でインストールしてください。

(なお、評議会またはサイドカーを初めて呼び出す際に、OpenCode エンジンがダウンロードされます。)

両方を併用できます。スラッシュコマンドとウィンドウの両方を使いたい場合は、この方法がおすすめです。CLI と GUI のために npm でインストールしてから、/amicus:council を使うためにプラグインを追加してください。設定、API キー、セッション履歴はどちらのインストール先の外部に保存され、自動的に共有されます。

併用する場合に知っておきたいことがあります。MCP サーバーは amicus という名前で1つだけ登録されるため、どちらか1つのインストール先が使用されます。通常は、最後に登録されたプラグインの npx -y amicus@latest mcp です。どちらも同じツールを提供するため問題はありませんが、CLI が実行するコピーと、Claude の MCP ツールが実行するコピーが異なる場合があります。amicus doctor は MCP の起動パスを明示的に報告し、--fix はそのコピーを直接修復します。そのため、GUI またはエンジンの問題が Claude では発生するのにターミナルでは発生しない場合は、まずここを確認してください。

npm と インストールスクリプトの方法では、postinstall によってすべてが自動設定されるため、手動登録は不要です。

  • Claude Code と Claude Desktop / Cowork に MCP サーバーを登録し、Amicus のツールをネイティブに利用できるようにします。
  • 両方のスキルを ~/.claude/skills/ にインストールします。second-opinion(評議会)と sidecar(チャットスキル)です。

postinstall をスキップしましたか? --ignore-scripts を付けた npm インストールでは postinstall は実行されず、プラグイン経由では仕様上スキップされます(Claude Code がプラグインの MCP サーバーとスキルを登録します)。どちらの場合も、必要なときにいつでも amicus init(プラグイン経由の場合:npx -y amicus@latest init)を実行して、必要に応じて再登録できます。たとえば、プラグイン経由では対象外の Claude Desktop も設定できます。詳しくは amicus init をご覧ください。


2. 設定 — ここは省略しないでください
⚠️ インストールするだけでは不十分です。これを実行しないと何も動きません。

Amicus は独自の API キーを持っていません。OpenRouter、Google、 OpenAI、Anthropic、DeepSeek の あなたの アカウントを利用します。少なくとも 1 つのキーを追加するまでは、すべての評議会とすべての サイドカーが、最初のモデル呼び出しで失敗します。ここを省略する人がいます。

amicus setup
# plugin-only install (no CLI on PATH):
npx -y amicus@latest setup

まずは 1 つのキーで十分です。 OpenRouter が一般的な選択肢です。 単一のキーでカタログ内のすべてのモデルを利用できるため、4 つのアカウントを個別に用意しなくても、複数のプロバイダーを組み合わせた評議会を実現できます。

グラフィカルなウィザードが開きます。

手順内容
1. API キーOpenRouter、Google、OpenAI、Anthropic、DeepSeek のキーを入力します。各キーはプロバイダーの API に対してリアルタイムで検証されます。~/.config/amicus/.env に 0600 の権限で書き込まれます。
2. デフォルトモデル検索可能なリアルタイムの選択画面(カタログを参照)から、通常使うモデルを選びます。各プロバイダーのカードでは、ファミリーのデフォルトだけでなく、特定のモデルまで選択できます。--model を省略した場合に使用されます。
3. モデルのルーティング各モデルをどのプロバイダーで処理するか決めます。たとえば、Gemini は Google の直接キー経由にし、それ以外はすべて OpenRouter 経由にできます。
4. 確認保存する前に設定を確認します。

ヘッドレス環境の場合: Electron がウィンドウを開けない場合、ウィザードは readline ベースのターミナル設定に切り替わります。

設定を確認しましょう — 準備が整っているかを最も手早く確認できます。

amicus doctor

すべてが緑色(0 error(s))なら、キー、カタログ、エンジン、スキル、MCP 登録がすべて整っています。赤い項目があれば、amicus doctor が次に実行すべき内容を正確に教えてくれます。


3. 初めての評議会

覚えるフラグはありません。Claude Code または Cowork で、Claude にドキュメントを渡して、次のように伝えてください。

council review this

プラグインチャネルのユーザーは、依頼文として伝える代わりに /amicus:council を直接入力することもできます。スキルは同じで、明示的に呼び出せます。

Claude が資料を準備し、モデルの組み合わせを提案して、実行内容とコストを明らかにしたうえで、残りを調整します。最後に承認または却下するかどうかを決めるのはあなたです。(Claude にこれを認識させるのが second-opinion スキルです。何も起きない場合は、amicus doctor(または npx -y amicus@latest doctor)を実行してください。npm/インストールスクリプトによるインストールではスキルが ~/.claude/skills/second-opinion/ に配置されます。プラグインインストールではプラグイン内に保持されます。Claude Code で /plugin を確認し、amicus が有効になっていることを確かめてください。)

4. 初めてのサイドカー

サイドカーは、より低レベルな方法です。Claude にフレーズで呼び出すこともできますが、CLI ではフラグを直接指定できます。

amicus start --model gemini --prompt "Fact-check the auth approach Claude just proposed"

エディターの横にウィンドウが開き、会話があらかじめ読み込まれた状態で Gemini が使えるようになります。Gemini と作業した後、Fold で要約を会話に戻します。

アップデート

Amicus は npm レジストリを最大 24 時間に 1 回確認します(バックグラウンドで確認し、結果をキャッシュします)。アップデートがある場合、CLI に通知が表示され、Electron のツールバーにはワンクリックで実行できる Update バナーが表示されます。手動で実行することもできます。

amicus update
GitHub からインストール

npm パッケージが基本のインストール方法です。代わりにリポジトリから直接インストールする場合も、postinstall の実行内容はまったく同じです(同じ MCP 登録、同じ 2 つのスキル)。必要なのは PATH に git があることだけです。

npm install -g github:BourbonDog/amicus

前提条件の一覧は、要件と依存関係を参照してください。

コントリビューター向けのセットアップ

Amicus の開発のためにクローンする場合は、開発環境のセットアップ、git フックの設定、テストコマンドについて、CONTRIBUTING.md を参照してください。


要件と依存関係

初回実行前に必要なものと、任意のものについて説明します。

ランタイム

  • Node.js ≥ 22.12 — node --version で確認できます。必須のランタイム前提条件はこれだけです。
  • アクティブな Claude Code または Cowork のセッション — Amicus は Claude によってオーケストレーションされるため、単体のチャットボットではありません。

インストール方法と git ツールチェーン

  • npm レジストリからインストール(推奨): npm install -g amicus。ビルドツールチェーンは不要です。パッケージにはビルド済みのものが含まれています。
  • GitHub からインストール: npm install -g github:BourbonDog/amicus でも、MCP の登録、2 つのスキル、postinstall はすべて同じように実行されます。追加で必要なのは、PATH 上で動作する git だけです。インストール時に npm がリポジトリをクローンするためです(git --version で確認できます)。

モデル API キー — 少なくとも 1 つ必要です

  • 1 つのキーで最も多くのモデルを利用できる OpenRouter、または Google/OpenAI/Anthropic/DeepSeek の直接キーを使用します。amicus setup または amicus key <provider> <key> で追加します。キーは ~/.config/amicus/.env に保存されます。利用できる環境変数は OPENROUTER_API_KEY、GOOGLE_GENERATIVE_AI_API_KEY(旧式の GEMINI_API_KEY も引き続き使用できます)、OPENAI_API_KEY、ANTHROPIC_API_KEY、DEEPSEEK_API_KEY です。
  • または、クラウドキーを使わずに無料でローカル実行できます。 マシン上で稼働している OpenAI 互換サーバー(LM Studio、Ollama、vLLM)を Amicus に指定すれば、API キーもトークンごとの料金も不要です。amicus provider add lmstudio --preset lmstudio(LM Studio)、--preset ollama(Ollama)、または --preset vllm(vLLM)を実行します。詳しくは amicus provider を参照してください。
  • ⚠️ OpenRouter キーを使用するには、購入済みのクレジットが必要です。 新規作成した残高ゼロのキーは、セットアップ時のライブ検証には合格しますが、実際の最初の呼び出しでは実行時に 402 エラーが発生します。コンサルを実行する前に、少額のクレジットを購入してください。

Electron — 任意(GUI のみ)

  • Electron は任意の依存関係です。グラフィカルなセットアップウィザードと、並列サイドカーウィンドウを動作させるために使用します。ヘッドレス実行とコンサル全体の実行には不要です — Electron がない場合やウィンドウを開けない場合、amicus setup は readline ウィザードに切り替わり、サイドカーはヘッドレスで実行されます。amicus doctor は Electron の有無を正確に報告し、存在しないことを致命的な問題として扱うことはありません。

OpenCode エンジン

  • バンドルされている opencode-ai エンジン(会話ランタイム)は、通常の依存関係として自動的にインストールされます。別途インストールする必要はありません。エンジンの postinstall では、プラットフォームごとのバイナリが約 11 個配置されます。この処理で一時的な障害(spawn の ENOENT や、ウイルス対策ソフトによるファイルロック)が発生すると、アトミックインストールがロールバックされることがあります。インストールが途中で失敗した場合や、amicus doctor が OpenCode のバイナリを「見つからない」と報告した場合は、npm install -g amicus を再実行してください。問題が続く場合は、先にキャッシュをクリアします:npm cache clean --force。

OS のサポート

  • Windows 11、macOS、Linux をすべてサポートしています。Amicus は Windows を第一級のプラットフォームとしてサポートしており(Windows 上で開発・テストされ、WSL は不要です)、詳しくは Windows セクションを参照してください。

実行コスト。 サイドカーはモデル呼び出し 1 回分です。コンサル全体では通常、有料モデル呼び出しが約 5~8 回発生します(例:2 回の並列実行ウェーブで 3 人のレビュアーが各 1 回呼び出され、さらに議長が 1 回呼び出されます)。Amicus は各コンサルの実行前に費用の見積もりを表示し、--no-cost-gate を指定して明示的に許可しない限り、非常に高額なモデル(o3-pro クラス)の使用を拒否する予算ゲートを内蔵しています。トークン料金は各プロバイダーに直接支払います。Amicus 自体は無料のオープンソースです。


並列ウィンドウ

完全な評議会は必要なく、別のモデルの意見だけが欲しい場合は、会話をフォークします。Amicus は現在の Claude Code のコンテキストを抽出し、それをあらかじめ読み込んだセッションを開きます。そこで並行して作業し、完了したら構造化された要約を Claude のコンテキストに取り込みます。

対話モード(デフォルト): エディターの隣に実際のウィンドウが開きます。モデル切り替え機能で会話の途中にモデルを切り替え、FOLD ボタンをクリック(または Cmd+Shift+F を押す)すると要約を生成できます。--fold-shortcut でショートカットをカスタマイズできます。

ヘッドレスモード(--no-ui): エージェントは自律的に作業し、完了すると取り込み用の要約を出力します。テスト生成やドキュメント作成など、一括作業に最適です。--json と組み合わせると、機械可読な実行ドキュメントを生成できます。

取り込みによる引き継ぎの仕組み。 取り込みは要約の引き継ぎであり、リアルタイムの引き戻しではありません。取り込むと、サイドカーモデルのコンテキストは失われます。仕組みとしては、FOLD をクリックするとモデルに構造化された要約を求め、その要約を Electron プロセスの標準出力に [SIDECAR_FOLD] タグ付きのブロックとして書き込みます。Electron を起動した amicus ランナーはその標準出力を取得し、セッションの summary.md として保存します(セッションディレクトリ内の metadata.json および conversation.jsonl と同じ場所です)。結果が自動的に返されることはありません。オーケストレーションを行うエージェントが、要求に応じて CLI の amicus read <taskId> または amicus_read MCP ツールを通じて取得します。いずれの方法でも、別のモデルが作成した文章がコンテキストに入るため、指示ではなくデータとして扱う必要があることを示す <untrusted_sidecar_output> のフェンスで要約が囲まれて返されます。

コンテキストの共有。 会話履歴は自動的に渡されます。次のオプションで調整できます。

  • --context-turns <N> — 含める会話ターンの最大数(デフォルトは 50)。
  • --context-since <duration> — 時間範囲(例:2h)。ターン数の指定より優先されます。
  • --context-max-tokens <N> — コンテキストサイズの上限(デフォルトは 80000)。
  • --no-context — 親の会話履歴をすべてスキップします。

MCP の継承。 Amicus は Claude Code セッションが使用する MCP サーバーを検出して引き継ぐため、フォーク先のモデルも同じツールを使用できます。次のオプションで制御できます。

  • --no-mcp — 親の MCP サーバーを一切継承しません。
  • --exclude-mcp <name> — 特定のサーバーを除外します(繰り返し指定できます)。
  • --mcp <name=url|name=command> — サーバーを 1 つ追加します。

安全性。 Amicus はファイルの競合(セッションの実行中にファイルが外部で変更された場合)とコンテキストのずれ(共有コンテキストが現在のセッションより古くなっている可能性がある場合)を警告するため、取り込みによって新しい作業がひそかに上書きされることはありません。

並列ウィンドウのアーキテクチャ:フォーク、作業、取り込み


コマンド

コマンド説明
amicus start新しいセッションを開始します(対話型または --no-ui)。
amicus fanout同じプロンプトに対して N 個のモデルを並列で実行します(ヘッドレス)。
amicus list過去のセッションを表示します — 起動時に設定した --tag <t> を表示し、--search <q> で絞り込み、--limit <n> で行数を制限し、--all ですべての既知のプロジェクトを対象にします(council の実行は現在のプロジェクトのみが対象です — CLI ではテーブル内にその旨が表示されます)。
amicus resume過去のセッションを履歴ごと再開します。
amicus continue過去のセッションを引き継ぐ新しいセッションを開始します。
amicus readセッションの要約/会話/メタデータを出力します。
amicus status <id>セッションまたは fan-out の実行状況を一度だけ表示します(人間向けまたは --json。--wave <id> も同じ意味です)。
amicus watch <id>完了するまで、任意のターミナルで fan-out の実行、council の実行、またはセッションをリアルタイムで表示します — TTY ではテーブルをインプレース更新し、--plain ではマイルストーン行を、--json では NDJSON を出力します。終了コードは最終状態に対応します。代わりに --ui を指定すると、Council Workspace ウィンドウを開きます(対話型のみ。--json は使用できません)。
amicus modelsカタログの一覧表示、検索、更新、またはエイリアスの監査を行います。
amicus aliasesモデルのエイリアス — フォロー中/ピン留め済みのものを表示します。--review で更新候補を順に確認し、--ui ではセットアップウィンドウで同じ操作を行います。--unpin <name> でピン留めを解除し、スクリプトでは --json を使用します。--review --owner(メンテナー向け)では同梱のピン留めを確認します。任意のコマンドの実行後、更新が保留中の場合は1日1回通知され、カタログは毎週バックグラウンドで更新されます(aliasReview.autoRefresh: false で両方を無効にできます)。
amicus doctorセットアップを診断します — キー、デフォルトモデル、カタログ、エイリアス、同梱のピン留め、OpenCode バイナリ、Electron、スキル、MCP 登録、OpenRouter クレジットを確認します(--json。--fix で可能な範囲を自動修復します)。
amicus spend支出台帳から実行をまたいだコストを集計し、実行ごとの内訳を表示します — 合計およびモデルごとの支出、トークン数、ソース構成を支出額の大きい順に表示します(--wave/--council/--project/--model/--op/--failed で絞り込み、--group-by で分類し、--since 7d で期間を指定できます。バージョン付きドキュメントには --json を使用します。キーが設定されている場合は、残りの OpenRouter クレジットも表示します)。
amicus keyAPI キーを対話なしで管理します:amicus key <provider> <key> で実際に検証してから保存し、--remove で削除します。引数なしの amicus key ではプロバイダーを一覧表示します。
amicus providerローカルの OpenAI 互換プロバイダー(LM Studio、Ollama、vLLM)を追加/一覧表示/テスト/削除します — --preset または --url で設定し、追加コストは $0 です(各サブコマンドで --json を使用できます)。
amicus councilCouncil の計算処理:tally <input.json>(決定論的なティア分けと台帳への追記)、stats(レビュー担当者の信頼性)、report <verdict.json> [--md|--html]、validate <file>(findings ブロックを確認し、終了コードは 0/2/1)、verdict <tally.json> [--decisions <d.json>] [-o <out.json>](verdict.json を生成して書き込みます)。プリセット:save <name> --models a,b,c、list [--json]、show <name> [--json] — 組み込みの free/budget/frontier ベンチについては Council presets を参照してください。
amicus council runヘッドレスの council エンジン:Stage-1 レビュー → 匿名化された相互レビュー → 決定論的な集計 → Claude ランタイムを使わない、Claude 以外の議長による判定を1つのコマンドで実行します。--debate を追加すると Stage-2.5 の反論ラウンドを実行します(異議を唱えたレビュー担当者が擁護/修正/撤回し、異議を受けた判定者が再投票します)。--claude-review <file> を指定すると、Claude 自身のレビューを判定対象のレビュー N+1 として加えます。verdict.json(overallVerdict を含む)と report.html を含む実行ディレクトリを書き出します — docs/council.md を参照してください。
amicus packベンチ、議長/批評者/レンズ、オプション、ブリーフィングテンプレートを含む実行設定一式を保存し、名前で呼び出します:save <name> --kind council|fanout|solo [flags](または --from-run <id>)、list、show <name>、rm <name>。start/fanout/council run で --pack <name> を指定すると読み込まれます。明示的なフラグは常に設定内容より優先されます。docs/usage.md § Policy packs を参照してください。
amicus templateブリーフィングテンプレートを list/show <name> で一覧表示/表示します。start/fanout/council run で --template <name> [--artifact <file>] [--var k=v] を指定すると、ブリーフィングの送信前にテンプレートをレンダリングします。docs/usage.md § Briefing templates を参照してください。
amicus abort実行中のセッションを中止します(または --all)。
amicus setupデフォルトモデル、API キー、エイリアスを設定します。
amicus update最新バージョンに更新します。
amicus mcpMCP サーバーを起動します(stdio トランスポート)。
amicus init必要に応じてスキルのインストールと MCP 登録を再実行します — 対象を絞るには --claude/--desktop を、ステップごとの状態を確認するには --json を指定します。npm の postinstall がスキップされるプラグインチャネル/--ignore-scripts でのインストール、postinstall の失敗、または削除された ~/.claude の状態の修復に使用します。
am エイリアスは、どこでも amicus と置き換えて使用できます。

すべてのフラグ、すべてのサブコマンド、すべての例 — amicus start のオプション一覧全体、amicus fanout(--session-id、--models の代替となる --council <name> に対応)、評議会のプリセット、その他すべてのコマンドを含みます — は、CLI の正式なリファレンスである docs/usage.md に記載されています。ここでは、実行の概要を確認するために必要な内容のみを紹介します。

amicus status <id> の出力です。人が読みやすい形式:

$ amicus status demo123
Task:     demo123
Status:   complete (terminal)
Elapsed:  5m 0s
Model:    google/gemini-2.5-flash

--json の場合:

$ amicus status demo123 --json
{
  "taskId": "demo123",
  "status": "complete",
  "elapsed": "5m 0s",
  "version": "4.14.3",
  "model": "google/gemini-2.5-flash",
  "phase": "terminal"
}

amicus list --status は、running、complete、error、timed-out、aborted、crashed、idle-timeout を受け付けます。行には TAG 列が含まれます(起動時に --tag <t> で設定します)。--search <q> は ID/タグ/ブリーフィングの部分文字列で絞り込み、--limit <n> は行数の上限を設定します(0 = 無制限)。--all は既知のすべてのプロジェクトを対象に一覧表示します(評議会の実行は現在のプロジェクトの範囲内にとどまります。プロジェクト横断のインデックスはなく、その旨が一覧に表示されます)。各フィールドの詳細(実行中のセッションにおける messages/STALLED のレポート、wave ID のステータス形式など)は、docs/usage.md に記載されています。


モデル

Amicus は、モデル名の固定リストを同梱していません。エイリアスと検証は、プロバイダー API から取得して ~/.config/amicus/model-catalog.json にキャッシュされるライブカタログに基づいて解決されます(有効期間は24時間。API キーがなくても取得できます)。amicus models を実行して、お使いのマシンで解決される内容を正確に確認してください。これが信頼できる情報源であり、この README ではありません。

amicus models                 # list the catalog
amicus models --search gemini # filter by substring

start/fanout は、起動前にモデルをカタログに照らして検証します(--no-validate-model でスキップできます)。エイリアスを使わず、完全なモデル ID を直接渡すこともできます — ベア形式の provider/model(正規形式)、または openrouter/provider/model(明示的なオーバーライド)です。「ルーティング」を参照してください。カタログの内部仕様、エイリアスの管理、完全な ID をそのまま渡す形式の一覧は、docs/usage.md § Models に記載されています。

直接キー、1つの OpenRouter キー、またはローカルランタイムで、多様なベンチを構築できます — 異なるファミリーが異なる盲点を補います

ルーティング
  • ベア形式の provider/model(例:openai/gpt-5.5、anthropic/claude-opus-4-8、google/gemini-3.6-flash)は、ポリシーに基づいてルーティングされる正規形式です。Amicus は直接接続を優先してルーティングします。直接プロバイダーキーが設定されていればそれを使い、OpenRouter キーのみがある場合は自動的に OpenRouter にフォールバックします。
  • openrouter/provider/model は、直接キーがある場合でも常に OpenRouter を強制する明示的なオーバーライドです。意図的に選択する場合や、直接連携に対応していないゲートウェイ専用のベンダー(Qwen、Grok、Mistral、GLM、…)で使用します。
  • --gateway auto|direct|openrouter(CLI。MCP ツールでも使用可能)は、1回の呼び出しでルーティングをオーバーライドします。auto は、直接接続を優先するデフォルト設定です。config.json の routing.prefer(デフォルトは "direct"、または "openrouter")でグローバルなデフォルトを設定できます。
  • 一度限りの移行通知: OpenRouter キーとベンダーの直接キーの両方をお持ちの場合、デフォルトの**auto**ルーティングでそのベンダーに解決される初回起動時に、ルーティングが直接 API に切り替わったことを知らせる通知が一度だけ表示されます。以前の OpenRouter のみを使う動作に戻すには、routing.prefer: "openrouter" を設定してください。--gateway direct を明示的に指定した場合は通知されません。これは移行ではなく、ご自身による選択だからです。

詳細、API キー/プレフィックスの一覧、移行通知については、docs/configuration.md を参照してください。


MCP 連携

MCP サーバーはインストール時に自動登録されます(Claude Code および Claude Desktop / Cowork)。以下のツールを公開します。

ツール機能
amicus_startセッションを起動し、タスク ID をすぐに返します。
amicus_statusタスク(またはファンアウトウェーブ)の完了状況を確認します。
amicus_waitセッション/ウェーブが終了するか、待機時間が終了するまで、1 回のツール呼び出し内で待機します。
amicus_read結果(要約、会話、メタデータ、または JSON)を読み取ります。
amicus_list過去のセッションを一覧表示します(tag フィールドを使用し、search は ID/タグ/ブリーフィングの部分文字列で絞り込みます)。
amicus_resumeセッションを再開します。
amicus_continue以前のセッションを基に新しいセッションを開始します。
amicus_abort実行中のセッションを停止します。
amicus_setupセットアップウィザードを開きます。
amicus_guide使用方法(モデルの選択、ブリーフィング、ポーリング)に関するガイダンスを返します。
amicus_fanout同一プロンプトのウェーブを起動し、{ waveId, taskIds[] } を返します。
amicus_council_tally協議会ウェーブのレビューを集計し、スコア付きの集計結果を作成します。
amicus_council_stats過去の協議会実行に基づくレビュアーの信頼性統計を返します。
amicus_verdict集計結果と判断内容から最終的な協議会の評決を作成します。render:true と outDir が指定されている場合は、<outDir>/report.html に書き込みます。
amicus_council_runヘッドレス協議会エンジン全体を実行します(ステージ 1 のレビュー → 匿名化された相互レビュー → 集計 → 議長の評決)。{ runId, runDir } を返し、非同期で実行されます。
amicus_spend支出台帳から実行をまたいだコスト集計を読み取り専用で取得します(CLI の amicus spend フラグに対応します)。

非同期処理のパターンは start → status → read です。amicus_start/amicus_fanout はすぐに応答し、その後 amicus_status でポーリングして amicus_read を呼び出します。amicus_wait を使うと、このポーリングのループを 1 回のブロッキング呼び出しにまとめられます。

旧式の sidecar_* ツール名は v2.0.0 で完全に削除され、現在は amicus_* ツールのみが存在します。AMICUS_LEGACY_ALIASES=1 は、v1.8.0 のオプトイン切り替えの名残で、何も行いません。詳しくは docs/SHIMS.md を参照してください。

手動登録の方法と各ツールの詳細については、docs/usage.md § MCP サーバー を参照してください。


設定

Amicus の設定には amicus setup の使用を推奨します。このコマンドは API キーを ~/.config/amicus/.env(0600)に書き込み、デフォルトのモデルとエイリアスを保存します。すべての環境変数(API キー、動作の調整、ヘッドレスポーラー、GUI/デバッグ、プロセスのライフサイクル)については、docs/configuration.md に記載されています。v2.0.0 では従来の SIDECAR_* → AMICUS_* 環境変数マッピングが完全に削除されました。削除記録と名前変更の一覧については、docs/SHIMS.md を参照してください。

ディスク使用量を初めて確認する場合は? 設定ツリーに含まれる各ファイルの内容、セッションの保存形式、ログの保存場所と保存の有無、config.json の正確な構造、完全なアンインストール手順については、すべて docs/configuration.md § 各種ファイルの保存場所 に記載されています。


JSON 出力

--json を指定すると、Amicus はスクリプトやエージェントでの利用を想定した、安定したバージョン付きの実行/ウェーブドキュメントを標準出力に出力します。

{
  "taskId": "...", "model": "...", "modelInput": "...", "agent": "...",
  "status": "complete", "summary": "...", "error": null,
  "createdAt": "...", "completedAt": "...", "durationMs": 0
}

fanout で使用するウェーブドキュメントの構造、各フィールドの意味、終了コードの一覧については、docs/usage.md § JSON 出力 を参照してください。すべての --json ドキュメントには公開済みの JSON Schema もあります。docs/schemas.md を参照してください(npm tarball の schemas/ に同梱されています)。


Windows

Amicus は Windows を正式にサポートしています。Windows 11 で開発・テストされており、WSL は不要です。

Claude 関連のツールの多くは macOS/Linux を前提としていますが、Amicus は異なります。

  • ユニットテストスイート全体が Windows 11 で問題なく実行されます。
  • ネイティブバイナリの PATH 処理により、Windows 上で OpenCode バイナリが正しく解決されます。
  • セッションパスのエンコーディングはネイティブに処理されます(単純な ~/.claude/projects の検索で問題になる Claude のプロジェクトパスのエンコーディングにも対応しています)。
  • 長いブリーフィングでは、--prompt-file を使うことで、Windows のコマンドライン引数の上限である約 32 KB を回避できます。

トラブルシューティング

まず amicus doctor を実行してください。キー、カタログ、OpenCode バイナリ、Electron、スキル、MCP の登録をまとめて確認し、問題がある項目に応じた修正方法を表示します。以下に記載のない症状や、各項目の詳細な診断については、docs/troubleshooting.md をご覧ください。

症状考えられる原因対処方法
"council review this"を実行しても何も起こらないsecond-opinionスキルがインストールされていません~/.claude/skills/second-opinion/SKILL.mdが存在するか確認してください。npm install -g amicusを再実行してください(postinstallで両方のスキルがインストールされます)。
npm install -g amicusがEEXIST: … claude-sidecarで失敗する古い上流のclaude-sidecarパッケージがグローバルにインストールされたままです。npmは別のパッケージのbinシムを上書きできませんnpm uninstall -g claude-sidecarを実行してから、npm install -g amicusを実行してください。キーや過去のセッションは失われませんが、v2.0.0では古いパスを自動的に読み取らなくなりました。1回限りの移行手順(~/.config/sidecar/と、存在する場合は.claude/sidecar_sessions/ディレクトリの名前を変更)については、docs/SHIMS.mdを参照してください。
インストールが途中で失敗する、またはamicus doctorでOpenCodeバイナリが「見つからない」と報告されるOpenCodeエンジン自体のpostinstall中に発生する一時的なエラー(spawnのENOENT、または11個のプラットフォーム別バイナリを配置する際のウイルス対策ソフトによるファイルロック)により、アトミックインストール全体がロールバックされる場合があります。通常、再試行すると成功しますnpm install -g amicusを再実行してください。それでも失敗する場合は、先にキャッシュをクリアしてください。npm cache clean --force && npm install -g amicus
401/認証エラーモデルのベンダー用に使用可能なキーがありません。provider/modelだけのIDは自動的にOPENROUTER_API_KEYにフォールバックするため、これは直接キーもOpenRouterキーも設定されていないか、--gateway direct/openrouterでキーが存在しないゲートウェイを強制したことを意味しますamicus setupを実行するか、amicus key <provider> <key>で不足しているキーを追加してください。ルーティングを参照してください。
最初のcouncil review/start/fanout呼び出しで402/「Payment Required」が発生するOpenRouterキーは有効ですが、クレジットがありません。キーの保存(amicus key openrouter <key>またはセットアップウィザードのキー設定ステップ)では、キーの認証のみを確認します。残高は確認しないため、クレジットがゼロのキーも問題なく保存され、最初に実際のモデルを呼び出したときに初めて失敗します。(amicus councilサブコマンド自体は決定論的な計算であり、モデルを呼び出すことはありません。)openrouter.ai/creditsでクレジットを追加するか、またはコストゼロのcouncilに切り替えてください。amicus setup → オプション2(Free OpenRouter council)を選択すると、ライブの:freeサフィックス付きモデルからcouncilを作成し、councils.freeとして保存します。その後、amicus fanout --council free …を実行してください。上記の無料のcouncil(コストゼロ)を参照してください。
直接指定したanthropic/…モデル(haiku、sonnet、opus、claude)がすべて、トークンを消費せず約2秒でNot Foundエラーになる一方、同じモデルがopenrouter/anthropic/…経由では動作する継承されたホスト形式のANTHROPIC_BASE_URL(/v1がありません)。これはAnthropic-SDKの慣例であり、OpenCodeのものではありません。Claude Codeから起動されたシェルがこれを設定します。v4.6.2以降、amicusはこれを自動的に<value>/v1に正規化します(プロバイダー設定の上書きで、stderrに一度だけ通知されます)。モデルID、エイリアス、キーに問題はなく、AMICUS_BASE_URL_NORMALIZE=0が設定されているか、パスが標準外でない限り、URLにも問題はありません。自動的に修復されるはずです。amicus doctorのanthropic-base-url行で、認識された値とその処理を確認してください。それでも失敗する場合は、設定した場合はAMICUS_BASE_URL_NORMALIZEを解除するか、export ANTHROPIC_BASE_URL=https://api.anthropic.com/v1を実行するか、変数を完全に解除するか、--gateway openrouterを渡してください。councilでは、応答しない席があっても実行が失敗するのではなく、機能が低下します。councilに料金を支払う前に、使い捨てのamicus startを1回実行し、各席をスモークテストしてください。docs/troubleshooting.mdを参照してください。
明らかに存在するモデルに対してModel 'X' is unverified against the direct catalog; attempting anywayと表示されるモデルが間違っているという主張ではありません。amicusが確認できなかったという意味です。そのベンダーの直接カタログの取得に失敗し(通常は保存されたキーが古いか、途中で切れているため)、その名前空間が空になっています。空の名前空間によって起動がブロックされることはありません。エンジンが独自の認証情報ストアからモデルを実行できる場合、動作するモデルでも警告が表示され続けます。amicus models --refreshを実行し、空のままのプロバイダーがないか確認してください。正常なキーをamicus key <provider> <apikey>で保存し直してください。docs/troubleshooting.mdを参照してください。
セッションが見つからない指定されたIDに一致するセッションがありませんamicus listを実行するか、--session-idを省略して最新のセッションを使用してください。
会話履歴が見つからないプロジェクトパスのエンコード~/.claude/projects/を確認してください。プロジェクトパス内の/と_は、ディレクトリ名では-にエンコードされます。
ヘッドレス実行が完了しないタスクがデフォルトのタイムアウト時間を超えています--timeout 30のように、タイムアウトを延長してください。
誤ったセッションが選択される複数のアクティブなセッションがあり、特定できません--session-idを明示的に指定してください。
折りたたみ要約が壊れて見えるデバッグ出力がstdoutに漏れていますLOG_LEVEL=debugを指定して再実行し、何が出力されているか確認してください。
モデルのカタログ検証に失敗するモデルがキャッシュされたカタログにありません(名称変更、またはキャッシュが古い)amicus models --refreshを実行するか、--no-validate-modelで検証を回避してください。
fanoutが2で終了する一部失敗したウェーブです。少なくとも1つのレッグが失敗していますウェーブドキュメントのlegs[]を読み、失敗した各レッグのstatus/errorを確認してください。
デバッグログ:
LOG_LEVEL=debug amicus start --model gemini --prompt "test" --no-ui

ドキュメント

ドキュメント説明
docs/usage.mdCLI と MCP の完全なリファレンスです。すべてのフラグ、サブコマンド、使用例を記載しています。
docs/council.mdCouncil パイプラインのリファレンスです。tally/verdict/report のスキーマ、来歴、具体的な使用例を記載しています。
docs/schemas.mdすべての --json ドキュメント(result と council の各ファミリー)の公開 JSON Schema です。
docs/configuration.md設定と環境に関する完全なリファレンスです。
docs/architecture.mdエンジン、Electron シェル、コンテキスト共有がどのように連携するかを説明します。
docs/opencode-integration.mdAmicus が OpenCode のランタイムをどのように駆動するかを説明します。
docs/troubleshooting.md詳細なトラブルシューティングです。
docs/electron-testing.mdUI テスト向けの Chrome DevTools Protocol パターンです。
docs/testing.mdテストスイートの構成と実行方法です。
docs/CITATIONS.md引用が古くならないように別のファイルを引用する方法と、引用ゲートで検証される内容を説明します。
docs/publishing.mdリリースと公開の手順です。
docs/SHIMS.mdブランド変更前の sidecar* 互換シムを v2.0.0 で削除した記録です。削除内容と移行方法を説明します。
skills/second-opinion/SKILL.mdLLM Council スキルです。
skills/sidecar/SKILL.mdsidecar チャットスキルです。
evals/README.mdLLM インタラクション向けのエンドツーエンド評価ハーネスです。

コントリビューション

コントリビューションを歓迎します。開発環境のセットアップ、Git フックの設定、テストコマンドについては CONTRIBUTING.md をご覧ください。

Chrome DevTools Protocol を介して実際のウィンドウを操作する、自律型の Electron UI テスト手法については docs/electron-testing.md に記載されています。


OpenCode を基盤として構築

Amicus は、オープンソースの AI コーディングエンジンである OpenCode を基盤とするハーネスです。OpenCode は、会話ランタイム、ツール実行フレームワーク、エージェントシステム、Web UI を提供します。Amicus は、Claude Code からのコンテキスト共有、Electron シェル、折りたたみ/要約ワークフロー、セッションの永続化、並列ファンアウトの波、マルチモデル Council、複数クライアント(CLI、MCP、Cowork)のサポートを追加します。OpenCode が LLM とのインタラクションにおける難しい部分を担うことで、Amicus は Council と並列ウィンドウのワークフローに注力できます。


クレジットとライセンス

Amicus は、John Renaldi による Claude Sidecar に着想を得ており、MIT License のもとで使用しています。元の著作権表示(© 2025 John Renaldi)は LICENSE に全文そのまま残されています。エンジンの変更、マルチモデル Council、スキルのバンドルの著作権は © 2026 Christian Wagner に帰属し、同じく MIT License のもとで公開されています。完全なクレジットについては LICENSE と NOTICE をご覧ください。

MIT。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。