magents について
magentsは、複数のコーディングエージェントのセッションにアクセスする共有APIとコマンドラインツールです。既存のチャット間でコンテキストを引き継ぎ、稼働中のセッションにメッセージを送り、独立した永続セッションを開始できます。
主な機能
- 01稼働中および最近のエージェントセッションの検出
- 02会話記録の読み取り、検索、要約
- 03既存チャット間の作業引き継ぎ
- 04稼働中のセッションへのメッセージ送信
- 05独立した永続セッションの起動
- 06エージェント間でのメモとメモリー共有
活用シーン
- 01コーディングエージェントを切り替えて作業を継続
- 02別のエージェントに阻害要因への対応を依頼
- 03独立した作業ディレクトリで別タスクを実行
- 04過去のセッションから決定事項やコンテキストを検索
MCP 対応
magentsはMCPサーバーとして動作し、対応するエージェントホストにツールを登録します。MCPクライアントはセッションの検出、会話記録の読み取り、チャットの引き継ぎやメッセージ送信、セッションの起動を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/abnegate/magents:0.14.2ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/abnegate/magents:0.14.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Claude Code、Codex、Copilot、Cursor、Gemini、AGY、Grok、OpenCode は、すでに トランスクリプトをディスクに保存しています。magents は、それらのセッションを操作する共有 API です。MCP サーバーと小さな CLI を組み合わせることで、あなたが状況を説明し直さなくても、あるエージェントが別のエージェントの続きから作業できます。 また、あなたがその場にいないときに 特定の進行中のチャット にメッセージを送り、あるいは独立したタスク用に永続化される新しいチャットを開始できます。
履歴を二重に保存するものでも、結果を待たずに複数のエージェントへ依頼する仕組みでもありません。既存の チャットが引き続き標準の作業単位です。新しいチャットは、独立したセッションと作業ディレクトリを使うことで効果が得られる作業に適しています。
インストール · プラグイン · できること · クイックスタート · ツール · CLI · リリース
利用する理由
すでに複数のコーディングエージェントを使っているはずです。問題は「モデルがもっと必要」なことではなく、 別のウィンドウにコンテキストが閉じ込められていることです。
| 問題 | magents ができること |
|---|---|
| タスクの途中でホストを切り替えた | 進行中のセッションを読み取り、ここで 続けます |
| エージェント A が行き詰まり、その解決策をエージェント B が知っている | あなたが伝言役にならずに、進行中のチャットへ内容を送ります |
| サブタスクを単独で実行できる | プロンプトから返信までを含む、ヘッドレスで永続化されるセッションを開始します |
できること
1. 新しいスレッドを作らずに引き継ぐ
災害復旧ブランチについて Claude で作業していました。今は Grok を使っています。Grok に何をしていたか尋ねると、進行中のセッションを読み取り、続きから作業します。コピー&ペーストは不要です。「新しいチャットにコンテキストを貼る」必要もありません。
2. あなたが伝言役にならずに送信する
3 つのエージェントが実行中です。Claude が行き詰まり、Codex が解決策を知っています。Claude はその Codex スレッドに内容を送り、作業を続けます。送信元が、あなたなら再構築しなければならない失敗したクエリ、ファイル、制約をすでに把握している場合に特に便利です。
3. 独立した作業を開始する
タスクを単独で進められる場合は、完全なプロンプトを指定し、ファイルが競合する可能性があれば分離された作業ディレクトリを用意したうえで、magents 経由で返信するよう依頼して、新しいヘッドレスの永続化セッションを開始します。開始されたエージェントは、ホスト標準の承認ポリシーを維持します。セッションを開始しても、承認を回避できるようにはなりません。
インストール
Homebrew(macOS / Linux)
brew install abnegate/tap/magents
magents install --all
APT(Debian / Ubuntu)
curl -fsSL https://abnegate.github.io/apt-repo/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/abnegate.gpg
echo "deb [signed-by=/usr/share/keyrings/abnegate.gpg] https://abnegate.github.io/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/abnegate.list
sudo apt update && sudo apt install magents
magents install --all
バイナリ
リリースから入手できます。
curl -LSsf -o magents \
"https://github.com/abnegate/magents/releases/latest/download/magents-$(uname -m | sed 's/arm64/aarch64/')-$(uname -s | tr 'A-Z' 'a-z' | sed 's/darwin/apple-darwin/;s/linux/unknown-linux-musl/')"
chmod +x magents
./magents install --all
アセット:magents-x86_64-unknown-linux-musl、magents-aarch64-unknown-linux-musl、
magents-aarch64-apple-darwin、magents-x86_64-apple-darwin。
コンテナー
docker pull ghcr.io/abnegate/magents:latest
docker run --rm --user "$(id -u):$(id -g)" \
-v "$HOME:$HOME" -e HOME \
ghcr.io/abnegate/magents list --live
Cargo
cargo install magents --locked
magents install --all
ソースから
cargo install --path .
magents install --all
プラグイン
ホストプラグインには、magents スキルと magents mcp を実行する MCP エントリーが含まれています。まず CLI をインストールし(brew install abnegate/tap/magents)、続いて plugins/ 内の該当するフォルダーを読み込みます。
| ホスト | パス |
|---|---|
| Claude Code | plugins/claude |
| Codex | plugins/codex |
| Cursor | plugins/cursor |
| Gemini CLI | リポジトリのルート(gemini-extension.json) |
| AGY CLI / Antigravity | plugins/agy |
Gemini CLI では、このリポジトリから直接エクステンションをインストールできます。
gemini extensions install https://github.com/abnegate/magents
AGY CLI では、plugins/agy(マニフェスト、MCP、スキル)からプラグインをインストールできます。
agy plugin install https://github.com/abnegate/magents/plugins/agy
詳細とマーケットプレイスに関する情報: plugins/README.md。
クイックスタート
magents install --all を実行すると、インストール済みの各ホストに stdio MCP サーバーが登録されます。必要なバイナリが利用できないホストはスキップされます。
- Grok(
grok mcp add magents -- magents mcp) - Claude Code(
claude mcp add --scope user magents -- magents mcp) - Codex(
codex mcp add magents -- magents mcp) - Cursor(
~/.cursor/mcp.json) - OpenCode(
$XDG_CONFIG_HOME/opencode/opencode.json、デフォルトは~/.config/opencode) - Gemini CLI(
gemini mcp add -s user magents magents mcp) - GitHub Copilot CLI(
copilot mcp add magents -- magents mcp) - AGY CLI(
agy mcp add magents magents mcp)
また、対応ホストのスキルディレクトリ(~/.grok/skills/{magents,learn}、~/.claude/skills/{magents,learn}、~/.cursor/skills/{magents,learn}、および OpenCode/Gemini/AGY/Copilot の同等の場所)に magents と learn のスキルを書き込みます。/learn は Grok だけでなく、すべてのローカルエージェントのセッションを読み取ります。
Grok と Codex のみ、ホストからバイナリを手動で指定します。
[mcp_servers.magents]
command = "/path/to/magents"
args = ["mcp"]
Cline の場合は、MCP Servers → Configure MCP Servers を開き、cline_mcp_settings.json に以下を追加します。
{
"mcpServers": {
"magents": {
"command": "magents",
"args": ["mcp"]
}
}
}
ツールを表示するには、エージェントのセッションを再起動するか、/mcps を更新してください。
お試しください。
magents list --live
magents digest grok:latest
magents handoff grok:latest --reason "continuing in grok"
ツール
| ツール | 目的 |
|---|---|
list_sessions | 実行中および最近のセッション。cwd/branch で絞り込み |
get_session | ID、タイトル、実行中の名前、PID、または agent:ref で検索 |
read_transcript | コンパクトな読み取り専用の引き継ぎ情報(最後のリクエスト、最後のアクション、最近のやり取り) |
search_transcripts | これらのトランスクリプト全体の全文検索 |
search_memories | Claude/Codex/Grok のメモリ Markdown をフレーズ検索 |
create_memory | Claude/Codex/Grok のファーストパーティメモリにメモを書き込む |
spawn_session | 独立した作業用に、新しいヘッドレスの永続セッションを開始 |
send_message | 既存のチャットにユーザーのターンを送信 |
handoff | このセッションを簡潔にまとめ、別の実行中チャットに注入 |
inbox / ack / await_reply / reply | セッション間の返信用メールボックス |
session_digest | 最後のリクエスト/アクション/cwd/branch/抜粋したやり取りの概要 |
files_touched | 別のセッションが編集したパス |
stop_session | magents が監督する起動済みセッションまたは再開セッションを停止 |
read_memory | Claude/Codex/Grok のメモリ Markdown ファイルを 1 つ読み取る |
get_note / put_note | 作業ディレクトリ用の Magents 管理の共有スクラッチ領域 |
whoami | この接続を検出し、環境変数、ソケット、または一意の cwd からセッションを特定 |
learn_collect | /learn 用にすべてのローカルエージェントの全履歴から簡潔な記録を収集するか、実行内容を推定 |
learn_state | /learn の状態、決定事項、ゴミ箱を読み取るか更新 |
参照にはプレフィックスを付けられます:claude:disaster recovery、grok:latest、codex:<uuid>、cursor:latest、opencode:<id>、gemini:latest、agy:<id>、copilot:<id>。
CLI
magents list --live
magents list --agent grok --query edge
magents get 'claude:disaster recovery'
magents read grok:latest -n 20
magents digest grok:latest
magents search "dedicated databases" --agent claude
magents spawn codex --prompt-file /path/to/task.md --cwd /path/to/isolated-worktree
magents send grok:latest "handoff: the DR runbook is in docs/RUNBOOK.md"
magents handoff grok:latest --reason "continuing in grok"
magents whoami
magents learn estimate
magents learn collect
magents learn plan
magents learn collect --since-last
magents learn state
安定した機械可読の標準出力を得るには、任意のコマンドに --output json を指定してください。
パイプ経由の標準入力がある状態で引数なしの magents を実行すると、MCP サーバーが起動します。
magents spawn はデフォルトで標準入力からタスク全体を読み取ります(--prompt-file も使用できます)。プロンプトテキストがプロセス引数になることはありません。
セッション間のやり取り
list_sessions/read_transcript/search_transcripts/search_memories が引き継ぎを担います。create_memory は別のハーネス(Claude、Codex、Grok)のファーストパーティメモリに書き込みます。
作業を行う場所に応じて、書き込み方法を選択してください。
spawn_session- 新しいヘッドレスの永続セッションを開始し、独立して作業します。タスクの完了、検証、magents 経由の返信、編集が競合する可能性がある場合の隔離されたcwdに対応します。成功とは起動が受け付けられたこと(accepted: true、status: "starting")を意味し、タスクが完了したことを意味するものではありません。send_message- 既存のセッションに送信します。メールボックスへの記録は常に行われ、ホストが対応している場合は実行中のユーザーターンも注入されます。handoff- このセッションの内容を簡潔にまとめて既存の実行中セッションに渡し、同じ作業を続行できるようにします。
配信ルート(既存のチャット)
send_message は常にメールボックスにメッセージを追加し、その後、ネイティブのライブ経路を優先し、利用できない場合は監視下でヘッドレス再開を開始します。
| サーフェス | 配信ルート |
|---|---|
| Claude Desktop | UDS ユーザーターン(/tmp/cc-socks/<pid>.sock)、次に tmux または監視下での claude -p --verbose --resume <id> |
| Claude CLI | 利用可能な場合は UDS、次に tmux または監視下での再開 |
| Grok | 監視下での grok --cwd <cwd> --resume <id> --output-format streaming-json --prompt-file /dev/stdin |
| Codex Desktop / VS Code | ~/.codex/ipc/ipc.sock 上の長さ付き JSON-RPC、次に監視下での codex exec ... resume |
| Codex CLI | 監視下での codex exec --json -C <cwd> resume <id> - |
| Cursor | 監視下での cursor-agent -p --output-format stream-json --resume <id> --workspace <cwd> |
| OpenCode | セッションの cwd で起動する(PWD を設定)監視下での opencode run --format json --session <id> |
| Gemini CLI | 監視下での gemini --resume <id> --output-format stream-json |
| AGY CLI / Antigravity | 監視下での agy --input-format stream-json --output-format stream-json --conversation <id> |
| GitHub Copilot CLI | 監視下での copilot --resume=<id> --output-format json |
監視下のルートでは、ユーザーターンを stdin 経由で渡し、応答にトランスクリプトのテキスト、トークン、生のホスト出力は公開しません。Spawn は承認の回避オプション(--dangerously-skip-permissions、--yolo、--full-auto など)を追加しません。
セッションの検出元:Claude は ~/.claude と ~/.claude-*(および Desktop の Claude / Claude-* セッションディレクトリ)、Grok は ~/.grok/active_sessions.json、Codex は sqlite + rollout JSONL、Cursor は agent-transcripts、OpenCode は SQLite(opencode.db とチャンネルデータベース、v1 の session テーブルと v2 の session_v2 / session_message テーブル)、Gemini はジャーナル、AGY CLI は conversations / brain と Antigravity デスクトップの conversation_summaries、Copilot は session-state です。Claude セッションには、名前付きホーム(~/.claude-work の場合は work)に由来するとき、profile フィールドが含まれます。再開とライブ注入では、そのホームの CLAUDE_CONFIG_DIR を使用します。
テスト
cargo test --locked --all-targets
cargo llvm-cov --locked --all-targets --ignore-filename-regex 'src/main.rs|/rustlib/' --fail-under-lines 98
CI では、フォーマット、clippy(-D warnings)、全テストスイート、および行カバレッジ 98% のゲートを実行します。
要件
- Rust 1.97+
- macOS または Linux(Claude の UDS 注入は Unix のみ)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。