{"id":"peer-agents","repo":"Vokturz/paseo-plugins","url":"https://github.com/Vokturz/paseo-plugins/tree/main/peer-agents","package":"paseo-peer-agents","npm":{"package":"paseo-peer-agents","version":"0.1.1","integrity":"sha512-y2kNiVKHTqX4sZAD41pyxnwvAWM80YGGArL5JW9ZK4OXa1P1dUB21MOfFCIaKS5i3omuvbGasxV9mwjtXawImA==","publishedAt":"2026-09-24T14:37:00.965Z"},"name":"peer-agents","description":"Agent-facing tools for independent Paseo peers and cross-workspace messaging.","categories":["orchestration","productivity"],"platforms":[],"caveats":["Requires Paseo 0.9.1 in the 0.9 line, Node.js 22 or newer, and the Paseo CLI on the daemon host.","Pi sessions are not supported by the injected tools on Paseo 0.9.1."],"images":["https://raw.githubusercontent.com/Vokturz/paseo-plugins/d256f68150a861c86dc9613600ff8d6f3bb9e8c7/peer-agents/images/01-peer-created.png","https://raw.githubusercontent.com/Vokturz/paseo-plugins/d256f68150a861c86dc9613600ff8d6f3bb9e8c7/peer-agents/images/02-peer-conversation.png"],"themes":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-09-24T20:15:39.745Z","addedAt":"2026-09-24T22:56:22+03:00","npmSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-09-24T20:02:03.262Z","version":"0.1.1","integrity":"sha512-y2kNiVKHTqX4sZAD41pyxnwvAWM80YGGArL5JW9ZK4OXa1P1dUB21MOfFCIaKS5i3omuvbGasxV9mwjtXawImA=="},"path":"peer-agents","version":"0.1.1","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-09-24T20:02:03.262Z","commit":"d256f68150a861c86dc9613600ff8d6f3bb9e8c7"},"scanError":"npm ranking metadata unavailable: download count","license":"MIT","paseoVersionRequirement":">=0.9.1 <0.10.0","descriptionNodes":[{"type":"text","text":"Agent-facing tools for independent Paseo peers and cross-workspace messaging."}],"caveatNodes":[[{"type":"text","text":"Requires Paseo 0.9.1 in the 0.9 line, Node.js 22 or newer, and the Paseo CLI on the daemon host."}],[{"type":"text","text":"Pi sessions are not supported by the injected tools on Paseo 0.9.1."}]],"manifest":{"id":"peer-agents","requirements":{"paseo":">=0.9.1 <0.10.0"},"build":[["npm","ci","--include=dev"]]},"repoMeta":{"stars":0,"defaultBranch":"main","pushedAt":"2026-09-24T14:33:53Z"},"owner":{"login":"Vokturz","avatarUrl":"https://avatars.githubusercontent.com/u/21696514?v=4"},"installNotesHtml":"<p>Requires Paseo 0.9.1 or newer in the 0.9 line, Node.js 22 or newer, and a <code>paseo</code> CLI on the daemon host's <code>PATH</code> that connects to the same daemon as the agent. If the daemon uses a nondefault host or home, set <code>PASEO_HOST</code> or <code>PASEO_HOME</code> in the daemon's environment so the injected MCP process uses the same target.</p>\n<p>From npm:</p>\n<pre><code class=\"language-sh\">paseo plugin add npm:paseo-peer-agents@0.1.1\n</code></pre>\n<p>From a local checkout:</p>\n<pre><code class=\"language-sh\">cd peer-agents\nnpm ci\nnpm run typecheck\nnpm test\npaseo plugin install /absolute/path/to/paseo-plugins/peer-agents\n</code></pre>\n<p>Reload an existing agent or start a new one after installation. It can call <code>list_peer_projects</code>, then pass the chosen <code>projectId</code> and task prompt to <code>create_peer_agent</code>. Omit <code>provider</code> and <code>model</code> to use the caller's provider and model; set either field to override it. For a separate checkout, specify <code>isolation: \"worktree\"</code> and optionally a branch name and base ref. With <code>isolation: \"local\"</code>, the new workspace has its own Paseo identity but shares the selected project's directory.</p>\n<p>The creator receives the peer's agent ID from the tool. The peer receives the creator's ID in its first prompt, and both agents receive <code>send_peer_message</code>. No human needs to detach or copy IDs.</p>\n<p>If agent launch fails after workspace creation, the tool checks for an agent tagged with that workspace ID. It archives the empty workspace; if an agent may have started or the check fails, it keeps the workspace and reports its ID for inspection.</p>","readmeText":"# Peer agents\n\nPeer agents gives Paseo-managed agents three MCP tools:\n\n- `list_peer_projects` lists the registered projects and their IDs.\n- `create_peer_agent` creates a new workspace in a selected project and starts an **independent, top-level agent** there. It returns the new agent ID and puts the creator's ID in the new agent's first prompt. The creator's chat shows a pending card while creation runs, then a card with the task, project name, and a link to the new agent. The new agent's chat shows a task card with a link back to the creator, hiding the tool instructions. By default, it uses the calling agent's provider and effective model.\n- `send_peer_message` sends a prompt to an agent ID on the same Paseo host, including a peer in another workspace. Paseo's chat renders it as a **Peer agent** card showing the message and a link to the sender.\n\nThe creation, task, and message cards render Markdown in their text, including headings, lists, code, links, tables, and images.\n\n![A peer agent created in a separate workspace](images/01-peer-created.png)\n![Task and message cards in the peer agent's conversation](images/02-peer-conversation.png)\n\nThe plugin injects its tools into new Claude, Codex, and OpenCode sessions and preapproves those tools through Paseo's tool policy so agents can use them without a human confirmation. Paseo 0.9.1 cannot preapprove exact MCP tools for Pi, so the plugin leaves Pi sessions alone. It does not need Paseo's global `injectIntoAgents` switch. The agent provider must accept stdio MCP servers. Existing sessions must be reloaded to receive the tools. On Linux, the tools also recover the Paseo agent ID from their provider parent process when a provider such as Codex strips environment variables from MCP children.\n\n## Install\n\nRequires Paseo 0.9.1 or newer in the 0.9 line, Node.js 22 or newer, and a `paseo` CLI on the daemon host's `PATH` that connects to the same daemon as the agent. If the daemon uses a nondefault host or home, set `PASEO_HOST` or `PASEO_HOME` in the daemon's environment so the injected MCP process uses the same target.\n\nFrom npm:\n\n```sh\npaseo plugin add npm:paseo-peer-agents@0.1.1\n```\n\nFrom a local checkout:\n\n```sh\ncd peer-agents\nnpm ci\nnpm run typecheck\nnpm test\npaseo plugin install /absolute/path/to/paseo-plugins/peer-agents\n```\n\nReload an existing agent or start a new one after installation. It can call `list_peer_projects`, then pass the chosen `projectId` and task prompt to `create_peer_agent`. Omit `provider` and `model` to use the caller's provider and model; set either field to override it. For a separate checkout, specify `isolation: \"worktree\"` and optionally a branch name and base ref. With `isolation: \"local\"`, the new workspace has its own Paseo identity but shares the selected project's directory.\n\nThe creator receives the peer's agent ID from the tool. The peer receives the creator's ID in its first prompt, and both agents receive `send_peer_message`. No human needs to detach or copy IDs.\n\nIf agent launch fails after workspace creation, the tool checks for an agent tagged with that workspace ID. It archives the empty workspace; if an agent may have started or the check fails, it keeps the workspace and reports its ID for inspection.\n\n## How it works\n\nPaseo normally records an agent-launched session as a subagent, even when it is placed in another workspace. `create_peer_agent` calls `paseo workspace create --project <id>` to create the workspace in the selected registered project. It then invokes `paseo run --background --workspace <id>` with `PASEO_AGENT_ID` cleared **for that launch only**. Paseo therefore creates a root agent directly. The tool returns the workspace and agent IDs after checking `paseo agent inspect` for a parent. It uses argument arrays rather than a shell.\n\n`send_peer_message` uses `paseo send --no-wait`, so the receiving agent can act on the message. The client timeline transformers display peer creation, tasks, and messages as cards. The links use Paseo's agent routes in the browser and app links in native clients. Both tools address only agents on the same Paseo daemon host.\n\n## Development\n\n```sh\ncd peer-agents\nnpm ci\nnpm run typecheck\nnpm test\n```\n"}