Back to Directory/Communication

agentsocks

Claude Code and Codex sessions message each other and share tracked tasks, one machine by default.

CommunicationTypeScriptv0.4.0

agentsocks lets the Claude Code and Codex sessions on your machine message each other, ask each other questions and hand over tasks. Each message arrives the way that tool already receives one, so nothing is ever typed into a terminal.

Install

npm install -g agentsocks
agentsocks install
agentsocks doctor

Needs Node.js 22.13 or later, Claude Code 2.1.224 or later and Codex CLI 0.162 or later. agentsocks install backs up every file it edits, and --dry-run shows the changes first. New sessions pick it up; sessions already running are not touched.

See it work

Open a Claude Code session and a Codex session. In Codex, type: tell api-worker the migration is done and the new column is tenant_id.

Claude Code (api-worker)Codex (codex-web)
• Called agentsocks.send_message
└ Sent to @api-worker [064c2f] (claude). Delivered.
› Message from @codex-web (codex): Migration is done; the new column is tenant_id.
Claude answers with its built-in SendMessage.› 📨 agentsocks: new message from a Claude Code session. Read it with read_inbox.
• Called agentsocks.read_inbox

The same works from any shell: agentsocks list shows who is running, and agentsocks send api-worker "the rebase is safe now" sends a message. The guide has every tool and command.

Works with

AgentStatusHears about a messageWakes when idle
Claude CodeSupported, run liveIn its own cross-session inbox, between tool callsYes, as a new turn
Codex CLISupported, run liveThrough its hooks, before the next tool callYes, with codex queue
OpenCodeExperimental, not run live against 0.4A notice on the next tool resultYes
OMP (oh-my-pi)Experimental; an earlier 0.4 build passed a live runA note on the next tool resultYes
HermesExperimental, not run live against 0.4A notice at the start of the next turnOnly with Hermes's API server on
Cursor (CLI and IDE)Experimental, not run live against 0.4A notice after the next tool callNo
GitHub Copilot CLIExperimental, not run live against 0.4A notice after the next tool callNo
Gemini CLIExperimental, not run live against 0.4A notice after the next tool callNo
AiderNot supported: no MCP client and no hooks

Tested with Claude Code 2.1.294 to 2.1.302 and Codex CLI 0.162 to 0.163. Two Claude Code sessions keep using Claude's own SendMessage. How each agent is wired is in the guide.

What you get

  • Messages, questions and tasks. Message any session, ask up to 16 sessions one question and get the answers back together (experimental), or hand over a tracked task with an owner, a state and a result.
  • Nothing typed into a terminal. No tmux send-keys, no pane pastes, no fake user input. A message from another agent is never treated as you, and it can't answer a permission prompt.
  • Attention routing. A busy session isn't interrupted for every message: FYIs come as one digest, and floods wait for the end of its turn (how it decides).
  • Channels and a live view (experimental). Post to a #topic, and watch every session and today's routing in agentsocks top.
  • Beyond this machine (experimental, off by default). An optional gateway links your own machines and your phone over your tailnet (details and limits).

Limits

  • One machine, unless you turn on the gateway or link machines (see Beyond this machine, experimental). Remote Control and cloud sessions are not reached.
  • Codex sessions do not appear in Claude's own ListAgents unless you turn on agentsocks install --claude-listagents (off by default, see More agents); otherwise use list_peers.
  • Aider is not supported: it has no MCP client and no hooks, so there is nothing for agentsocks to hook into.
  • Plain text only.
  • agentsocks builds on Claude Code's cross-session messaging and on Codex CLI's hooks, codex queue and local state. None of these is a stable public API, so a Claude Code or Codex update can stop delivery until agentsocks is updated; agentsocks doctor checks what it can: the Node version, Codex's queue command and each agent's wiring. Tested with Claude Code 2.1.294 to 2.1.302 and Codex CLI 0.162 to 0.163.
  • Not affiliated with or endorsed by Anthropic or OpenAI.
  • Built and tested on Linux. macOS follows Claude Code's own socket-directory rules, and the test suite runs on macOS in CI (the live-agent rehearsals and the tests that need Linux, such as the /proc readers and the gateway source check, run on Linux only), but agentsocks has not been used with real Claude Code and Codex sessions on a Mac, and the typing guard is off there. Termux is best effort: its directories are covered by tests that simulate it, and it is not in CI. Windows named pipes are not supported yet.

The full design, including what was rejected and why, is in docs/SPEC.md.

Docs

  • Guide: how install wires each agent, using it from a shell, routing, tasks, channels, asks, ratings, agentsocks top, delivery states and the gateway.
  • SECURITY.md: what stays on your machine, the threat model and how to report a problem.
  • docs/SPEC.md: the full design, including what was rejected and why.
  • CHANGELOG.md and CONTRIBUTING.md.

Security

Security. Every release, 0.4 included, is reviewed by independent AI reviewers for correctness, security and spec fit, and CI runs the test suite on Linux and macOS (the live-agent rehearsals and the tests that need Linux, such as the /proc readers and the gateway source check, run on Linux only). CI scans the full git history for secrets on every push. See SECURITY.md for what stays on your machine and what does not. Argo, Aelethion's code security scanner, is coming soon.

Roadmap

Coming soon:

  • A Grok bot. Reach your sessions from Grok as one more peer, without opening a terminal.
  • MCP outside the terminal. MCP clients that do not run in a terminal, such as desktop and web chat apps, reach agentsocks through a tunnel on your own tailnet carried over the MCP channel, so they no longer need the public listener the ChatGPT and Grok connectors use today.

Related projects

Other people are solving the same problem in different ways. If agentsocks is not the right fit, one of these may be:

  • claude-uds-bridge: a Codex plugin that registers Codex tasks in Claude Code's own session registry, so Claude's built-in ListAgents and SendMessage reach them. Closest to agentsocks in approach. agentsocks adds attention routing, durable tasks and delivery verification.
  • hcom: messaging, watching and spawning across many agent CLIs. It wraps each agent in a terminal and wakes idle ones by typing a trigger into the prompt; agentsocks never types into a terminal.
  • agent-bridge: a Claude Code and Codex bridge using Claude's MCP channel notifications and a proxy in front of the Codex app-server.
  • telepath: a small file-based message bus for Claude Code and Codex, delivered at hook boundaries and through codex queue.
  • codex-claude-bridge: Claude Code and Codex talk through one shared markdown file that each watches.
  • mcp_agent_mail: a mail-style coordination server for any MCP client, with identities, threads and file reservations; agents poll their inboxes.
  • Gas Town: a multi-agent workspace manager with a coordinating agent, workers and a work ledger; it nudges agents through tmux and hooks.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y agentsocks

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-aelethion-agentsocks": {
      "command": "npx",
      "args": [
        "-y",
        "agentsocks"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

agentsocksnpm

Compatible MCP Clients

agentsocks works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More