akm-cli 0.7.4 → 0.8.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/CHANGELOG.md +224 -1
  2. package/README.md +22 -6
  3. package/SECURITY.md +93 -0
  4. package/dist/cli/config-migrate.js +144 -0
  5. package/dist/cli/config-validate.js +39 -0
  6. package/dist/cli/confirm.js +73 -0
  7. package/dist/cli/parse-args.js +133 -0
  8. package/dist/cli/shared.js +129 -0
  9. package/dist/cli.js +2631 -1440
  10. package/dist/commands/add-cli.js +279 -0
  11. package/dist/commands/agent-dispatch.js +110 -0
  12. package/dist/commands/agent-support.js +68 -0
  13. package/dist/commands/completions.js +3 -0
  14. package/dist/commands/config-cli.js +130 -534
  15. package/dist/commands/consolidate.js +2122 -0
  16. package/dist/commands/curate.js +45 -3
  17. package/dist/commands/db-cli.js +23 -0
  18. package/dist/commands/distill-promotion-policy.js +660 -0
  19. package/dist/commands/distill.js +1081 -73
  20. package/dist/commands/env.js +213 -0
  21. package/dist/commands/eval-cases.js +43 -0
  22. package/dist/commands/events.js +15 -24
  23. package/dist/commands/extract-cli.js +127 -0
  24. package/dist/commands/extract-prompt.js +204 -0
  25. package/dist/commands/extract.js +477 -0
  26. package/dist/commands/feedback-cli.js +331 -0
  27. package/dist/commands/graph.js +477 -0
  28. package/dist/commands/health.js +1302 -0
  29. package/dist/commands/help/help-accept.md +12 -0
  30. package/dist/commands/help/help-improve.md +69 -0
  31. package/dist/commands/help/help-proposals.md +18 -0
  32. package/dist/commands/help/help-propose.md +17 -0
  33. package/dist/commands/help/help-reject.md +11 -0
  34. package/dist/commands/history.js +54 -46
  35. package/dist/commands/improve-auto-accept.js +97 -0
  36. package/dist/commands/improve-cli.js +217 -0
  37. package/dist/commands/improve-profiles.js +166 -0
  38. package/dist/commands/improve-result-file.js +167 -0
  39. package/dist/commands/improve.js +2373 -0
  40. package/dist/commands/info.js +5 -2
  41. package/dist/commands/init.js +50 -2
  42. package/dist/commands/installed-stashes.js +102 -139
  43. package/dist/commands/knowledge.js +136 -0
  44. package/dist/commands/lint/agent-linter.js +49 -0
  45. package/dist/commands/lint/base-linter.js +479 -0
  46. package/dist/commands/lint/command-linter.js +49 -0
  47. package/dist/commands/lint/default-linter.js +16 -0
  48. package/dist/commands/lint/env-key-rules.js +154 -0
  49. package/dist/commands/lint/index.js +196 -0
  50. package/dist/commands/lint/knowledge-linter.js +16 -0
  51. package/dist/commands/lint/markdown-insertion.js +343 -0
  52. package/dist/commands/lint/memory-linter.js +61 -0
  53. package/dist/commands/lint/registry.js +36 -0
  54. package/dist/commands/lint/skill-linter.js +45 -0
  55. package/dist/commands/lint/task-linter.js +50 -0
  56. package/dist/commands/lint/types.js +4 -0
  57. package/dist/commands/lint/workflow-linter.js +56 -0
  58. package/dist/commands/lint.js +4 -0
  59. package/dist/commands/migration-help.js +3 -0
  60. package/dist/commands/proposal.js +67 -12
  61. package/dist/commands/propose.js +120 -45
  62. package/dist/commands/reflect.js +1104 -60
  63. package/dist/commands/registry-cli.js +150 -0
  64. package/dist/commands/registry-search.js +5 -2
  65. package/dist/commands/remember-cli.js +257 -0
  66. package/dist/commands/remember.js +70 -7
  67. package/dist/commands/schema-repair.js +203 -0
  68. package/dist/commands/search.js +115 -14
  69. package/dist/commands/secret.js +173 -0
  70. package/dist/commands/self-update.js +3 -0
  71. package/dist/commands/show.js +158 -60
  72. package/dist/commands/source-add.js +17 -45
  73. package/dist/commands/source-clone.js +3 -0
  74. package/dist/commands/source-manage.js +14 -19
  75. package/dist/commands/tasks.js +437 -0
  76. package/dist/commands/url-checker.js +42 -0
  77. package/dist/core/action-contributors.js +28 -0
  78. package/dist/core/asset-ref.js +17 -2
  79. package/dist/core/asset-registry.js +12 -17
  80. package/dist/core/asset-serialize.js +88 -0
  81. package/dist/core/asset-spec.js +67 -1
  82. package/dist/core/common.js +182 -0
  83. package/dist/core/concurrent.js +25 -0
  84. package/dist/core/config-io.js +347 -0
  85. package/dist/core/config-migration.js +622 -0
  86. package/dist/core/config-schema.js +534 -0
  87. package/dist/core/config-sources.js +108 -0
  88. package/dist/core/config-types.js +4 -0
  89. package/dist/core/config-walker.js +337 -0
  90. package/dist/core/config.js +364 -968
  91. package/dist/core/errors.js +42 -20
  92. package/dist/core/events.js +105 -135
  93. package/dist/core/file-lock.js +104 -0
  94. package/dist/core/frontmatter.js +75 -8
  95. package/dist/core/lesson-lint.js +3 -0
  96. package/dist/core/markdown.js +20 -0
  97. package/dist/core/memory-belief.js +62 -0
  98. package/dist/core/memory-contradiction-detect.js +274 -0
  99. package/dist/core/memory-improve.js +806 -0
  100. package/dist/core/parse.js +158 -0
  101. package/dist/core/paths.js +280 -14
  102. package/dist/core/proposal-quality-validators.js +380 -0
  103. package/dist/core/proposal-validators.js +69 -0
  104. package/dist/core/proposals.js +512 -42
  105. package/dist/core/state-db.js +1068 -0
  106. package/dist/core/text-truncation.js +107 -0
  107. package/dist/core/time.js +54 -0
  108. package/dist/core/tty.js +59 -0
  109. package/dist/core/warn.js +64 -1
  110. package/dist/core/write-source.js +3 -0
  111. package/dist/indexer/db-backup.js +391 -0
  112. package/dist/indexer/db-search.js +198 -489
  113. package/dist/indexer/db.js +990 -108
  114. package/dist/indexer/ensure-index.js +136 -0
  115. package/dist/indexer/file-context.js +3 -0
  116. package/dist/indexer/graph-boost.js +376 -101
  117. package/dist/indexer/graph-db.js +391 -0
  118. package/dist/indexer/graph-dedup.js +95 -0
  119. package/dist/indexer/graph-extraction.js +550 -114
  120. package/dist/indexer/index-context.js +4 -0
  121. package/dist/indexer/indexer.js +547 -309
  122. package/dist/indexer/llm-cache.js +52 -0
  123. package/dist/indexer/manifest.js +3 -0
  124. package/dist/indexer/matchers.js +167 -160
  125. package/dist/indexer/memory-inference.js +152 -74
  126. package/dist/indexer/metadata-contributors.js +29 -0
  127. package/dist/indexer/metadata.js +275 -196
  128. package/dist/indexer/path-resolver.js +92 -0
  129. package/dist/indexer/project-context.js +192 -0
  130. package/dist/indexer/ranking-contributors.js +331 -0
  131. package/dist/indexer/ranking.js +81 -0
  132. package/dist/indexer/search-fields.js +5 -9
  133. package/dist/indexer/search-hit-enrichers.js +111 -0
  134. package/dist/indexer/search-source.js +44 -10
  135. package/dist/indexer/semantic-status.js +6 -17
  136. package/dist/indexer/staleness-detect.js +447 -0
  137. package/dist/indexer/usage-events.js +12 -9
  138. package/dist/indexer/walker.js +28 -0
  139. package/dist/integrations/agent/builders.js +135 -0
  140. package/dist/integrations/agent/config.js +122 -230
  141. package/dist/integrations/agent/detect.js +3 -0
  142. package/dist/integrations/agent/index.js +7 -13
  143. package/dist/integrations/agent/model-aliases.js +55 -0
  144. package/dist/integrations/agent/profiles.js +70 -5
  145. package/dist/integrations/agent/prompts.js +250 -36
  146. package/dist/integrations/agent/runner.js +151 -0
  147. package/dist/integrations/agent/sdk-runner.js +126 -0
  148. package/dist/integrations/agent/spawn.js +183 -35
  149. package/dist/integrations/github.js +3 -0
  150. package/dist/integrations/lockfile.js +32 -69
  151. package/dist/integrations/session-logs/index.js +69 -0
  152. package/dist/integrations/session-logs/inline-refs.js +35 -0
  153. package/dist/integrations/session-logs/pre-filter.js +152 -0
  154. package/dist/integrations/session-logs/providers/claude-code.js +282 -0
  155. package/dist/integrations/session-logs/providers/opencode.js +258 -0
  156. package/dist/integrations/session-logs/types.js +4 -0
  157. package/dist/llm/call-ai.js +62 -0
  158. package/dist/llm/client.js +79 -88
  159. package/dist/llm/embedder.js +20 -29
  160. package/dist/llm/embedders/cache.js +3 -7
  161. package/dist/llm/embedders/local.js +42 -1
  162. package/dist/llm/embedders/remote.js +20 -8
  163. package/dist/llm/embedders/types.js +3 -7
  164. package/dist/llm/feature-gate.js +95 -48
  165. package/dist/llm/graph-extract.js +676 -72
  166. package/dist/llm/index-passes.js +44 -29
  167. package/dist/llm/memory-infer.js +80 -71
  168. package/dist/llm/metadata-enhance.js +42 -29
  169. package/dist/llm/prompts/extract-session.md +80 -0
  170. package/dist/llm/prompts/graph-extract-user-prompt.md +35 -0
  171. package/dist/output/cli-hints-full.md +292 -0
  172. package/dist/output/cli-hints-short.md +66 -0
  173. package/dist/output/cli-hints.js +7 -311
  174. package/dist/output/context.js +60 -8
  175. package/dist/output/renderers.js +306 -258
  176. package/dist/output/shapes/curate.js +56 -0
  177. package/dist/output/shapes/distill.js +10 -0
  178. package/dist/output/shapes/env-list.js +19 -0
  179. package/dist/output/shapes/events.js +11 -0
  180. package/dist/output/shapes/helpers.js +424 -0
  181. package/dist/output/shapes/history.js +7 -0
  182. package/dist/output/shapes/passthrough.js +102 -0
  183. package/dist/output/shapes/proposal-accept.js +7 -0
  184. package/dist/output/shapes/proposal-diff.js +7 -0
  185. package/dist/output/shapes/proposal-list.js +7 -0
  186. package/dist/output/shapes/proposal-producer.js +11 -0
  187. package/dist/output/shapes/proposal-reject.js +7 -0
  188. package/dist/output/shapes/proposal-show.js +7 -0
  189. package/dist/output/shapes/registry-search.js +6 -0
  190. package/dist/output/shapes/registry.js +30 -0
  191. package/dist/output/shapes/search.js +6 -0
  192. package/dist/output/shapes/secret-list.js +19 -0
  193. package/dist/output/shapes/show.js +6 -0
  194. package/dist/output/shapes/vault-list.js +19 -0
  195. package/dist/output/shapes.js +51 -511
  196. package/dist/output/text/add.js +6 -0
  197. package/dist/output/text/clone.js +6 -0
  198. package/dist/output/text/config.js +6 -0
  199. package/dist/output/text/curate.js +6 -0
  200. package/dist/output/text/distill.js +7 -0
  201. package/dist/output/text/enable-disable.js +7 -0
  202. package/dist/output/text/events.js +10 -0
  203. package/dist/output/text/feedback.js +6 -0
  204. package/dist/output/text/helpers.js +1039 -0
  205. package/dist/output/text/history.js +7 -0
  206. package/dist/output/text/import.js +6 -0
  207. package/dist/output/text/index.js +6 -0
  208. package/dist/output/text/info.js +6 -0
  209. package/dist/output/text/init.js +6 -0
  210. package/dist/output/text/list.js +6 -0
  211. package/dist/output/text/proposal-producer.js +8 -0
  212. package/dist/output/text/proposal.js +11 -0
  213. package/dist/output/text/registry-commands.js +11 -0
  214. package/dist/output/text/registry.js +30 -0
  215. package/dist/output/text/remember.js +6 -0
  216. package/dist/output/text/remove.js +6 -0
  217. package/dist/output/text/save.js +6 -0
  218. package/dist/output/text/search.js +6 -0
  219. package/dist/output/text/show.js +6 -0
  220. package/dist/output/text/update.js +6 -0
  221. package/dist/output/text/upgrade.js +6 -0
  222. package/dist/output/text/vault.js +16 -0
  223. package/dist/output/text/wiki.js +15 -0
  224. package/dist/output/text/workflow.js +14 -0
  225. package/dist/output/text.js +44 -1093
  226. package/dist/registry/build-index.js +3 -0
  227. package/dist/registry/create-provider-registry.js +3 -0
  228. package/dist/registry/factory.js +4 -1
  229. package/dist/registry/origin-resolve.js +3 -0
  230. package/dist/registry/providers/index.js +3 -0
  231. package/dist/registry/providers/skills-sh.js +71 -50
  232. package/dist/registry/providers/static-index.js +53 -48
  233. package/dist/registry/providers/types.js +3 -24
  234. package/dist/registry/resolve.js +11 -16
  235. package/dist/registry/types.js +3 -0
  236. package/dist/scripts/migrate-storage.js +17750 -0
  237. package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +9031 -0
  238. package/dist/scripts/migrations/v16-to-v17.js +141 -0
  239. package/dist/setup/detect.js +3 -0
  240. package/dist/setup/ripgrep-install.js +3 -0
  241. package/dist/setup/ripgrep-resolve.js +3 -0
  242. package/dist/setup/setup.js +775 -37
  243. package/dist/setup/steps.js +3 -15
  244. package/dist/sources/include.js +3 -0
  245. package/dist/sources/provider-factory.js +5 -12
  246. package/dist/sources/provider.js +3 -20
  247. package/dist/sources/providers/filesystem.js +19 -23
  248. package/dist/sources/providers/git.js +179 -20
  249. package/dist/sources/providers/index.js +3 -0
  250. package/dist/sources/providers/install-types.js +3 -13
  251. package/dist/sources/providers/npm.js +3 -4
  252. package/dist/sources/providers/provider-utils.js +3 -0
  253. package/dist/sources/providers/sync-from-ref.js +3 -11
  254. package/dist/sources/providers/tar-utils.js +3 -0
  255. package/dist/sources/providers/website.js +18 -22
  256. package/dist/sources/resolve.js +3 -0
  257. package/dist/sources/types.js +3 -0
  258. package/dist/sources/website-ingest.js +7 -0
  259. package/dist/tasks/backends/cron.js +203 -0
  260. package/dist/tasks/backends/exec-utils.js +28 -0
  261. package/dist/tasks/backends/index.js +24 -0
  262. package/dist/tasks/backends/launchd-template.xml +19 -0
  263. package/dist/tasks/backends/launchd.js +187 -0
  264. package/dist/tasks/backends/schtasks-template.xml +29 -0
  265. package/dist/tasks/backends/schtasks.js +215 -0
  266. package/dist/tasks/parser.js +211 -0
  267. package/dist/tasks/resolveAkmBin.js +87 -0
  268. package/dist/tasks/runner.js +458 -0
  269. package/dist/tasks/schedule.js +227 -0
  270. package/dist/tasks/schema.js +15 -0
  271. package/dist/tasks/validator.js +62 -0
  272. package/dist/version.js +3 -0
  273. package/dist/wiki/index-template.md +12 -0
  274. package/dist/wiki/ingest-workflow-template.md +54 -0
  275. package/dist/wiki/log-template.md +8 -0
  276. package/dist/wiki/schema-template.md +61 -0
  277. package/dist/wiki/wiki-templates.js +15 -0
  278. package/dist/wiki/wiki.js +13 -61
  279. package/dist/workflows/authoring.js +8 -25
  280. package/dist/workflows/cli.js +3 -0
  281. package/dist/workflows/db.js +141 -2
  282. package/dist/workflows/document-cache.js +3 -10
  283. package/dist/workflows/parser.js +3 -0
  284. package/dist/workflows/renderer.js +11 -3
  285. package/dist/workflows/runs.js +91 -89
  286. package/dist/workflows/schema.js +3 -0
  287. package/dist/workflows/scope-key.js +79 -0
  288. package/dist/workflows/validator.js +4 -8
  289. package/dist/workflows/workflow-template.md +24 -0
  290. package/docs/README.md +10 -2
  291. package/docs/data-and-telemetry.md +225 -0
  292. package/docs/migration/release-notes/0.7.0.md +1 -1
  293. package/docs/migration/release-notes/0.7.4.md +1 -1
  294. package/docs/migration/release-notes/0.7.5.md +20 -0
  295. package/docs/migration/release-notes/0.8.0.md +48 -0
  296. package/docs/migration/v0.7-to-v0.8.md +1307 -0
  297. package/package.json +29 -11
  298. package/dist/commands/install-audit.js +0 -381
  299. package/dist/commands/vault.js +0 -333
  300. package/dist/templates/wiki-templates.js +0 -100
