{"_id":"@anagnole/claude-cli","_rev":"3-dffe083cb8a8c5223af6c41bc950e06a","name":"@anagnole/claude-cli","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@anagnole/claude-cli","version":"0.1.0","keywords":["claude","cli","anthropic","proxy","agent"],"license":"MIT","_id":"@anagnole/claude-cli@0.1.0","maintainers":[{"name":"anagnole","email":"anagnole@outlook.com.gr"}],"dist":{"shasum":"31397b7a69bc465da94b34454a1de800b01eaf4d","tarball":"https://registry.npmjs.org/@anagnole/claude-cli/-/claude-cli-0.1.0.tgz","fileCount":33,"integrity":"sha512-HSW0tb7+Pit4FkfAnZMJPazrM/IC31/QfuKpS36LN7d/31FmMSnOlprWclKiuWEW/W/Lxjy7dxnbVaXPc5H7LA==","signatures":[{"sig":"MEQCIAI33QGAsdJslEXojUqAEqC3orcQAnQ66fdP1T0mXR1UAiBfHGjfJv5OQLP3+I/XN3OWEHRd+63G9DAbxWZp8JkWSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51525},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./cli":{"types":"./dist/cli/spawn.d.ts","default":"./dist/cli/spawn.js"},"./types":{"types":"./dist/types.d.ts","default":"./dist/types.js"},"./parser":{"types":"./dist/cli/parser.d.ts","default":"./dist/cli/parser.js"},"./session":{"types":"./dist/session/session-map.d.ts","default":"./dist/session/session-map.js"}},"scripts":{"build":"tsc","prepublishOnly":"tsc"},"_npmUser":{"name":"anagnole","email":"anagnole@outlook.com.gr"},"_npmVersion":"11.6.2","description":"Shared library for spawning, parsing, and managing Claude Code CLI sessions","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-cli_0.1.0_1773830595067_0.5349806268314201","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"@anagnole/claude-cli","version":"0.1.1","keywords":["claude","cli","anthropic","proxy","agent"],"license":"MIT","_id":"@anagnole/claude-cli@0.1.1","maintainers":[{"name":"anagnole","email":"anagnole@outlook.com.gr"}],"dist":{"shasum":"f45621f724cd2abfb09575d10d6e4bf0f6d9b1dd","tarball":"https://registry.npmjs.org/@anagnole/claude-cli/-/claude-cli-0.1.1.tgz","fileCount":34,"integrity":"sha512-AoApCxVb8+BFhVes+SK/gzAd+0dKz/3SO1SOW2lc89OYV/SkiUKT6AUta1/F+fm9YwcPB1zwbgsjmkWcupM6/g==","signatures":[{"sig":"MEUCIQCF+cCRSZZJLnZ09s0EOWPNVMCnHQ0RhD0uYbVXFed7ygIgT4vs7lZnXLwHJ9X8Mre+KWv6ldgXyU+LLk83dxm6mT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55603},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./cli":{"types":"./dist/cli/spawn.d.ts","default":"./dist/cli/spawn.js"},"./types":{"types":"./dist/types.d.ts","default":"./dist/types.js"},"./parser":{"types":"./dist/cli/parser.d.ts","default":"./dist/cli/parser.js"},"./session":{"types":"./dist/session/session-map.d.ts","default":"./dist/session/session-map.js"}},"scripts":{"build":"tsc","prepublishOnly":"tsc"},"_npmUser":{"name":"anagnole","email":"anagnole@outlook.com.gr"},"_npmVersion":"11.6.2","description":"Shared library for spawning, parsing, and managing Claude Code CLI sessions","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-cli_0.1.1_1773830924575_0.8408941826287484","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-03-18T10:43:14.966Z","modified":"2026-04-03T16:22:49.351Z","0.1.0":"2026-03-18T10:43:15.214Z","0.1.1":"2026-03-18T10:48:44.714Z"},"license":"MIT","keywords":["claude","cli","anthropic","proxy","agent"],"description":"Shared library for spawning, parsing, and managing Claude Code CLI sessions","maintainers":[{"name":"anagnole","email":"anagnole@outlook.com.gr"}],"readme":"# @anagnole/claude-cli\n\nA shared library for spawning, parsing, and managing [Claude Code CLI](https://code.claude.com) sessions from TypeScript/Node.js. Exposes the full power of the CLI — MCP servers, permission modes, tool control, git worktrees, cost limits, and more.\n\n## Install\n\n```bash\nnpm install @anagnole/claude-cli\n```\n\nRequires the Claude CLI (`claude`) to be installed and available in your PATH.\n\n## Basic usage\n\n```typescript\nimport { spawnClaude, NdjsonParser } from \"@anagnole/claude-cli\";\n\n// Spawn a Claude CLI process\nconst child = spawnClaude({\n  prompt: \"Explain this codebase\",\n  model: \"claude-sonnet-4-6\",\n  streaming: true,\n});\n\n// Parse streaming NDJSON output\nconst parser = new NdjsonParser();\nchild.stdout.on(\"data\", (chunk) => {\n  for (const event of parser.feed(chunk.toString())) {\n    console.log(event);\n  }\n});\n```\n\n## Full CLI options\n\n```typescript\nimport { spawnClaude } from \"@anagnole/claude-cli\";\n\nconst child = spawnClaude({\n  prompt: \"Fix the auth bug\",\n  model: \"claude-sonnet-4-6\",\n  streaming: false,\n\n  // System prompt\n  systemPrompt: \"You are a senior engineer.\",\n  appendSystemPrompt: true,\n\n  // Session management\n  resumeSessionId: \"uuid-from-previous-run\",\n  // or: continueConversation: true,\n  // or: forkSession: true,\n\n  // Permissions & tools\n  permissionMode: \"bypassPermissions\",\n  allowedTools: [\"Bash(git *)\", \"Read\", \"Edit\"],\n  disallowedTools: [\"Write\"],\n  // cliTools: \"\" to disable all, \"default\" for all\n\n  // MCP servers\n  mcpConfig: \"/path/to/mcp-config.json\",\n  strictMcpConfig: true,\n\n  // Workspace\n  workingDirectory: \"/path/to/project\",\n  worktree: \"feature-branch\",\n  addDirs: [\"../shared-lib\"],\n\n  // Safety limits\n  maxTurns: 10,\n  maxBudgetUsd: 1.00,\n\n  // Other\n  effort: \"high\",\n  fallbackModel: \"claude-haiku-4-5\",\n  claudePath: \"/custom/path/to/claude\",\n  jsonSchema: { type: \"object\", properties: { answer: { type: \"string\" } } },\n});\n```\n\n## Session management\n\n```typescript\nimport { SessionMap, type MessageParam } from \"@anagnole/claude-cli\";\n\nconst sessions = new SessionMap();\n\n// Hash message history to find a resumable CLI session\nconst messages: MessageParam[] = [\n  { role: \"user\", content: \"Hello\" },\n  { role: \"assistant\", content: \"Hi!\" },\n  { role: \"user\", content: \"What did I say?\" },\n];\n\nconst hash = SessionMap.hashContext(messages);\nconst sessionId = sessions.lookup(hash, \"claude-sonnet-4-6\");\n\n// After a response, store for future --resume\nsessions.store(\n  [...messages, { role: \"assistant\", content: \"You said Hello\" }],\n  \"cli-session-uuid\",\n  \"claude-sonnet-4-6\",\n);\n```\n\n## Transform helpers\n\n```typescript\nimport {\n  extractPrompt,      // Get last user message as text\n  extractSystem,      // Flatten system prompt blocks to string\n  warnUnsupported,    // Log warnings for unsupported API params\n  buildResponse,      // CLI JSON result → Anthropic API response shape\n  generateMsgId,      // Generate msg_... IDs\n  createStreamState,  // Initialize SSE streaming state\n  transformEvent,     // CLI NDJSON event → Anthropic SSE strings\n} from \"@anagnole/claude-cli\";\n```\n\n## Subpath imports\n\nFor lighter imports that avoid pulling in all modules:\n\n```typescript\nimport { spawnClaude } from \"@anagnole/claude-cli/cli\";\nimport { NdjsonParser } from \"@anagnole/claude-cli/parser\";\nimport { SessionMap } from \"@anagnole/claude-cli/session\";\nimport type { MessagesRequest } from \"@anagnole/claude-cli/types\";\n```\n\n## All exports\n\n```typescript\n// CLI\nspawnClaude, SpawnOptions, NdjsonParser\n\n// Session\nSessionMap\n\n// Transform\nextractPrompt, extractSystem, warnUnsupported\nbuildResponse, generateMsgId\ncreateStreamState, transformEvent, StreamState\n\n// Types\nContentBlock, SystemBlock, MessageParam,\nMessagesRequest, MessagesResponse, Usage, ApiError, apiError\n```\n\n## Companion: API server\n\nThis package also comes with a companion HTTP server (`@anagnole/claude-api-server`) that wraps the core library as an Anthropic Messages API-compatible endpoint. See the [monorepo README](https://github.com/anagnole/claude-api) for details.\n","readmeFilename":"README.md"}