{"_id":"@amykit/cli","_rev":"4-917ac80bdb4c2cb281d405151f922288","name":"@amykit/cli","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@amykit/cli","version":"0.2.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/cli@0.2.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"bin":{"amy":"dist/index.js"},"dist":{"shasum":"c39ac656e2510cdfbd02900f8baa87e5df543f17","tarball":"https://registry.npmjs.org/@amykit/cli/-/cli-0.2.0.tgz","fileCount":77,"integrity":"sha512-00lSsiwASY3uKXsxjLKBBIbPj5JIZYisZn4dZqTOgaRq3PKms1TMdZBYgEwCUYcUSBQX2Pg7MQMYBwEzGuUEQA==","signatures":[{"sig":"MEQCID19/BjGxE80JwFxyGsaoC/d2iBoC2tsEJgLToev4xt8AiBK5+0V5szF7WOLQLJ9HwErA+tsMMA11lL94Cb5jBrs6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcli@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":253196},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b7903f5c95e8154f5db6fd4df6ca2633a628812d","scripts":{"prepack":"node ../../scripts/write-stamp.mjs","postpack":"node -e \"require('node:fs').rmSync('dist/stamp.json', {force: true})\""},"_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.19.0","description":"The amy command line: one install per machine, reached from any harness.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yaml":"^2.9.0","commander":"^14.0.0","@amykit/core":"^0.2.0","@amykit/model-specs":"^0.2.0","@amykit/plugin-file-log":"^0.2.0","@amykit/plugin-file-notes":"^0.2.0","@amykit/plugin-file-queue":"^0.2.0","@amykit/plugin-file-store":"^0.2.0","@amykit/plugin-file-tasks":"^0.2.0","@amykit/plugin-notify-hermes":"^0.2.0","@amykit/workflow-ticket-to-qa":"^0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0","@amykit/workflow-errand":"^0.2.0","@amykit/plugin-serial-engine":"^0.2.0","@amykit/workflow-note-to-plan":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1788658159511_0.15628133762537444","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amykit/cli","version":"0.3.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/cli@0.3.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"bin":{"amy":"dist/index.js"},"dist":{"shasum":"633d472b55e1a64968e9b2125e07ffa9b8de9ed3","tarball":"https://registry.npmjs.org/@amykit/cli/-/cli-0.3.0.tgz","fileCount":85,"integrity":"sha512-tShZlPBjk+ef42hvNtlGCWW86C8Ina7GU1mDIYfrEnHRFstHPs9EOxyKYDM3xLknAOZ5vcko5TIt1eN+0fW33w==","signatures":[{"sig":"MEQCIHGjQGw0k5/+s4Vex1qaoFnn0459LxIxvTmrkuzZMVRrAiB8RzkmfE6/PuVp6kUEQfRE5aU3DwP78LCp52lKgmyj6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcli@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284289},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a9e241e87a00d8267ad9e992c4ab8fd97bd04480","scripts":{"prepack":"node ../../scripts/write-stamp.mjs","postpack":"node -e \"require('node:fs').rmSync('dist/stamp.json', {force: true})\""},"_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.19.0","description":"The amy command line: one install per machine, reached from any harness.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yaml":"^2.9.0","commander":"^14.0.0","@amykit/core":"^0.3.0","@amykit/model-specs":"^0.3.0","@amykit/plugin-file-log":"^0.3.0","@amykit/plugin-file-notes":"^0.3.0","@amykit/plugin-file-queue":"^0.3.0","@amykit/plugin-file-store":"^0.3.0","@amykit/plugin-file-tasks":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0","@amykit/workflow-errand":"^0.3.0","@amykit/plugin-serial-engine":"^0.3.0","@amykit/workflow-note-to-plan":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.0_1788922140622_0.5363267532050595","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amykit/cli","version":"0.3.1","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/cli@0.3.1","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"bin":{"amy":"dist/index.js"},"dist":{"shasum":"3660ce189a14cb9e304ea745bdb6e6dc29056c61","tarball":"https://registry.npmjs.org/@amykit/cli/-/cli-0.3.1.tgz","fileCount":85,"integrity":"sha512-eoW1Yn3/oEpOIY6NrJiLX6WzVMVogNDh2GOsdaH+bguJjnJnxHX6xxjBjBp6ify1qe0AkBG6NiVlT+lsvVu5QA==","signatures":[{"sig":"MEUCIEuQUTyL6FFdvqr+WUDUmX+RMQwWrIxTf4X1nlweirJSAiEAzkjjPqHMXQae1UvwtMNO3DLjEZU2cEx3TsNdvQTk62M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcli@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285970},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6a4c559ad368c51e232a33c4c2221f02709ceb2f","scripts":{"prepack":"node ../../scripts/write-stamp.mjs","postpack":"node -e \"require('node:fs').rmSync('dist/stamp.json', {force: true})\""},"_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.19.0","description":"The amy command line: one install per machine, reached from any harness.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"yaml":"^2.9.0","commander":"^14.0.0","@amykit/core":"^0.3.1","@amykit/model-specs":"^0.3.1","@amykit/plugin-file-log":"^0.3.1","@amykit/plugin-file-notes":"^0.3.1","@amykit/plugin-file-queue":"^0.3.1","@amykit/plugin-file-store":"^0.3.1","@amykit/plugin-file-tasks":"^0.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0","@amykit/workflow-errand":"^0.3.1","@amykit/plugin-serial-engine":"^0.3.1","@amykit/workflow-note-to-plan":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.1_1788973030384_0.8558331486993522","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@amykit/cli@0.4.0","bin":{"amy":"dist/index.js"},"bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"38cfb438bd6bcce55d9af25d7a804a90cb63bf4d","tarball":"https://registry.npmjs.org/@amykit/cli/-/cli-0.4.0.tgz","fileCount":89,"integrity":"sha512-VTShPCZTV1h161yBRUcwklOsBhXg89Cr08Glgg/dY/S1NK3+drrI5Blu60TBJ6uO0FhGUDGRD+T5tSlqE1dkwQ==","signatures":[{"sig":"MEUCIDntELT43baRi2y3bJzoad021QO/cgi90prSyyx4RuMwAiEA7mJkHLuyDKm0T4PXiyCnTdD2V8a9+hAyS6HVy3E+5bg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCDHC3ckoq2xeCDihkKlcFWFWBGWfDL/6EVEGaCx3iEbQIgDvr9hoC6aCyEBJ6KCJkFbfYhYtolpJtYATIQeGpR3XM="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcli@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":314890},"main":"./dist/index.js","name":"@amykit/cli","type":"module","types":"./dist/index.d.ts","author":{"name":"Nicolas Melo"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ac437aba051bd8e109e1eb8b3c32b0365c6b4e2e","license":"MIT","scripts":{"prepack":"node ../../scripts/write-stamp.mjs","postpack":"node -e \"require('node:fs').rmSync('dist/stamp.json', {force: true})\""},"version":"0.4.0","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.19.0","description":"The amy command line: one install per machine, reached from any harness.","directories":{},"maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"yaml":"^2.9.0","commander":"^14.0.0","@amykit/core":"^0.4.0","@amykit/model-specs":"^0.4.0","@amykit/plugin-file-log":"^0.4.0","@amykit/plugin-file-notes":"^0.4.0","@amykit/plugin-file-queue":"^0.4.0","@amykit/plugin-file-store":"^0.4.0","@amykit/plugin-file-tasks":"^0.4.0","@amykit/plugin-file-worktree":"^0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0","@amykit/workflow-errand":"^0.4.0","@amykit/plugin-serial-engine":"^0.4.0","@amykit/workflow-note-to-plan":"^0.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.4.0_1789739931342_0.2532778020524957"}}},"time":{"created":"2026-09-06T01:29:19.375Z","modified":"2026-09-18T13:58:51.721Z","0.2.0":"2026-09-06T01:29:19.648Z","0.3.0":"2026-09-09T02:49:00.774Z","0.3.1":"2026-09-09T16:57:10.526Z","0.4.0":"2026-09-18T13:58:51.439Z"},"bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"author":{"name":"Nicolas Melo"},"license":"MIT","homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/cli"},"description":"The amy command line: one install per machine, reached from any harness.","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"readme":"# @amykit/cli\n\nThe `amy` command.\n\nIt reads the configuration, loads the plugins it names, assembles them, and\nprints. It holds no domain logic and it constructs no adapter: every decision\nbelongs to the workflow and every effect to a plugin.\n\n## Start here\n\n```sh\namy init                 # write the config and roster templates\ncp .env.example .env     # then put your tracker key in it\namy roster confirm       # stamp today's date\namy doctor               # check every dependency before it touches a ticket\n```\n\n`amy doctor` is the one to run first, and it exits non-zero, so it is safe to\ngate on. It checks the config, every plugin's own settings against the schema\nthat plugin declared, the roster's freshness, the API key, `gh`, `claude` and\n`git`, the notification target, and that every configured repository is\nactually checked out.\n\n## What is mounted\n\n```sh\namy plugin list              # what this install mounts, and what it assembled into\namy plugin add <spec>        # a package name, or a path\namy plugin remove <spec>\n```\n\nA spec is anything Node can import. With no `pluginList` in the config the\nbuilt-in set is used, so a fresh install works without listing anything.\n\nEverything is refused at boot, by name: a plugin that will not import, a\nsetting that is not one it declared, two plugins claiming the same port, and\nan action the workflow emits that nothing can run.\n\n```\n$ amy plugin remove @amykit/plugin-claude\n$ amy discover\namy could not start:\n  action `triage`: needs the `agent` port, which nothing mounted\n  action `implement`: needs the `agent` port, which nothing mounted\n  action `address-threads`: needs the `agent` port, which nothing mounted\n```\n\nThat is the price of an open action name, and it is paid here rather than\nhalfway through somebody's ticket.\n\n`amy plugin add` and `remove` rewrite only the plugin list, leaving every\nother line of the config as it was, because the comments explaining what each\nsetting is for are most of that file's value.\n\n## Running it\n\n```sh\namy discover     # put tickets in the working status onto the queue\namy tick         # exactly one move, for watching or debugging\namy run          # keep advancing until nothing is due\namy status       # where every ticket stands, and what is waiting on you\namy stop         # pull the handbrake, and end work in flight\namy start        # release it\n```\n\nPrefer `amy tick` over `amy run` until a whole ticket has been through end to\nend.\n\n## The two kinds of stop\n\n`amy stop` is the handbrake **you** pull, and it stays pulled until `amy\nstart`. Parking for a spent budget is automatic and temporary. Keeping them\nseparate matters: one is a decision and the other is a condition.\n","readmeFilename":"README.md"}