@tekmidian/pai 1.0.5 → 1.0.6

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 (239) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/{aibroker-client-CQPGqLxL.mjs → aibroker-client-CXsyC7A8.mjs} +2 -2
  3. package/dist/aibroker-client-ChB7gSxV.mjs +3 -0
  4. package/dist/auto-route-Bc8xP6TQ.mjs +11 -0
  5. package/dist/{auto-route-DUYr57rs.mjs → auto-route-YaEGVrFl.mjs} +2 -2
  6. package/dist/budget-DEiebT2A.mjs +15 -0
  7. package/dist/{caller-identity-Bim8JT-D.mjs → caller-identity-C6Nc96iM.mjs} +4 -4
  8. package/dist/{capacity-CsZMkVyg.mjs → capacity-B2PgKAg4.mjs} +65 -5
  9. package/dist/{chain-Dzz6xcKH.mjs → chain-CtK49-Ma.mjs} +5 -5
  10. package/dist/cli/index.mjs +2102 -282
  11. package/dist/{cockpit-actions-BgsiNcUY.mjs → cockpit-actions-C73mJAJ8.mjs} +18 -18
  12. package/dist/{cockpit-actions-BTA1njMO.mjs → cockpit-actions-D1OPP6Es.mjs} +26 -26
  13. package/dist/cockpit-memory-CLHZD64W.mjs +20 -0
  14. package/dist/config/defaults/config.yaml +18 -1
  15. package/dist/{config-CST2uq1v.mjs → config-Bz8pAU5Q.mjs} +3 -3
  16. package/dist/{config-Dv3t7xnT.mjs → config-DHgPx3ER.mjs} +1 -1
  17. package/dist/{config-h5qK3fst.mjs → config-DLmyEK2q.mjs} +2 -2
  18. package/dist/{config-DYbyEe4-.mjs → config-SlZ-Z52i.mjs} +3 -2
  19. package/dist/{controls-OiVVbe-f.mjs → controls-rIItFeIJ.mjs} +59 -66
  20. package/dist/daemon/index.mjs +40 -40
  21. package/dist/daemon-176qA79N.mjs +46 -0
  22. package/dist/{daemon-C1dycZ3W.mjs → daemon-SoUvPUOf.mjs} +79 -31
  23. package/dist/daemon-mcp/index.mjs +49 -38
  24. package/dist/detect-C8nFP-kR.mjs +10 -0
  25. package/dist/{detect-CHuxFrLy.mjs → detect-DLjeYwnt.mjs} +2 -2
  26. package/dist/{embed-pass-DtVF2fOV.mjs → embed-pass-CN1D8MXl.mjs} +5 -5
  27. package/dist/{embedding-gate-B98PK_wz.mjs → embedding-gate-BVQvUmox.mjs} +2 -2
  28. package/dist/{embedding-gate-CTAk8STe.mjs → embedding-gate-iq0oQEkF.mjs} +3 -3
  29. package/dist/{endreason-BqyyU7BH.mjs → endreason-C2-hYK0_.mjs} +4 -4
  30. package/dist/{factory-BV0MQA3T.mjs → factory-CYwa0jYj.mjs} +6 -6
  31. package/dist/factory-DFwez99M.mjs +9 -0
  32. package/dist/{fallback-Bj2cyVk_.mjs → fallback-CwPSCrX8.mjs} +9 -231
  33. package/dist/{health-kufVIf6i.mjs → health-D0mUAVdw.mjs} +5 -5
  34. package/dist/{helpers-CvbYEKoD.mjs → helpers-Dj2nY56t.mjs} +2 -2
  35. package/dist/{helpers-WV8tdQHM.mjs → helpers-DyHKAwrW.mjs} +6 -6
  36. package/dist/hooks/capture-all-events.mjs +68 -3
  37. package/dist/hooks/capture-tool-output.mjs +68 -3
  38. package/dist/hooks/handoff-link.mjs +128 -0
  39. package/dist/hooks/load-project-context.mjs +1 -1
  40. package/dist/hooks/security-validator.mjs +840 -88
  41. package/dist/hooks/supervision-banner.mjs +186 -48
  42. package/dist/hooks/worker-guard.mjs +57 -1
  43. package/dist/hooks/worker-note.mjs +68 -3
  44. package/dist/hooks/worker-pool-host.mjs +1417 -224
  45. package/dist/hooks/worker-status-line.mjs +209 -70
  46. package/dist/index.mjs +9 -9
  47. package/dist/{ipc-client-CnYEF31R.mjs → ipc-client-CmagIFLh.mjs} +2 -2
  48. package/dist/{ipc-client-DN7EvoVo.mjs → ipc-client-DmbSIBUK.mjs} +1 -1
  49. package/dist/{kill-tree-CcpsRLCZ.mjs → kill-tree-DPiMscaY.mjs} +8 -8
  50. package/dist/kill-tree-Dxei6qlR.mjs +10 -0
  51. package/dist/{launch-UPQBoW2q.mjs → launch-BZT3JDoZ.mjs} +3 -3
  52. package/dist/{launch-DpQPZGsT.mjs → launch-Bn2Zf90h.mjs} +3 -3
  53. package/dist/{indexer-backend-B2vtFl38.mjs → lessons-CFVU0cwA.mjs} +262 -43
  54. package/dist/{local-candidate-Cp_bw4kK.mjs → local-candidate-DFd4pp-w.mjs} +3 -3
  55. package/dist/{local-instances-bdCNNSsL.mjs → local-instances-DhF4_sV2.mjs} +2 -2
  56. package/dist/{local-instances-B-c-CxzP.mjs → local-instances-KTh8IeOT.mjs} +4 -4
  57. package/dist/{local-tiers-BtdEEe5n.mjs → local-tiers-CqwGUcEn.mjs} +3 -3
  58. package/dist/{local-tiers-OBqAAfOg.mjs → local-tiers-DSlIYvvm.mjs} +3 -3
  59. package/dist/{main-config-ops-BYsK3BxM.mjs → main-config-ops-rda08BCD.mjs} +3 -3
  60. package/dist/{main-resolver-CAC3xfZM.mjs → main-resolver-BKwI0I6H.mjs} +18 -18
  61. package/dist/{migrate-DrA_OwlZ.mjs → migrate-C2z1YmWC.mjs} +2 -2
  62. package/dist/{model-inventory-BuTpi9a6.mjs → model-inventory-BXv15B0d.mjs} +13 -13
  63. package/dist/{models-add-CJx2YAwh.mjs → models-add-5yXTyz3g.mjs} +38 -38
  64. package/dist/operator-Bmv5tiHQ.mjs +7 -0
  65. package/dist/{operator-DrwWItVt.mjs → operator-Br6GeswF.mjs} +2 -2
  66. package/dist/{pai-marker-DLKJ9Yr5.mjs → pai-marker-D6OoVbM_.mjs} +2 -2
  67. package/dist/{pane-audit-wv9UkyCe.mjs → pane-audit-DLYy9-4g.mjs} +13 -23
  68. package/dist/{paths-DS5VQKoR.mjs → paths-CypxFTfn.mjs} +4 -4
  69. package/dist/{paths-DBd78I7Z.mjs → paths-DIOwNcj-.mjs} +3 -3
  70. package/dist/{planner-K0mFrCpL.mjs → planner-BzZ_2lc-.mjs} +29 -29
  71. package/dist/{pool-BZ94nFuq.mjs → pool-9EsbKD-U.mjs} +2 -2
  72. package/dist/{pool-cli-BjYQDfx6.mjs → pool-cli-Cy5mlycP.mjs} +6 -6
  73. package/dist/{pool-cli-B1eKySeN.mjs → pool-cli-Db0uDwB9.mjs} +5 -5
  74. package/dist/{postgres-CBHY5PIi.mjs → postgres-B1B80bcj.mjs} +3 -3
  75. package/dist/{postgres-C-T5OWer.mjs → postgres-BL5oBBgY.mjs} +3 -3
  76. package/dist/{project-setup-pIPHZaXf.mjs → project-setup-DHxdJjEc.mjs} +24 -25
  77. package/dist/providers-BH6hQYbU.mjs +16 -0
  78. package/dist/{providers-Dzx5GAUI.mjs → providers-BNV7CzC-.mjs} +6 -6
  79. package/dist/{query-feedback-DN52N9C5.mjs → query-feedback-BWl2HRwN.mjs} +2 -2
  80. package/dist/registrable-BwFiqazy.mjs +9 -0
  81. package/dist/{registrable-CXBBpUcz.mjs → registrable-Dxs4oKIj.mjs} +4 -4
  82. package/dist/render-DVGXpfaT.mjs +13 -0
  83. package/dist/render-jPpMrudf.mjs +2240 -0
  84. package/dist/root-C8cxhdn9.mjs +36 -0
  85. package/dist/{root-bG48WVpW.mjs → root-DmOzMeSv.mjs} +10 -10
  86. package/dist/route-table-COAmc1nB.mjs +15 -0
  87. package/dist/{router-CQSc3lk3.mjs → router-D2476pOp.mjs} +2 -2
  88. package/dist/{router-DwHJRgG9.mjs → router-ghujlEFb.mjs} +1 -1
  89. package/dist/{routing-D27jxj9x.mjs → routing-B_cg1_Xx.mjs} +13 -13
  90. package/dist/{routing-BlD_tKjW.mjs → routing-aJKMIagQ.mjs} +15 -15
  91. package/dist/{run-AZVwceiU.mjs → run-DE9Q0ldN.mjs} +47 -31
  92. package/dist/{runtime-paths-WsO9sJFc.mjs → runtime-paths-twfV23YL.mjs} +2 -2
  93. package/dist/{scan-C3uotg_f.mjs → scan-CNMcltOX.mjs} +7 -7
  94. package/dist/{scope-D8HK6vU7.mjs → scope-BTWstJ1B.mjs} +4 -4
  95. package/dist/session-DgZifjLx.mjs +35 -0
  96. package/dist/{session-BAfypQb9.mjs → session-HBYOABWU.mjs} +28 -28
  97. package/dist/session-scan-BZxnYN1v.mjs +9 -0
  98. package/dist/{session-scan-BmnjSReu.mjs → session-scan-CX3MKCNg.mjs} +6 -6
  99. package/dist/{session-usage-oycSdiD3.mjs → session-usage-CCmPFFa6.mjs} +3 -3
  100. package/dist/{status-COtzewKV.mjs → status-Cecau8Ps.mjs} +9 -5
  101. package/dist/status-D52xC_i0.mjs +6 -0
  102. package/dist/{tool-errors-DXJ70-sr.mjs → tool-errors-BFw1gv-z.mjs} +2 -2
  103. package/dist/{tool-errors-B2LnIqR0.mjs → tool-errors-COM2JGEr.mjs} +6 -6
  104. package/dist/viewer-Ce-Xa9L3.mjs +22 -0
  105. package/dist/{viewer-BgGRqXfD.mjs → viewer-DvBg6N22.mjs} +16 -14
  106. package/dist/{wait-ChpHKJZV.mjs → wait-C5iWILj_.mjs} +3 -3
  107. package/dist/worker-config-BmcJ9R0U.mjs +42 -0
  108. package/dist/{worker-config-DgdT0iTB.mjs → worker-config-DkONNk_H.mjs} +54 -103
  109. package/dist/{workers-config-BhZBrR-Q.mjs → workers-config-DwzrtdYu.mjs} +2 -2
  110. package/dist/{worktree-BY--Rgmy.mjs → worktree-O_kU6Q3y.mjs} +164 -8
  111. package/dist/{zettelkasten-BHVx5zj-.mjs → zettelkasten-BH8AdNh8.mjs} +4 -4
  112. package/dist/{zettelkasten-LoH9RBiN.mjs → zettelkasten-FFhQFESJ.mjs} +2 -2
  113. package/docs/commands/README.md +32 -2
  114. package/docs/commands/audit.md +34 -3
  115. package/docs/commands/backup.md +1 -1
  116. package/docs/commands/build.md +4 -4
  117. package/docs/commands/cd.md +1 -1
  118. package/docs/commands/clear-names.md +1 -1
  119. package/docs/commands/cockpit.md +1 -1
  120. package/docs/commands/config.md +1 -1
  121. package/docs/commands/daemon.md +1 -1
  122. package/docs/commands/db.md +1 -1
  123. package/docs/commands/doc.md +1 -1
  124. package/docs/commands/end.md +1 -1
  125. package/docs/commands/find.md +1 -1
  126. package/docs/commands/git.md +110 -0
  127. package/docs/commands/handoff.md +70 -0
  128. package/docs/commands/harness.md +74 -0
  129. package/docs/commands/help.md +1 -1
  130. package/docs/commands/home.md +1 -1
  131. package/docs/commands/hooks-db.md +1 -1
  132. package/docs/commands/identity.md +1 -1
  133. package/docs/commands/install.md +1 -1
  134. package/docs/commands/issue.md +1 -1
  135. package/docs/commands/kg.md +1 -1
  136. package/docs/commands/launch.md +1 -1
  137. package/docs/commands/lessons.md +201 -0
  138. package/docs/commands/list.md +1 -1
  139. package/docs/commands/ls.md +1 -1
  140. package/docs/commands/mcp.md +1 -1
  141. package/docs/commands/memory.md +1 -1
  142. package/docs/commands/models.md +1 -1
  143. package/docs/commands/more.md +1 -1
  144. package/docs/commands/new.md +1 -1
  145. package/docs/commands/notes.md +1 -1
  146. package/docs/commands/notify.md +1 -1
  147. package/docs/commands/observation.md +1 -1
  148. package/docs/commands/obsidian.md +1 -1
  149. package/docs/commands/open.md +1 -1
  150. package/docs/commands/pane.md +1 -1
  151. package/docs/commands/pause.md +1 -1
  152. package/docs/commands/plan.md +1 -1
  153. package/docs/commands/project.md +1 -1
  154. package/docs/commands/projects.md +1 -1
  155. package/docs/commands/providers.md +1 -1
  156. package/docs/commands/queue.md +1 -1
  157. package/docs/commands/registry.md +1 -1
  158. package/docs/commands/reload.md +1 -1
  159. package/docs/commands/rename.md +1 -1
  160. package/docs/commands/restore.md +1 -1
  161. package/docs/commands/resume.md +1 -1
  162. package/docs/commands/router.md +1 -1
  163. package/docs/commands/rules.md +70 -0
  164. package/docs/commands/session.md +1 -1
  165. package/docs/commands/sessions.md +1 -1
  166. package/docs/commands/setup.md +1 -1
  167. package/docs/commands/setups.md +1 -1
  168. package/docs/commands/shell-init.md +1 -1
  169. package/docs/commands/skill.md +1 -1
  170. package/docs/commands/task.md +1 -1
  171. package/docs/commands/tasks.md +1 -1
  172. package/docs/commands/topic.md +1 -1
  173. package/docs/commands/update.md +1 -1
  174. package/docs/commands/worker.md +1 -1
  175. package/docs/commands/zettel.md +1 -1
  176. package/docs/concepts/panes.md +3 -2
  177. package/gemini-extension.json +1 -1
  178. package/package.json +2 -2
  179. package/pai-plugin.json +1 -1
  180. package/plugins/context-preservation/plugin.json +1 -1
  181. package/plugins/core/plugin.json +1 -1
  182. package/plugins/creative/plugin.json +1 -1
  183. package/plugins/observability/plugin.json +1 -1
  184. package/plugins/productivity/plugin.json +1 -1
  185. package/plugins/semantic-search/plugin.json +1 -1
  186. package/plugins/ui/plugin.json +1 -1
  187. package/plugins/zettelkasten/plugin.json +1 -1
  188. package/src/hooks/ts/lib/loop-guard.ts +3 -5
  189. package/src/hooks/ts/lib/rules/builtin/base64-decode-to-shell.rule.yaml +13 -0
  190. package/src/hooks/ts/lib/rules/builtin/chmod-world-writable.rule.yaml +13 -0
  191. package/src/hooks/ts/lib/rules/builtin/chmod-zero.rule.yaml +11 -0
  192. package/src/hooks/ts/lib/rules/builtin/credential-file-read.rule.yaml +13 -0
  193. package/src/hooks/ts/lib/rules/builtin/credential-read-then-network.rule.yaml +29 -0
  194. package/src/hooks/ts/lib/rules/builtin/crontab-persistence.rule.yaml +10 -0
  195. package/src/hooks/ts/lib/rules/builtin/curl-piped-to-shell.rule.yaml +15 -0
  196. package/src/hooks/ts/lib/rules/builtin/download-then-execute.rule.yaml +30 -0
  197. package/src/hooks/ts/lib/rules/builtin/find-root-delete.rule.yaml +11 -0
  198. package/src/hooks/ts/lib/rules/builtin/git-push-force.rule.yaml +24 -0
  199. package/src/hooks/ts/lib/rules/builtin/git-push-plus-refspec.rule.yaml +12 -0
  200. package/src/hooks/ts/lib/rules/builtin/git-reset-hard.rule.yaml +12 -0
  201. package/src/hooks/ts/lib/rules/builtin/injection-then-tool.rule.yaml +30 -0
  202. package/src/hooks/ts/lib/rules/builtin/instruction-override-disregard.rule.yaml +12 -0
  203. package/src/hooks/ts/lib/rules/builtin/instruction-override-ignore.rule.yaml +13 -0
  204. package/src/hooks/ts/lib/rules/builtin/launchagents-write-persistence.rule.yaml +12 -0
  205. package/src/hooks/ts/lib/rules/builtin/launchctl-load-persistence.rule.yaml +10 -0
  206. package/src/hooks/ts/lib/rules/builtin/reverse-shell-dev-tcp.rule.yaml +11 -0
  207. package/src/hooks/ts/lib/rules/builtin/reverse-shell-interactive-bash.rule.yaml +11 -0
  208. package/src/hooks/ts/lib/rules/builtin/rm-recursive-parent.rule.yaml +11 -0
  209. package/src/hooks/ts/lib/rules/builtin/rm-recursive-relative.rule.yaml +11 -0
  210. package/src/hooks/ts/lib/rules/builtin/rm-recursive-root.rule.yaml +24 -0
  211. package/src/hooks/ts/lib/rules/builtin/rm-trailing-tilde.rule.yaml +11 -0
  212. package/src/hooks/ts/lib/rules/builtin/sudoers-nopasswd.rule.yaml +15 -0
  213. package/src/hooks/ts/lib/rules/builtin.generated.ts +530 -0
  214. package/src/hooks/ts/lib/rules/eval.ts +74 -0
  215. package/src/hooks/ts/lib/rules/lint.ts +102 -0
  216. package/src/hooks/ts/lib/rules/load.ts +229 -0
  217. package/src/hooks/ts/lib/rules/types.ts +56 -0
  218. package/src/hooks/ts/pre-tool-use/security-validator.ts +27 -96
  219. package/src/hooks/ts/user-prompt/handoff-link.ts +34 -0
  220. package/dist/aibroker-client-BxzeEHPF.mjs +0 -3
  221. package/dist/auto-route-DWYK_0i0.mjs +0 -11
  222. package/dist/budget-DX-VIWGf.mjs +0 -15
  223. package/dist/cockpit-memory-DIrNs4xr.mjs +0 -20
  224. package/dist/daemon-ieo0lnpq.mjs +0 -46
  225. package/dist/detect-C0ZBXqDL.mjs +0 -10
  226. package/dist/factory-DeASMV7Z.mjs +0 -9
  227. package/dist/kill-tree-CXZ0WfVf.mjs +0 -10
  228. package/dist/operator-Bpxq_WB5.mjs +0 -7
  229. package/dist/providers-QJzpaNhX.mjs +0 -16
  230. package/dist/registrable-Drn8wIDO.mjs +0 -9
  231. package/dist/render-C4KR8qQ8.mjs +0 -13
  232. package/dist/render-Cz3BWIBO.mjs +0 -903
  233. package/dist/root-Bfb1zgwE.mjs +0 -36
  234. package/dist/route-table-ZVMNBsy7.mjs +0 -15
  235. package/dist/session-BcnhepLZ.mjs +0 -35
  236. package/dist/session-scan-CqUQdCac.mjs +0 -9
  237. package/dist/status-D_SWmOlH.mjs +0 -6
  238. package/dist/viewer-CbGN2Ri4.mjs +0 -22
  239. package/dist/worker-config-D1KVAMp4.mjs +0 -42
