{"_id":"@atomic-content-protocol/cli","_rev":"4-402705856bdffb5741fbcefa298bb319","name":"@atomic-content-protocol/cli","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@atomic-content-protocol/cli","version":"0.1.0","keywords":["acp","atomic-content-protocol","cli","ai","llm"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/cli@0.1.0","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"bin":{"acp":"dist/index.js"},"dist":{"shasum":"d5f00e2d6a16be1cea39f8a2155a53a08f0405ed","tarball":"https://registry.npmjs.org/@atomic-content-protocol/cli/-/cli-0.1.0.tgz","fileCount":55,"integrity":"sha512-DRZdFaJ55kvFL4aIAgVx22iL6qQXB6GyhMxnQfS0fwi/tBztywDd20SlLaujZkv8ZHmHEeJdFOan1ppzSt7LYg==","signatures":[{"sig":"MEYCIQCmXiYrqnaIcwSyJPhtqKNY6UOxr+i0rYoGAqSvZDGQwQIhALFdyrD4YvMT26NIEKnLXD4AYAT95Hb1HDbfBz1mtWp+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80370},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"b374e870c9830e3f660264b1a61dbc4417ebb552","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"acp-sdk","email":"martina@stacklist.com"},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"apps/cli"},"_npmVersion":"10.9.2","description":"CLI tool for the Atomic Content Protocol","directories":{},"_nodeVersion":"23.6.1","dependencies":{"ora":"^8.2.0","chalk":"^5.4.0","commander":"^13.1.0","@atomic-content-protocol/mcp":"^0.1.0","@atomic-content-protocol/core":"^0.1.0","@atomic-content-protocol/enrichment":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1776630947861_0.8774452475664729","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atomic-content-protocol/cli","version":"0.1.1","keywords":["acp","atomic-content-protocol","cli","ai","llm"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/cli@0.1.1","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"bin":{"acp":"dist/index.js"},"dist":{"shasum":"e7cb6db6bb523a5b342cef0cd094e5241105b0a7","tarball":"https://registry.npmjs.org/@atomic-content-protocol/cli/-/cli-0.1.1.tgz","fileCount":55,"integrity":"sha512-hBC5tcg8jrfQhBkzRkYbtT3MfEAY42dYRTuUH/XhNTz5O8dBk06rQCBEEqdnTmZdoNyntKndJ4hnrDKCvaO+5Q==","signatures":[{"sig":"MEYCIQDXoZcYOsEwX+XdzCHM1HdH8oqY2A9RXr1k9sGVB+uIBgIhAKQLpil4gGqXk2jJaHP0qxfoLaY5HmyfCwUWvRtWO1sm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81126},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"47ae86e3becfdac45001f8a0dbc34b1fb6dfec34","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"acp-sdk","email":"martina@stacklist.com"},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"apps/cli"},"_npmVersion":"10.9.2","description":"CLI tool for the Atomic Content Protocol","directories":{},"_nodeVersion":"23.6.1","dependencies":{"ora":"^8.2.0","chalk":"^5.4.0","commander":"^13.1.0","@atomic-content-protocol/mcp":"^0.1.1","@atomic-content-protocol/core":"^0.1.1","@atomic-content-protocol/enrichment":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1776716799777_0.22728804937371216","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atomic-content-protocol/cli","version":"0.2.0","keywords":["acp","atomic-content-protocol","cli","ai","llm"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/cli@0.2.0","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"bin":{"acp":"dist/index.js"},"dist":{"shasum":"f2e7d7505f18d9a95fa6bd6ba3338a9e5d424477","tarball":"https://registry.npmjs.org/@atomic-content-protocol/cli/-/cli-0.2.0.tgz","fileCount":71,"integrity":"sha512-DKJN88r2eBaeqmyB2VVKHUemprNyf283DCfaIYqQymotU7mJ+9Ew/4deIb/WTJmUYwzYAOUDVWapj32+6nAOqA==","signatures":[{"sig":"MEUCIA4RSxRI4QwOmBNdcxxxBjQHzmOAm/FlMnLWlBeQoGRrAiEAhcSuEJNWGQU2PwW8iBOmAIg2pPLHo64MviE7UCF0r44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDGRZKp2TrInIYjMqzglkThFl2gucFk2FDY4m17ppyQWgIgDq9aYK/etw9nbIQPRwgH+jiIhr3aY+UuQ4f7w45kfsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-content-protocol%2fcli@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121267},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"36e5541054e17d16a94c3152556dbfb16b7f177d","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json","test":"vitest run","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09a41fcd-8023-4c0f-87d6-9d1029b8cc1a"}},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"apps/cli"},"_npmVersion":"12.0.2","description":"CLI tool for the Atomic Content Protocol","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ora":"^8.2.0","zod":"^3.24.0","chalk":"^5.4.0","commander":"^13.1.0","@atomic-content-protocol/mcp":"^0.2.0","@atomic-content-protocol/core":"^0.2.0","@atomic-content-protocol/enrichment":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^5.0.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1789376006004_0.6905567314105598","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"_id":"@atomic-content-protocol/cli@0.2.1","bin":{"acp":"dist/index.js"},"bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"dist":{"shasum":"c417326897d87c249be168d948b1a33be66ccac9","tarball":"https://registry.npmjs.org/@atomic-content-protocol/cli/-/cli-0.2.1.tgz","fileCount":71,"integrity":"sha512-ZHOskJ7qvosYdvhNKf1j9wGAgqZNHwNViTEINtZfhiEuugwkGbbnKZuK1x6uOgZhK5SpGrufSAFP30efNhisYw==","signatures":[{"sig":"MEYCIQCVIyhz1lfypytPb6oU8MtBjplP1gk9b4zW9YkSoT3RyQIhAM+QRxjEHqj8eGMkuKwLdhnaCvu1LeeQTxGpE8OSX7SC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzVCYJWPBoTHAS5HAww5YRBmRBxPJAI6Y0n4dIvQgn/wIgJdf5bPbqR3cCtDjBljvPnhrsZgHD8fEOnhocG3D5TGo="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-content-protocol%2fcli@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121267},"name":"@atomic-content-protocol/cli","type":"module","author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"engines":{"node":">=20.0.0"},"gitHead":"5d1371c8fa4d990983eb12de2b3f9660ca244b88","license":"Apache-2.0","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json","test":"vitest run","build":"tsc","clean":"rm -rf dist"},"version":"0.2.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09a41fcd-8023-4c0f-87d6-9d1029b8cc1a"}},"homepage":"https://atomiccontentprotocol.org","keywords":["acp","atomic-content-protocol","cli","ai","llm"],"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"apps/cli"},"_npmVersion":"12.0.2","description":"CLI tool for the Atomic Content Protocol","directories":{},"maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"_nodeVersion":"22.23.2","dependencies":{"ora":"^8.2.0","zod":"^3.24.0","chalk":"^5.4.0","commander":"^13.1.0","@atomic-content-protocol/mcp":"^0.2.1","@atomic-content-protocol/core":"^0.2.1","@atomic-content-protocol/enrichment":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^5.0.0","typescript":"^5.8.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.2.1_1789387514462_0.3849272779972377"}}},"time":{"created":"2026-04-19T20:35:47.700Z","modified":"2026-09-14T12:05:14.961Z","0.1.0":"2026-04-19T20:35:48.019Z","0.1.1":"2026-04-20T20:26:39.921Z","0.2.0":"2026-09-14T08:53:26.087Z","0.2.1":"2026-09-14T12:05:14.543Z"},"bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","homepage":"https://atomiccontentprotocol.org","keywords":["acp","atomic-content-protocol","cli","ai","llm"],"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"apps/cli"},"description":"CLI tool for the Atomic Content Protocol","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"readme":"# @atomic-content-protocol/cli\n\nCommand-line tool for the [Atomic Content Protocol](https://atomiccontentprotocol.org) — create, validate, enrich, search, and serve ACOs from your terminal.\n\n## Install\n\n```bash\nnpm install -g @atomic-content-protocol/cli\n```\n\nOr run without installing:\n\n```bash\nnpx @atomic-content-protocol/cli init ./my-vault\n```\n\n## Commands\n\n```\nacp init [path]                 Initialise a vault (.acp/config.json) in path (default: .)\nacp create                      Create an ACO from --title/--body or --url\nacp validate [path]             Validate every ACO in a vault, or one .md file\nacp enrich <id>                 Enrich one ACO with tags, summary, entities, classification\nacp enrich-batch                Enrich every ACO in the vault (filters, budget, concurrency)\nacp search <query>              Full-text search over titles and bodies\nacp serve                       Start the MCP server (stdio) over the vault\nacp stats                       Counts, enrichment coverage and token totals\n```\n\nEvery command accepts `--vault <path>`. Without it, the CLI walks up from the current directory to the nearest `.acp/config.json` (like `git` finds `.git`), and falls back to the current directory.\n\nRun `acp <command> --help` for options.\n\n### Examples\n\n```bash\nacp init ./vault --yes\nacp create --title \"Why ACP exists\" --body \"Knowledge that can't be found isn't useful.\" --tags protocol,knowledge\nacp create --url https://example.com/article            # fetched, source_type=link\nacp enrich 0193f5e6-... --pipelines unified,embed --yes  # embed needs OpenAI or Ollama\nacp enrich-batch --filter-status draft --max-cost 0.50 --concurrency 4 --yes\nacp validate --json\n```\n\n`--max-cost` is enforced *before* anything is sent to a provider: the CLI estimates each ACO, enriches as many as fit the budget, and reports the rest as deferred.\n\n### Exit codes\n\n| Code | Meaning |\n|---|---|\n| 0 | Success |\n| 1 | Runtime error (provider failure, missing ACO, …) |\n| 2 | Usage error (bad flag, invalid config) |\n| 3 | `validate` found invalid ACOs |\n| 4 | Enrichment requested but no provider configured |\n\nSet `ACP_DEBUG=1` to see stack traces.\n\n## Configuration\n\nProvider keys come from the environment:\n\n```bash\nexport ANTHROPIC_API_KEY=sk-ant-...\nexport OPENAI_API_KEY=sk-...          # also enables the embed pipeline\nexport ACP_QUALITY=fast               # fast (default) | balanced | best\n```\n\n`.acp/config.json` (written by `acp init`):\n\n```json\n{\n  \"vault_path\": \".\",\n  \"author\": { \"id\": \"you@example.com\", \"name\": \"Your Name\" },\n  \"enrichment\": {\n    \"quality\": \"fast\",\n    \"anthropic\": { \"model\": \"claude-haiku-4-5\" },\n    \"openai\": { \"model\": \"gpt-5.6-luna\", \"embedding_model\": \"text-embedding-3-small\" }\n  }\n}\n```\n\n`vault_path` is relative to the config file, so a vault can be moved or committed. Unknown keys are rejected so typos are caught.\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"acp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@atomic-content-protocol/cli\", \"serve\", \"--vault\", \"/path/to/vault\"],\n      \"env\": { \"ANTHROPIC_API_KEY\": \"sk-ant-...\" }\n    }\n  }\n}\n```\n\n## Links\n\n- Protocol spec: [atomiccontentprotocol.org](https://atomiccontentprotocol.org)\n- Repository: [github.com/atomic-content-protocol/sdk](https://github.com/atomic-content-protocol/sdk)\n\n## Stewardship\n\nThe Atomic Content Protocol is an open standard stewarded by [Stacks, Inc](https://www.stacks.inc/) — the company behind [Stacklist](https://stacklist.com).\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}