[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1897":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},1897,"spawn-agent","millionco\u002Fspawn-agent","millionco","Spawn available local agents on a user's computer","",null,"TypeScript",166,8,148,1,0,13,2.86,"MIT License",false,"main",[23,24,5],"agent","local","2026-06-12 02:00:34","# spawn-agent\n\n[![version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fspawn-agent?style=flat&colorA=000000&colorB=000000)](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fspawn-agent)\n[![downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdt\u002Fspawn-agent.svg?style=flat&colorA=000000&colorB=000000)](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fspawn-agent)\n\nSpawn available local agents on an user's computer\n\nA [Vercel AI SDK](https:\u002F\u002Fai-sdk.dev) provider for Claude Code, Codex, Cursor, GitHub Copilot, Gemini, OpenCode, Factory Droid, and Pi — streamed over the [Agent Client Protocol](https:\u002F\u002Fagentclientprotocol.com).\n\n## Install\n\n```bash\nnpm install spawn-agent ai\n```\n\n## Usage\n\n```ts\nimport { streamText } from \"ai\";\nimport { spawnAgent } from \"spawn-agent\";\n\nconst { textStream } = streamText({\n  model: spawnAgent(\"claude\"),\n  prompt: \"Refactor src\u002Fauth.ts to use the new session API\",\n});\n\nfor await (const chunk of textStream) {\n  process.stdout.write(chunk);\n}\n```\n\nPass settings inline at the call site, or build a pre-configured provider with `createSpawnAgent`:\n\n```ts\nimport { generateText } from \"ai\";\nimport { spawnAgent } from \"spawn-agent\";\n\nconst { text } = await generateText({\n  model: spawnAgent(\"codex\", {\n    cwd: \"\u002FUsers\u002Fme\u002Fproject\",\n    permission: \"auto-allow\",\n    mcpServers: [\n      {\n        type: \"stdio\",\n        name: \"filesystem\",\n        command: \"npx\",\n        args: [\"-y\", \"@modelcontextprotocol\u002Fserver-filesystem\", \"\u002Ftmp\"],\n      },\n    ],\n  }),\n  prompt: \"Summarize README.md in three bullets\",\n});\n```\n\n| Setting                 | Effect                                                                         |\n| ----------------------- | ------------------------------------------------------------------------------ |\n| `cwd`                   | Working directory the agent operates in.                                       |\n| `permission`            | `\"auto-allow\"` (default) \u002F `\"auto-allow-once\"` \u002F `\"auto-reject\"` \u002F `\"stream\"`. |\n| `mcpServers`            | MCP server configs the agent connects to for extra tools.                      |\n| `additionalDirectories` | Extra absolute paths the agent can read\u002Fwrite.                                 |\n| `systemPrompt`          | Prepended to user prompts.                                                     |\n| `inactivityTimeoutMs`   | Kill the turn if the agent goes silent (default 3 min).                        |\n\n## Supported agents\n\n| ID         | Display name       | Notes                                            |\n| ---------- | ------------------ | ------------------------------------------------ |\n| `claude`   | Claude Code        | requires `@agentclientprotocol\u002Fclaude-agent-acp` |\n| `codex`    | Codex              | requires `@zed-industries\u002Fcodex-acp`             |\n| `cursor`   | Cursor Agent       | native ACP                                       |\n| `copilot`  | GitHub Copilot CLI | native ACP                                       |\n| `gemini`   | Gemini CLI         | native ACP                                       |\n| `opencode` | OpenCode           | native ACP                                       |\n| `droid`    | Factory Droid      | native ACP                                       |\n| `pi`       | Pi                 | native ACP                                       |\n\nFor a custom ACP-speaking subprocess, use `spawnAgent.fromAdapter(...)`.\n\n## Stateful sessions\n\nFor multi-turn conversations on a single subprocess, use `createSpawnAgentSession`. Each `streamText` call against `session.model` sends one `session\u002Fprompt` turn, so the agent's conversation memory is preserved across turns:\n\n```ts\nimport { streamText } from \"ai\";\nimport { createSpawnAgentSession } from \"spawn-agent\";\n\nawait using session = await createSpawnAgentSession(\"codex\");\n\nawait streamText({ model: session.model, prompt: \"list TODOs\" });\nawait streamText({ model: session.model, prompt: \"now fix the highest one\" });\n\n\u002F\u002F slash commands via providerOptions\nawait streamText({\n  model: session.model,\n  prompt: \"agent client protocol\",\n  providerOptions: { spawnAgent: { command: \"web\" } },\n});\n```\n\nFor human-in-the-loop permission prompts, terminal handlers, and session resume, the `session.agent` field exposes the underlying `SpawnAgent`. See [`packages\u002Fspawn-agent\u002Fsrc\u002Findex.ts`](https:\u002F\u002Fgithub.com\u002Fmillionco\u002Fspawn-agent\u002Fblob\u002Fmain\u002Fpackages\u002Fspawn-agent\u002Fsrc\u002Findex.ts) for the full API.\n\n## Contributing\n\n[Contributing Guide](https:\u002F\u002Fgithub.com\u002Fmillionco\u002Fspawn-agent\u002Fblob\u002Fmain\u002FCONTRIBUTING.md) · [Issues](https:\u002F\u002Fgithub.com\u002Fmillionco\u002Fspawn-agent\u002Fissues)\n\n### License\n\nMIT\n","spawn-agent 是一个用于在用户计算机上启动本地代理的工具。它支持多种AI代码助手如Claude Code、Codex、GitHub Copilot等，并通过Agent Client Protocol进行通信，使得这些代理可以在本地环境中运行。项目使用TypeScript编写，提供了灵活的配置选项，包括工作目录设置、权限控制以及额外的服务端配置等，以便于适应不同的开发需求。适用于需要利用本地计算资源来加速代码生成或重构的场景，特别适合开发者在不依赖云服务的情况下提升编码效率。",2,"2026-06-11 02:46:42","CREATED_QUERY"]