@@ -0,0 +1,110 @@
1
+ <!-- GENERATED by `pai doc --dir` from the command definitions (src/cli). Do not edit by hand. -->
2
+
3
+ # pai git
4
+
5
+ Link commits to the session that wrote them
6
+
7
+ ```
8
+ pai git <command>
9
+ ```
10
+
11
+ Installs a post-commit hook that records the session and worker that edited a commit's files as a git note (ref pai).
12
+
13
+ ```sh
14
+ pai git setup
15
+ pai git notes
16
+ pai git remove
17
+ ```
18
+
19
+ See also: `pai worker ps`
20
+
21
+ ### pai git setup
22
+
23
+ Install the post-commit hook in the current repository
24
+
25
+ ```
26
+ pai git setup
27
+ ```
28
+
29
+ Writes .git/hooks/post-commit, keeping an existing hook as post-commit.pre-pai and calling it first, and sets notes.rewriteRef so notes follow amends and rebases.
30
+
31
+ ```sh
32
+ pai git setup
33
+ ```
34
+
35
+ ### pai git remove
36
+
37
+ Remove the hook and restore the previous one
38
+
39
+ ```
40
+ pai git remove
41
+ ```
42
+
43
+ Deletes the PAI post-commit hook, puts a chained hook back and unsets notes.rewriteRef.
44
+
45
+ ```sh
46
+ pai git remove
47
+ ```
48
+
49
+ ### pai git notes
50
+
51
+ Show the PAI note of a commit
52
+
53
+ ```
54
+ pai git notes [REV]
55
+ ```
56
+
57
+ Prints the session and worker recorded for a commit (default HEAD), or 'no PAI note'.
58
+
59
+ | Argument | Required | Description |
60
+ |---|---|---|
61
+ | `REV` | no | Commit to show (default HEAD) |
62
+
63
+ ```sh
64
+ pai git notes
65
+ pai git notes HEAD~1
66
+ ```
67
+
68
+ ### pai git hook
69
+
70
+ Git hook entry points (called by git)
71
+
72
+ ```
73
+ pai git hook <command>
74
+ ```
75
+
76
+ Internal: `pai git hook post-commit` is what the installed hook runs. Always exits 0.
77
+
78
+ ```sh
79
+ pai git hook post-commit
80
+ ```
81
+
82
+ #### pai git hook post-commit
83
+
84
+ Record the sessions that edited the last commit's files
85
+
86
+ ```
87
+ pai git hook post-commit
88
+ ```
89
+
90
+ Skips during rebase and cherry-pick; looks back 6 hours in the raw captures. Always exits 0.
91
+
92
+ ```sh
93
+ pai git hook post-commit
94
+ ```
95
+
96
+ ## Subcommands
97
+
98
+ | Command | Description |
99
+ |---|---|
100
+ | `pai git setup` | Install the post-commit hook in the current repository |
101
+ | `pai git remove` | Remove the hook and restore the previous one |
102
+ | `pai git notes` | Show the PAI note of a commit |
103
+ | `pai git hook` | Git hook entry points (called by git) |
104
+
105
+ ## See also
106
+
107
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
108
+
109
+ Run `pai help <command>` to read any of these in the terminal.
110
+
@@ -0,0 +1,70 @@
1
+ <!-- GENERATED by `pai doc --dir` from the command definitions (src/cli). Do not edit by hand. -->
2
+
3
+ # pai handoff
4
+
5
+ Carry a session's work to a new one
6
+
7
+ ```
8
+ pai handoff <command>
9
+ ```
10
+
11
+ Exports a session transcript as a short, redacted Markdown brief (requests, files changed, recent commands, where it stopped) and prints the line to continue with. The brief never goes on the command line — only its path does. A `[pai-handoff from=<id>]` marker in the next session's first prompt is recorded in the handoff link log.
12
+
13
+ ```sh
14
+ pai handoff export
15
+ pai handoff export 2026-10-22-session-id
16
+ pai handoff show ~/.pai/handoffs/abc-20261022-1430.md
17
+ ```
18
+
19
+ See also: `pai audit tokens session`
20
+
21
+ ### pai handoff export
22
+
23
+ Write the brief for a session (default: newest here)
24
+
25
+ ```
26
+ pai handoff export [SESSION]
27
+ ```
28
+
29
+ Prints the brief's path and the one-line continue hint. Secrets in the transcript are replaced with [REDACTED]; the brief is bounded to 48 KB.
30
+
31
+ | Argument | Required | Description |
32
+ |---|---|---|
33
+ | `SESSION` | no | Session id or transcript path (default: newest transcript of the current directory) |
34
+
35
+ ```sh
36
+ pai handoff export
37
+ pai handoff export 2026-10-22-session-id
38
+ ```
39
+
40
+ ### pai handoff show
41
+
42
+ Print a handoff brief
43
+
44
+ ```
45
+ pai handoff show PATH
46
+ ```
47
+
48
+ Prints a brief written by `pai handoff export`.
49
+
50
+ | Argument | Required | Description |
51
+ |---|---|---|
52
+ | `PATH` | yes | Brief file |
53
+
54
+ ```sh
55
+ pai handoff show ~/.pai/handoffs/abc-20261022-1430.md
56
+ ```
57
+
58
+ ## Subcommands
59
+
60
+ | Command | Description |
61
+ |---|---|
62
+ | `pai handoff export` | Write the brief for a session (default: newest here) |
63
+ | `pai handoff show` | Print a handoff brief |
64
+
65
+ ## See also
66
+
67
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
68
+
69
+ Run `pai help <command>` to read any of these in the terminal.
70
+
@@ -0,0 +1,74 @@
1
+ <!-- GENERATED by `pai doc --dir` from the command definitions (src/cli). Do not edit by hand. -->
2
+
3
+ # pai harness
4
+
5
+ Sessions PAI can read from agent harnesses (Claude Code, Codex, ...)
6
+
7
+ ```
8
+ pai harness <command>
9
+ ```
10
+
11
+ Read-only ingestion of other harnesses' session logs. `list` shows each adapter: detected (its store exists), enabled (config key harness.adapters), and its session count. `sessions` lists the sessions themselves.
12
+
13
+ ```sh
14
+ pai harness list
15
+ pai harness sessions
16
+ pai harness sessions --harness codex --cwd ~/proj
17
+ ```
18
+
19
+ See also: `pai config get harness.adapters`
20
+
21
+ ### pai harness list
22
+
23
+ Each adapter: detected, enabled, session count
24
+
25
+ ```
26
+ pai harness list [options]
27
+ ```
28
+
29
+ One row per adapter PAI knows. Only enabled adapters whose store exists are ever read.
30
+
31
+ | Flag | Type | Default | Description |
32
+ |---|---|---|---|
33
+ | `--json` | flag | — | Print JSON instead of a table |
34
+
35
+ ```sh
36
+ pai harness list
37
+ pai harness list --json
38
+ ```
39
+
40
+ ### pai harness sessions
41
+
42
+ List sessions, newest first
43
+
44
+ ```
45
+ pai harness sessions [options]
46
+ ```
47
+
48
+ Sessions of the enabled adapters (or one harness with --harness), optionally limited to one working directory.
49
+
50
+ | Flag | Type | Default | Description |
51
+ |---|---|---|---|
52
+ | `--harness NAME` | string | — | Only this adapter (default: the enabled set) |
53
+ | `--cwd DIR` | string | — | Only sessions of this working directory |
54
+ | `--json` | flag | — | Print JSON instead of a table |
55
+
56
+ ```sh
57
+ pai harness sessions
58
+ pai harness sessions --harness codex
59
+ pai harness sessions --cwd ~/proj
60
+ ```
61
+
62
+ ## Subcommands
63
+
64
+ | Command | Description |
65
+ |---|---|
66
+ | `pai harness list` | Each adapter: detected, enabled, session count |
67
+ | `pai harness sessions` | List sessions, newest first |
68
+
69
+ ## See also
70
+
71
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
72
+
73
+ Run `pai help <command>` to read any of these in the terminal.
74
+
@@ -25,7 +25,7 @@ See also: `pai doc`
25
25
 
