{
  "markdown": "# linker\n\nBridge multiple AI coding instances together — share context, send messages, ask and answer questions across sessions without copy-pasting.\n\nWorks with **Claude Code**, **Cursor**, **Windsurf**, **Aider**, **Codex CLI**, **Continue**, and any OpenAI-API-based agent.\n\n## Install\n\n### MCP tools — one command, zero config\n\n```\n/plugin install linker@nautilux2\n```\n\nWorks in Claude Code, Cursor, Windsurf, and any MCP-compatible tool. Restart and the tools are live — nothing else needed.\n\n### Non-MCP tools — npx one-liners\n\nFirst, join a running host (started by one of the MCP instances above):\n\n```bash\n# Aider\nnpx github:nautilux2/linker join http://HOST:7700 --name aider\nnpx github:nautilux2/linker filewatch --name aider\n# then: aider --read ~/.linker/bus/context.json --read ~/.linker/bus/who.json\n\n# OpenAI agents (Codex CLI, GPT-4 loops, LangChain, etc.)\nnpx github:nautilux2/linker join http://HOST:7700 --name codex\nnpx github:nautilux2/linker openai --name codex\n# then: fetch tools from http://localhost:7720/tools\n```\n\n### Manual MCP (no plugin marketplace)\n\nAdd to your tool's MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"linker\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"github:nautilux2/linker\"]\n    }\n  }\n}\n```\n\n## What it does\n\nWhen you have two or more AI sessions open (different tools, terminals, or machines), linker lets them coordinate as a group:\n\n- **Send / receive messages** between specific instances or broadcast to all\n- **Ask / answer questions** across sessions — one instance asks, another answers\n- **Shared context store** — set and get key-value facts visible to all instances\n- **Presence tracking** — see which AI tools are connected and their agent types\n- **Auto-discovery** — new instances scan for an active host and join automatically\n\n## Setup flow\n\n**First instance (host):**\n\nOn first run the AI detects linker is unconfigured and calls `connect(action=\"scan\")`. Since no host exists yet, it offers to start one:\n\n```\nconnect(action=\"host\", name=\"alice\")\n→ Host started on http://localhost:7700\n→ Others join with: connect(action=\"join\", url=\"http://localhost:7700\", name=\"<name>\")\n```\n\nThe host runs as a background daemon — it stays alive between AI sessions.\n\n**Every other instance:**\n\nOn startup the AI scans ports 7700–7710, finds the host, and joins automatically:\n\n```\nconnect(action=\"scan\")\n→ Found: http://localhost:7700 (instances: ['alice'])\n\nconnect(action=\"join\", url=\"http://localhost:7700\", name=\"bob\")\n→ Joined. All tools active.\n```\n\n## Tools\n\n| Tool | Description |\n|---|---|\n| `connect` | Setup: scan for hosts, join, start a host, or check status |\n| `send` | Send a message to a specific instance or broadcast to all |\n| `recv` | Read unread messages addressed to this instance |\n| `ask` | Post a question for other instances to answer (returns an id) |\n| `answer` | Answer a pending question by id |\n| `pending` | List all unanswered questions |\n| `set` | Store a key-value pair in shared context |\n| `get` | Read shared context (one key or all) |\n| `who` | List all connected instances, their agent types, and last-seen time |\n| `log` | Show recent messages, questions, and context |\n\n## Multi-AI presence\n\n`who` returns agent type so instances know who they're talking to:\n\n```json\n{\n  \"alice\": { \"agent_type\": \"claude\",  \"tool\": \"claude-code\", \"last_seen\": \"14:32:01\" },\n  \"bob\":   { \"agent_type\": \"cursor\",  \"tool\": \"Cursor\",      \"last_seen\": \"14:32:05\" },\n  \"carol\": { \"agent_type\": \"codex\",   \"tool\": \"codex\",       \"last_seen\": \"14:31:58\" }\n}\n```\n\n## Inject rules into any project\n\n```bash\nnpx github:nautilux2/linker inject\n```\n\nWrites coordination rules to `.cursorrules`, `.windsurfrules`, and `AGENT.md` in the current directory. Safe to re-run (idempotent).\n\n## Architecture\n\n```\nlinker host (HTTP daemon, port 7700)\n  ├── instance alice  →  MCP stdio       (Claude Code / Cursor / Windsurf)\n  ├── instance bob    →  openai adapter  (Codex CLI / GPT-4 agent loops)\n  └── instance carol  →  filewatch       (Aider / shell scripts)\n```\n\nThe host is a lightweight in-memory HTTP server. All state is ephemeral — resets if the host restarts.\n\n## Requirements\n\n- Node.js 18+\n- No additional dependencies (stdlib only)\n\n## License\n\nMIT — © 2024 [nautilux2](https://github.com/nautilux2)\n",
  "bytes": 4285,
  "sha": "473839bdce6d5f783323bcff175def6d4235657e66d81331d1e372c555c331d9",
  "repo_slug": "nautilux2/linker",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_nautilux2_linker_linker_141c60f6/readme"
}