@@ -0,0 +1,292 @@
1
+ # akm CLI — Full Reference
2
+
3
+ You have access to a searchable library of scripts, skills, commands, agents, knowledge documents, workflows, wikis, and memories via `akm`. Search your sources first before writing something from scratch.
4
+
5
+ ## Search
6
+
7
+ ```sh
8
+ akm search "<query>" # Search all sources
9
+ akm curate "<task>" # Curate the best matches for a task
10
+ akm search "<query>" --type workflow # Filter by asset type
11
+ akm search "<query>" --source both # Also search registries
12
+ akm search "<query>" --source registry # Search registries only
13
+ akm search "<query>" --limit 10 # Limit results
14
+ akm search "<query>" --detail full # Include scores, paths, timing
15
+ ```
16
+
17
+ | Flag | Values | Default |
18
+ | --- | --- | --- |
19
+ | `--type` | `skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `env`, `secret`, `wiki`, `any` | `any` |
20
+ | `--source` | `stash`, `registry`, `both` | `stash` |
21
+ | `--limit` | number | `20` |
22
+ | `--format` | `json`, `jsonl`, `text`, `yaml` | `json` |
23
+ | `--detail` | `brief`, `normal`, `full` | `brief` |
24
+ | `--shape` | `human`, `agent`, `summary` (`summary` only on `show`) | `human` |
25
+ | `--for-agent` | boolean (deprecated — use `--shape agent`) | `false` |
26
+
27
+ ## Curate
28
+
29
+ Combine search + follow-up hints into a dense summary for a task or prompt.
30
+
31
+ ```sh
32
+ akm curate "plan a release" # Pick top matches across asset types
33
+ akm curate "deploy a Bun app" --limit 3 # Keep the summary shorter
34
+ akm curate "review architecture" --type workflow # Restrict to one asset type
35
+ ```
36
+
37
+ ## Show
38
+
39
+ Display an asset by ref. Knowledge assets support view modes as positional arguments.
40
+
41
+ ```sh
42
+ akm show script:deploy.sh # Show script (returns run command)
43
+ akm show skill:code-review # Show skill (returns full content)
44
+ akm show command:release # Show command (returns template)
45
+ akm show agent:architect # Show agent (returns system prompt)
46
+ akm show workflow:ship-release # Show parsed workflow steps
47
+ akm show knowledge:guide toc # Table of contents
48
+ akm show knowledge:guide section "Auth" # Specific section
49
+ akm show knowledge:guide lines 10 30 # Line range
50
+ akm show knowledge:my-doc # Show content (local or remote)
51
+ ```
52
+
53
+ | Type | Key fields returned |
54
+ | --- | --- |
55
+ | script | `run`, `setup`, `cwd` |
56
+ | skill | `content` (full SKILL.md) |
57
+ | command | `template`, `description`, `parameters` |
58
+ | agent | `prompt`, `description`, `modelHint`, `toolPolicy` |
59
+ | knowledge | `content` (with view modes: `full`, `toc`, `frontmatter`, `section`, `lines`) |
60
+ | workflow | `workflowTitle`, `workflowParameters`, `steps` |
61
+ | memory | `content` (recalled context) |
62
+ | vault | `keys`, `comments` |
63
+ | wiki | `content` (same view modes as knowledge). For any wiki task, run `akm wiki list`. To ingest sources, `akm wiki ingest <name>` dispatches the configured agent (defaults.agent or `--profile`) to execute the ingest workflow. |
64
+
65
+ ## Capture Knowledge While You Work
66
+
67
+ ```sh
68
+ akm remember "Deployment needs VPN access" # Record a memory in your stash
69
+ akm remember --name release-retro < notes.md # Save multiline memory from stdin
70
+ akm remember "note" --target my-other-stash # Route write to a named writable stash source
71
+ akm import ./docs/auth-flow.md # Import a file as knowledge
72
+ akm import - --name scratch-notes < notes.md # Import stdin as a knowledge doc
73
+ akm import https://example.com/docs/auth # Fetch one URL and import it as knowledge
74
+ akm import ./doc.md --target my-other-stash # Route import to a named writable stash source
75
+ akm workflow create ship-release # Create a workflow asset in the stash
76
+ akm workflow validate workflows/foo.md # Validate a workflow file or ref; lists every error
77
+ akm workflow next workflow:ship-release # Start or resume the next workflow step
78
+ akm feedback skill:code-review --positive # Record that an asset helped
79
+ akm feedback agent:reviewer --negative # Record that an asset missed the mark
80
+ akm feedback memory:deployment-notes --positive # Works for memories too
81
+ akm feedback vault:prod --positive # Records vault feedback without surfacing values
82
+ ```
83
+
84
+ Use `akm feedback` whenever an asset materially helps or fails so future search
85
+ ranking can learn from actual usage.
86
+
87
+ ## Wikis
88
+
89
+ Multi-wiki knowledge bases (Karpathy-style). A stash-owned wiki lives at
90
+ `<stashDir>/wikis/<name>/`; external directories or repos can also be registered
91
+ as first-class wikis. akm owns lifecycle + raw-slug + lint + index regeneration
92
+ for stash-owned wikis; page edits use your native Read/Write/Edit tools.
93
+
94
+ ```sh
95
+ akm wiki list # List wikis (name, pages, raws, last-modified)
96
+ akm wiki create research # Scaffold a new wiki
97
+ akm wiki register ics-docs ~/code/ics-documentation # Register an external wiki
98
+ akm wiki show research # Path, description, counts, last 3 log entries
99
+ akm wiki pages research # Page refs + descriptions (excludes schema/index/log; includes raw/)
100
+ akm wiki search research "attention" # Scoped search (equivalent to --type wiki --wiki research)
101
+ akm wiki stash research ./paper.md # Copy source into raw/<slug>.md (never overwrites)
102
+ akm wiki stash research https://example.com/paper # Fetch one URL into raw/<slug>.md
103
+ akm wiki stash research ./paper.md --target my-stash # Route write to a named writable stash source
104
+ echo "..." | akm wiki stash research - # stdin form
105
+ akm wiki lint research # Structural checks: orphans, broken xrefs, uncited raws, stale index
106
+ akm wiki ingest research # Dispatch defaults.agent to run the ingest workflow on this wiki
107
+ akm wiki ingest research --profile claude --model sonnet # Override profile and model
108
+ akm wiki ingest research --timeout-ms 600000 # Override agent CLI timeout (default: profile setting)
109
+ akm wiki remove research -y # Delete pages/schema/index/log; preserves raw/ (--force is a deprecated alias for -y)
110
+ akm wiki remove research -y --with-sources # Full nuke, including raw/
111
+ ```
112
+
113
+ **For any wiki task, start with `akm wiki list`. Then `akm wiki ingest <name>`
114
+ dispatches the configured agent (defaults.agent or `--profile`) to execute
115
+ the wiki's ingest workflow end-to-end — schema read, source dedup, search,
116
+ page create/update, log entry, lint, reindex.** Wiki pages are also addressable as
117
+ `wiki:<name>/<page-path>` and show up in stash-wide `akm search` as
118
+ `type: wiki`. Files under `raw/` and the wiki root infrastructure files
119
+ `schema.md`, `index.md`, and `log.md` are not indexed and do not appear in
120
+ search results. No `--llm` anywhere — akm never reasons about page content.
121
+
122
+ ## Vaults
123
+
124
+ Encrypted-at-rest key/value stores for secrets. Each vault is a `.env`-format
125
+ file at `<stashDir>/vaults/<name>.env`.
126
+
127
+ ```sh
128
+ akm vault create prod # Create a new vault
129
+ akm vault set prod DB_URL postgres://... # Set a key (or KEY=VALUE combined form)
130
+ akm vault set prod DB_URL=postgres://... # Combined KEY=VALUE form also works
131
+ akm vault unset prod DB_URL # Remove a key
132
+ akm vault list # List all vaults across all stashes with key names
133
+ akm vault path vault:prod # Print the vault file path for shell loading
134
+ akm vault run vault:prod -- env # Run one command with all vault vars injected
135
+ akm vault run vault:prod/DB_URL -- printenv DB_URL # Inject one key for one command
136
+ ```
137
+
138
+ ## Workflows
139
+
140
+ Step-based workflows stored as `<stashDir>/workflows/<name>.md`.
141
+
142
+ Ref-based workflow commands are scoped to the current project/worktree/directory,
143
+ so one active run does not block unrelated directories from starting the same
144
+ workflow. Direct run-id commands still target the exact run.
145
+
146
+ ```sh
147
+ akm workflow template # Print a starter workflow template
148
+ akm workflow create ship-release # Scaffold a new workflow asset
149
+ akm workflow start workflow:ship-release # Start a new run in the current scope
150
+ akm workflow next workflow:ship-release # Advance to the next step (or auto-start) in the current scope
151
+ akm workflow complete <run-id> # Mark a step complete and advance
152
+ akm workflow status <run-id> # Show the exact run by id
153
+ akm workflow resume <run-id> # Resume a blocked or failed run
154
+ akm workflow list # List workflow runs in the current scope
155
+ ```
156
+
157
+ ## Clone
158
+
159
+ Copy an asset to the working stash or a custom destination for editing.
160
+
161
+ ```sh
162
+ akm clone <ref> # Clone to working stash
163
+ akm clone <ref> --name new-name # Rename on clone
164
+ akm clone <ref> --dest ./project/.claude # Clone to custom location
165
+ akm clone <ref> --force # Overwrite existing
166
+ akm clone "npm:@scope/pkg//script:deploy.sh" # Clone from remote package
167
+ ```
168
+
169
+ When `--dest` is provided, `akm init` is not required first.
170
+
171
+ ## Sync
172
+
173
+ Commit local changes in a git-backed stash. Behaviour adapts automatically.
174
+ (`akm save` is the deprecated 0.7 spelling — it still works but warns; removed
175
+ in 0.9.0.)
176
+
177
+ - **Not a git repo** — no-op (silent skip)
178
+ - **Git repo, no remote** — stage and commit only (the default stash always falls here)
179
+ - **Git repo, has remote, not writable** — stage and commit only
180
+ - **Git repo, has remote, `writable: true`** — stage, commit, and push
181
+ - **Any writable repo with `--no-push`** — stage and commit only
182
+
183
+ ```sh
184
+ akm sync # Sync primary stash (timestamp message)
185
+ akm sync -m "Add deploy skill" # Sync with explicit message
186
+ akm sync --no-push # Commit only; never push
187
+ akm sync my-skills # Sync a named writable git stash
188
+ akm sync my-skills -m "Update patterns" # Sync named stash with message
189
+ ```
190
+
191
+ The `--writable` flag on `akm add` opts a remote git stash into push-on-sync:
192
+
193
+ ```sh
194
+ akm add git@github.com:org/skills.git --provider git --name my-skills --writable
195
+ ```
196
+
197
+ ## Add & Manage Sources
198
+
199
+ ```sh
200
+ akm add <ref> # Add a source
201
+ akm add @scope/stash # From npm (managed)
202
+ akm add owner/repo # From GitHub (managed)
203
+ akm add ./path/to/local/stash # Local directory
204
+ akm add git@github.com:org/repo.git --provider git --name my-skills --writable
205
+ akm config enable skills.sh # Enable the skills.sh registry
206
+ akm config disable skills.sh # Disable the skills.sh registry
207
+ akm list # List all sources
208
+ akm list --kind managed # List managed sources only
209
+ akm remove <target> # Remove by id, ref, path, or name
210
+ akm update --all # Update all managed sources
211
+ akm update <target> --force # Force re-download
212
+ ```
213
+
214
+ ## Registries
215
+
216
+ ```sh
217
+ akm registry list # List configured registries
218
+ akm registry add <url> # Add a registry
219
+ akm registry add <url> --name my-team # Add with label
220
+ akm registry add <url> --provider skills-sh # Specify provider type
221
+ akm registry remove <url-or-name> # Remove a registry
222
+ akm registry search "<query>" # Search all registries
223
+ akm registry search "<query>" --assets # Include asset-level results
224
+ akm registry build-index # Build the default cache-backed index.json
225
+ akm registry build-index --out dist/index.json # Build to a custom path
226
+ ```
227
+
228
+ ## Configuration
229
+
230
+ ```sh
231
+ akm config list # Show current config
232
+ akm config get <key> # Read a value
233
+ akm config set <key> <value> # Set a value
234
+ akm config unset <key> # Remove a key
235
+ akm config path --all # Show all config paths
236
+ ```
237
+
238
+ ## Other Commands
239
+
240
+ ```sh
241
+ akm init # Initialize working stash
242
+ akm index # Rebuild search index (metadata enrichment when configured)
243
+ akm index --full # Full reindex (metadata enrichment when configured)
244
+ akm list # List all sources
245
+ akm upgrade # Upgrade akm using its install method
246
+ akm upgrade --check # Check for updates
247
+ akm help migrate 0.6.0 # Print migration notes for a release (or: latest)
248
+ akm hints # Print this reference
249
+ akm completions # Print bash completion script
250
+ akm completions --install # Install completions
251
+ ```
252
+
253
+ ## Proposals & Improvement (0.8.0+)
254
+
255
+ ```sh
256
+ akm improve <ref> # Propose improvement for an asset
257
+ akm proposal list # List pending proposals
258
+ akm proposal show <id> # Render the proposal body
259
+ akm proposal diff <ref-or-id> # Diff by ref, UUID, or 8-char prefix
260
+ akm proposal diff skill:akm-dream # Diff by asset ref
261
+ akm proposal accept 7c115132 # Accept by UUID prefix
262
+ akm proposal accept <id> --target team-stash # Accept to a named writable stash source
263
+ akm proposal reject skill:my-skill --reason "not ready" # Reject by asset ref
264
+ akm proposal reject <id> --reason "..." # Archive with a reason
265
+ akm proposal revert <id> # Restore the pre-promotion content
266
+ ```
267
+
268
+ The flat verbs `akm proposals` / `akm show proposal` / `akm accept` /
269
+ `akm reject` / `akm diff` / `akm revert` still work as deprecated aliases
270
+ (warn on stderr; removed in 0.9.0).
271
+
272
+ Per-task `timeoutMs`: task markdown frontmatter may set `timeoutMs: null` to
273
+ disable the agent kill timer for long-running local-model tasks, or a number
274
+ (milliseconds) to override `config.agent.timeoutMs` for that task only.
275
+
276
+ ## Output Control
277
+
278
+ All commands accept `--format`, `--detail`, and `--shape` flags:
279
+
280
+ - `--format json` (default) — structured JSON
281
+ - `--format jsonl` — one JSON object per line (streaming-friendly)
282
+ - `--format text` — human-readable plain text
283
+ - `--format yaml` — YAML output
284
+ - `--detail brief` (default) — compact output
285
+ - `--detail normal` — adds tags, refs, origins
286
+ - `--detail full` — includes scores, paths, timing, debug info
287
+ - `--shape human` (default) — standard projection
288
+ - `--shape agent` — agent-optimized output: strips non-actionable fields
289
+ - `--shape summary` — metadata only (no content/template/prompt), under 200 tokens; only valid on `akm show`
290
+ - `--for-agent` — deprecated alias for `--shape agent` (removed 0.9.0)
291
+
292
+ Run `akm -h` or `akm <command> -h` for per-command help.
@@ -0,0 +1,66 @@
1
+ # akm CLI
2
+
3
+ You have access to a searchable library of scripts, skills, commands, agents, knowledge documents, workflows, wikis, and memories via `akm`. Search your sources first before writing something from scratch.
4
+
5
+ ## Agent Task Loop
6
+
7
+ For any task, follow this loop:
8
+ 1. `akm curate "<task>"` — find the best matching asset
9
+ 2. `akm show <ref>` — read the schema (field names and structure)
10
+ 3. Edit the workspace file using schema field names + task-specific values from your README
11
+ 4. `akm feedback <ref> --positive` — record success
12
+
13
+ For workflow tasks:
14
+ 1. `akm workflow next workflow:<name>` — get current step instructions
15
+ 2. Do the step work in your workspace
16
+ 3. `akm workflow complete <run-id> --step <step-id>` — mark done, get next step
17
+
18
+ Workflow runs are scoped to your current project/worktree/directory. Ref-based
19
+ commands like `workflow next workflow:<name>`, `workflow status workflow:<name>`,
20
+ and `workflow list` operate within the current scope only.
21
+
22
+ ## Quick Reference
23
+
24
+ ```sh
25
+ akm search "<query>" # Search all sources
26
+ akm curate "<task>" # Curate the best matches for a task
27
+ akm search "<query>" --type workflow # Filter to workflow assets
28
+ akm search "<query>" --source both # Also search registries
29
+ akm show <ref> # View asset details
30
+ akm workflow next <ref> # Start or resume a workflow
31
+ akm remember "Deployment needs VPN access" # Record a memory in your stash
32
+ akm remember "note" --target my-stash # Route write to a named writable stash source
33
+ akm import ./notes/release-checklist.md # Import a knowledge doc into your stash
34
+ akm import ./doc.md --target my-stash # Route import to a named writable stash source
35
+ akm wiki list # List available wikis
36
+ akm wiki ingest <name> # Dispatch an agent to run the ingest workflow (uses defaults.agent or --profile)
37
+ akm wiki stash <name> ./paper.md --target my-stash # Route wiki stash write to a named source
38
+ akm proposal diff skill:akm-dream # Diff proposal by ref, UUID, or 8-char prefix
39
+ akm proposal accept 7c115132 # Accept by UUID prefix
40
+ akm proposal reject skill:my-skill --reason "..." # Reject by ref
41
+ akm feedback <ref> --positive|--negative # Record whether an asset helped
42
+ akm add <ref> # Add a source (npm, GitHub, git, local dir)
43
+ akm clone <ref> # Copy an asset to the working stash (optional --dest arg to clone to specific location)
44
+ akm sync # Commit (and push if writable remote) changes in the primary stash (--no-push to skip push)
45
+ akm registry search "<query>" # Search all registries
46
+ ```
47
+
48
+ ## Primary Asset Types
49
+
50
+ | Type | What `akm show` returns |
51
+ | --- | --- |
52
+ | script | A `run` command you can execute directly |
53
+ | skill | Instructions to follow (read the full content) |
54
+ | command | A prompt template with placeholders to fill in |
55
+ | agent | A system prompt with model and tool hints |
56
+ | knowledge | A reference doc (use `toc` or `section "..."` to navigate) |
57
+ | workflow | Parsed steps plus workflow-specific execution commands |
58
+ | memory | Recalled context (read the content for background information) |
59
+ | env | A `.env` file of related CONFIGURATION (many vars; sensitive or not — all protected); key names only. Inject with `akm env run <ref> -- <cmd>` (the agent-safe path — values stay on disk). `vault` is the deprecated alias. |
60
+ | secret | A single sensitive value for AUTHENTICATION (token, key, cert); name only. Use `akm secret path` / `akm secret run`. |
61
+ | wiki | A page in a multi-wiki knowledge base. For any wiki task, start with `akm wiki list`. To ingest sources, run `akm wiki ingest <name>` — it dispatches the configured agent profile to execute the ingest workflow against the wiki's `raw/` directory. Run `akm wiki -h` for the full surface. |
62
+
63
+ When an asset meaningfully helps or fails, record that with `akm feedback` so
64
+ future search ranking can learn from real usage.
65
+
66
+ Run `akm -h` for the full command reference.