26
26
  ## See also
27
27
 
28
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
28
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
29
29
 
30
30
  Run `pai help <command>` to read any of these in the terminal.
31
31
 
@@ -65,7 +65,7 @@ See also: `pai home path`, `pai config migrate`
65
65
 
66
66
  ## See also
67
67
 
68
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
68
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
69
69
 
70
70
  Run `pai help <command>` to read any of these in the terminal.
71
71
 
@@ -64,7 +64,7 @@ pai hooks-db pre-compact "$PROJECT_SLUG"
64
64
 
65
65
  ## See also
66
66
 
67
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
67
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
68
68
 
69
69
  Run `pai help <command>` to read any of these in the terminal.
70
70
 
@@ -108,7 +108,7 @@ See also: `pai identity remove`
108
108
 
109
109
  ## See also
110
110
 
111
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
111
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
112
112
 
113
113
  Run `pai help <command>` to read any of these in the terminal.
114
114
 
@@ -52,7 +52,7 @@ See also: `pai update`, `pai daemon status`
52
52
 
53
53
  ## See also
54
54
 
55
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
55
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
56
56
 
57
57
  Run `pai help <command>` to read any of these in the terminal.
58
58
 
@@ -124,7 +124,7 @@ See also: `pai issue claims`
124
124
 
125
125
  ## See also
126
126
 
127
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
127
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
128
128
 
129
129
  Run `pai help <command>` to read any of these in the terminal.
130
130
 
@@ -133,7 +133,7 @@ pai kg stats
133
133
 
134
134
  ## See also
135
135
 
136
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
136
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
137
137
 
138
138
  Run `pai help <command>` to read any of these in the terminal.
139
139
 
@@ -30,7 +30,7 @@ See also: `pai new`, `pai open`, `pai providers`
30
30
 
31
31
  ## See also
32
32
 
33
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
33
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
34
34
 
35
35
  Run `pai help <command>` to read any of these in the terminal.
36
36
 
@@ -0,0 +1,201 @@
1
+ <!-- GENERATED by `pai doc --dir` from the command definitions (src/cli). Do not edit by hand. -->
2
+
3
+ # pai lessons
4
+
5
+ Review-gated lessons for agents
6
+
7
+ ```
8
+ pai lessons <command>
9
+ ```
10
+
11
+ A short curated memory layer, one Markdown file per lesson in the PAI home. Candidates only reach agents once approved.
12
+
13
+ ```sh
14
+ pai lessons list --state candidate
15
+ pai lessons propose
16
+ pai lessons approve my-lesson
17
+ ```
18
+
19
+ See also: `pai memory`
20
+
21
+ ### pai lessons list
22
+
23
+ List lessons
24
+
25
+ ```
26
+ pai lessons list [options]
27
+ ```
28
+
29
+ Lists lessons, optionally filtered by state or project.
30
+
31
+ | Flag | Type | Default | Description |
32
+ |---|---|---|---|
33
+ | `--state S` | string | — | candidate, approved, rejected or superseded |
34
+ | `--project P` | string | — | Project slug or global |
35
+ | `--json` | flag | — | Print JSON |
36
+
37
+ ```sh
38
+ pai lessons list
39
+ pai lessons list --state approved --project global
40
+ ```
41
+
42
+ ### pai lessons show
43
+
44
+ Show one lesson
45
+
46
+ ```
47
+ pai lessons show ID
48
+ ```
49
+
50
+ Prints a lesson with its frontmatter fields and body.
51
+
52
+ | Argument | Required | Description |
53
+ |---|---|---|
54
+ | `ID` | yes | Lesson id (its file name without .md) |
55
+
56
+ ```sh
57
+ pai lessons show my-lesson
58
+ ```
59
+
60
+ ### pai lessons add
61
+
62
+ Add a candidate lesson
63
+
64
+ ```
65
+ pai lessons add [options]
66
+ ```
67
+
68
+ Creates a lesson in the candidate state; approve it after review.
69
+
70
+ | Flag | Type | Default | Description |
71
+ |---|---|---|---|
72
+ | `--title T` | string | — | Short title |
73
+ | `--kind K` | string | — | workflow, correction, debugging, gotcha, convention |
74
+ | `--applies-when W` | string | — | One sentence: when the lesson applies |
75
+ | `--project P` | string | — | Project slug (default: global) |
76
+ | `--body B` | string | — | The lesson in 1-5 sentences |
77
+
78
+ ```sh
79
+ pai lessons add --title "Run tsc first" --kind workflow --applies-when "before committing"
80
+ ```
81
+
82
+ ### pai lessons approve
83
+
84
+ Approve a candidate
85
+
86
+ ```
87
+ pai lessons approve ID
88
+ ```
89
+
90
+ Approve a candidate. Only candidates can be approved.
91
+
92
+ | Argument | Required | Description |
93
+ |---|---|---|
94
+ | `ID` | yes | Lesson id (its file name without .md) |
95
+
96
+ ```sh
97
+ pai lessons approve my-lesson
98
+ ```
99
+
100
+ ### pai lessons reject
101
+
102
+ Reject a candidate
103
+
104
+ ```
105
+ pai lessons reject ID
106
+ ```
107
+
108
+ Reject a candidate. Only candidates can be rejectd.
109
+
110
+ | Argument | Required | Description |
111
+ |---|---|---|
112
+ | `ID` | yes | Lesson id (its file name without .md) |
113
+
114
+ ```sh
115
+ pai lessons reject my-lesson
116
+ ```
117
+
118
+ ### pai lessons promote
119
+
120
+ Promote an approved lesson to a project skill
121
+
122
+ ```
123
+ pai lessons promote ID [options]
124
+ ```
125
+
126
+ Writes the lesson as a SKILL.md under <project>/.claude/skills/<slug>/ (and with --agents also <project>/.agents/skills/<slug>/). Refuses to overwrite an existing skill unless --force.
127
+
128
+ | Argument | Required | Description |
129
+ |---|---|---|
130
+ | `ID` | yes | Lesson id (its file name without .md) |
131
+
132
+ | Flag | Type | Default | Description |
133
+ |---|---|---|---|
134
+ | `--project DIR` | string | — | Project directory (default: this directory) |
135
+ | `--force` | flag | — | Overwrite an existing SKILL.md |
136
+ | `--agents` | flag | — | Also write under .agents/skills |
137
+
138
+ ```sh
139
+ pai lessons promote my-lesson --project ~/code/app --agents
140
+ ```
141
+
142
+ ### pai lessons supersede
143
+
144
+ Replace an approved lesson by another approved one
145
+
146
+ ```
147
+ pai lessons supersede ID [options]
148
+ ```
149
+
150
+ Marks ID superseded; the replacement given with --by must exist and be approved.
151
+
152
+ | Argument | Required | Description |
153
+ |---|---|---|
154
+ | `ID` | yes | Lesson id (its file name without .md) |
155
+
156
+ | Flag | Type | Default | Description |
157
+ |---|---|---|---|
158
+ | `--by ID2` | string | — | The approved lesson that replaces it |
159
+
160
+ ```sh
161
+ pai lessons supersede old-lesson --by new-lesson
162
+ ```
163
+
164
+ ### pai lessons propose
165
+
166
+ Add candidates from a transcript
167
+
168
+ ```
169
+ pai lessons propose [TRANSCRIPT]
170
+ ```
171
+
172
+ Finds user messages that correct the assistant (no model call) and adds each as a candidate to review.
173
+
174
+ | Argument | Required | Description |
175
+ |---|---|---|
176
+ | `TRANSCRIPT` | no | Transcript file (default: newest of this directory) |
177
+
178
+ ```sh
179
+ pai lessons propose
180
+ pai lessons propose ./session.jsonl
181
+ ```
182
+
183
+ ## Subcommands
184
+
185
+ | Command | Description |
186
+ |---|---|
187
+ | `pai lessons list` | List lessons |
188
+ | `pai lessons show` | Show one lesson |
189
+ | `pai lessons add` | Add a candidate lesson |
190
+ | `pai lessons approve` | Approve a candidate |
191
+ | `pai lessons reject` | Reject a candidate |
192
+ | `pai lessons promote` | Promote an approved lesson to a project skill |
193
+ | `pai lessons supersede` | Replace an approved lesson by another approved one |
194
+ | `pai lessons propose` | Add candidates from a transcript |
195
+
196
+ ## See also
197
+
198
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
199
+
200
+ Run `pai help <command>` to read any of these in the terminal.
201
+
@@ -30,7 +30,7 @@ See also: `pai session info`, `pai ls`
30
30
 
31
31
  ## See also
32
32
 
33
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
33
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
34
34
 
35
35
  Run `pai help <command>` to read any of these in the terminal.
36
36
 
@@ -31,7 +31,7 @@ See also: `pai open`, `pai rename`, `pai providers`
31
31
 
32
32
  ## See also
33
33
 
34
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
34
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai mcp`](mcp.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
35
35
 
36
36
  Run `pai help <command>` to read any of these in the terminal.
37
37
 
@@ -62,7 +62,7 @@ See also: `pai mcp install`
62
62
 
63
63
  ## See also
64
64
 
65
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
65
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai memory`](memory.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
66
66
 
67
67
  Run `pai help <command>` to read any of these in the terminal.
68
68
 
@@ -332,7 +332,7 @@ pai memory status
332
332
 
333
333
  ## See also
334
334
 
335
- [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
335
+ [`pai audit`](audit.md) · [`pai backup`](backup.md) · [`pai build`](build.md) · [`pai cd`](cd.md) · [`pai clear-names`](clear-names.md) · [`pai cockpit`](cockpit.md) · [`pai config`](config.md) · [`pai daemon`](daemon.md) · [`pai db`](db.md) · [`pai doc`](doc.md) · [`pai end`](end.md) · [`pai find`](find.md) · [`pai git`](git.md) · [`pai handoff`](handoff.md) · [`pai harness`](harness.md) · [`pai help`](help.md) · [`pai home`](home.md) · [`pai hooks-db`](hooks-db.md) · [`pai identity`](identity.md) · [`pai install`](install.md) · [`pai issue`](issue.md) · [`pai kg`](kg.md) · [`pai launch`](launch.md) · [`pai lessons`](lessons.md) · [`pai list`](list.md) · [`pai ls`](ls.md) · [`pai mcp`](mcp.md) · [`pai models`](models.md) · [`pai more`](more.md) · [`pai new`](new.md) · [`pai notes`](notes.md) · [`pai notify`](notify.md) · [`pai observation`](observation.md) · [`pai obsidian`](obsidian.md) · [`pai open`](open.md) · [`pai pane`](pane.md) · [`pai pause`](pause.md) · [`pai plan`](plan.md) · [`pai project`](project.md) · [`pai projects`](projects.md) · [`pai providers`](providers.md) · [`pai queue`](queue.md) · [`pai registry`](registry.md) · [`pai reload`](reload.md) · [`pai rename`](rename.md) · [`pai restore`](restore.md) · [`pai resume`](resume.md) · [`pai router`](router.md) · [`pai rules`](rules.md) · [`pai session`](session.md) · [`pai sessions`](sessions.md) · [`pai setup`](setup.md) · [`pai setups`](setups.md) · [`pai shell-init`](shell-init.md) · [`pai skill`](skill.md) · [`pai task`](task.md) · [`pai tasks`](tasks.md) · [`pai topic`](topic.md) · [`pai update`](update.md) · [`pai worker`](worker.md) · [`pai zettel`](zettel.md)
336
336
 
337
337
  Run `pai help <command>` to read any of these in the terminal.
338
338