@hienlh/ppm 0.12.12 → 0.13.0
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.
- package/CHANGELOG.md +10 -1
- package/README.md +11 -0
- package/assets/skills/ppm/SKILL.md +74 -0
- package/assets/skills/ppm/references/cli-reference.md +728 -0
- package/assets/skills/ppm/references/common-tasks.md +139 -0
- package/assets/skills/ppm/references/http-api.md +204 -0
- package/dist/web/assets/ai-settings-section-QE6nBNgN.js +1 -0
- package/dist/web/assets/{api-settings-C3T95dWg.js → api-settings-DAk7D-NP.js} +1 -1
- package/dist/web/assets/architecture-PBZL5I3N-DvZbltvY.js +1 -0
- package/dist/web/assets/{audio-preview-BkbgGtDH.js → audio-preview-J5neETTY.js} +1 -1
- package/dist/web/assets/chat-tab-sVHRa1Fz.js +12 -0
- package/dist/web/assets/{code-editor-BtspASkW.js → code-editor-tMfcFaQ5.js} +4 -4
- package/dist/web/assets/{conflict-editor-Dgsu6fmj.js → conflict-editor-FydCxWTC.js} +1 -1
- package/dist/web/assets/{csv-preview-DcWCjQkZ.js → csv-preview-HMSavgBb.js} +1 -1
- package/dist/web/assets/{database-viewer-C85RxdMV.js → database-viewer-Celi1puH.js} +2 -2
- package/dist/web/assets/{diff-viewer-2pPy97Tl.js → diff-viewer-NgDJLTk9.js} +1 -1
- package/dist/web/assets/{esm-_CLpyLJ_.js → esm-K1XIK4vc.js} +1 -1
- package/dist/web/assets/{extension-store-BZDZ9QRc.js → extension-store-3yZYn07W.js} +1 -1
- package/dist/web/assets/{extension-webview-U1lMYZ0p.js → extension-webview-xWAdCj3q.js} +1 -1
- package/dist/web/assets/{file-store-4BpOJthN.js → file-store-BrbCNyLm.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-BxhdxFgj.js +1 -0
- package/dist/web/assets/{image-preview-BcT1SbY2.js → image-preview-C6bFkdZD.js} +1 -1
- package/dist/web/assets/index-BMhiElt6.css +2 -0
- package/dist/web/assets/index-DtbAoxyy.js +23 -0
- package/dist/web/assets/info-3K5VOQVL-BwAZ2zd8.js +1 -0
- package/dist/web/assets/{input-2eDVjcRZ.js → input-Dk49gO8E.js} +1 -1
- package/dist/web/assets/{keybindings-store-BOG1yviy.js → keybindings-store-B-zET-0o.js} +1 -1
- package/dist/web/assets/keybindings-store-DaBV6qhz.js +1 -0
- package/dist/web/assets/{markdown-renderer-Dbam_-04.js → markdown-renderer-BAnnk1pI.js} +3 -3
- package/dist/web/assets/packet-RMMSAZCW-tx2n5Qry.js +1 -0
- package/dist/web/assets/{pdf-preview-BmHVGx32.js → pdf-preview-BNuFTSOL.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-D6S2MqVT.js +1 -0
- package/dist/web/assets/plus-51UQ45rf.js +1 -0
- package/dist/web/assets/{port-forwarding-tab-Dkq1upWC.js → port-forwarding-tab-BbDlGxAs.js} +1 -1
- package/dist/web/assets/{postgres-viewer-BgBJAJ9q.js → postgres-viewer-Cman1YRO.js} +3 -3
- package/dist/web/assets/radar-KQ55EAFF-BviZcL-b.js +1 -0
- package/dist/web/assets/{scroll-area-CdxNNnN-.js → scroll-area-BEllam7_.js} +1 -1
- package/dist/web/assets/{settings-store-CMAssqyb.js → settings-store-BLLR7ed8.js} +2 -2
- package/dist/web/assets/settings-tab-n5X_Dbu4.js +1 -0
- package/dist/web/assets/{sql-query-editor-b7zJ8XPp.js → sql-query-editor-CVAnRFbi.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-4lLAz1es.js → sqlite-viewer-D6JT11uu.js} +1 -1
- package/dist/web/assets/{tab-store-DNBsLdPn.js → tab-store-B3M9hjho.js} +1 -1
- package/dist/web/assets/{terminal-tab-BtnqkN1H.js → terminal-tab-B4kMthYo.js} +1 -1
- package/dist/web/assets/treemap-KZPCXAKY-CM54VdaB.js +1 -0
- package/dist/web/assets/{use-blob-url-QX-XajU8.js → use-blob-url-e9uTXjv5.js} +1 -1
- package/dist/web/assets/{use-monaco-theme-D68oX3XU.js → use-monaco-theme-BkZDwoVd.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-sQS4C_iL.js → vendor-mermaid-Dx86tuVP.js} +2 -2
- package/dist/web/assets/{video-preview-CkOKvVLt.js → video-preview-BftQOOzF.js} +1 -1
- package/dist/web/index.html +18 -18
- package/dist/web/sw.js +1 -1
- package/docs/project-changelog.md +15 -1
- package/package.json +3 -3
- package/scripts/generate-ppm-skill.ts +23 -0
- package/scripts/lib/generate-cli-reference.ts +81 -0
- package/scripts/lib/generate-common-tasks.ts +14 -0
- package/scripts/lib/generate-http-api.ts +145 -0
- package/scripts/lib/generate-skill-md.ts +28 -0
- package/scripts/lib/write-output.ts +17 -0
- package/src/cli/commands/export-cmd.ts +85 -0
- package/src/index.ts +167 -153
- package/src/services/skill-export/backup-existing.ts +33 -0
- package/src/services/skill-export/copy-bundled-skill.ts +36 -0
- package/src/services/skill-export/generate-db-schema.ts +66 -0
- package/src/services/skill-export/index.ts +6 -0
- package/src/services/skill-export/resolve-assets-dir.ts +31 -0
- package/src/services/skill-export/resolve-target-dir.ts +17 -0
- package/src/web/components/chat/chat-tab.tsx +6 -1
- package/src/web/components/chat/message-list.tsx +96 -43
- package/src/web/hooks/use-chat.ts +37 -1
- package/src/web/lib/flatten-expansions.ts +36 -0
- package/templates/skill/SKILL.md.tmpl +74 -0
- package/templates/skill/common-tasks.md +139 -0
- package/assets/skills/ppm-guide/SKILL.md +0 -61
- package/dist/web/assets/ai-settings-section-NNWp6nw7.js +0 -1
- package/dist/web/assets/architecture-PBZL5I3N-DDuzYaUV.js +0 -1
- package/dist/web/assets/chat-tab-BZlP1qjX.js +0 -12
- package/dist/web/assets/chevron-up-BWBvMZkp.js +0 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-BURAevTc.js +0 -1
- package/dist/web/assets/index-BWSRKVZn.js +0 -23
- package/dist/web/assets/index-b6tIZImC.css +0 -2
- package/dist/web/assets/info-3K5VOQVL-tSD4Fpi3.js +0 -1
- package/dist/web/assets/keybindings-store-BvdUoEC7.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-DmDLZUrV.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-w03Pc9ZR.js +0 -1
- package/dist/web/assets/pre-compact-button-Dp7Hs49L.js +0 -1
- package/dist/web/assets/pre-compact-section-DnM5fGSR.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-C9XQvoey.js +0 -1
- package/dist/web/assets/settings-tab-zYWKTq5z.js +0 -1
- package/dist/web/assets/treemap-KZPCXAKY-lmftxSky.js +0 -1
- package/scripts/generate-ppm-guide.ts +0 -92
- package/src/web/components/chat/pre-compact-section.tsx +0 -69
- /package/dist/web/assets/{api-client-DIhJ5qVW.js → api-client-Dvzcc_EO.js} +0 -0
- /package/dist/web/assets/{csv-parser-B5QW8pZ6.js → csv-parser--2WJNgS7.js} +0 -0
- /package/dist/web/assets/{dist-GtkSekuX.js → dist-im4ynINo.js} +0 -0
- /package/dist/web/assets/{katex-C3cZrCvP.js → katex-CKoArbIw.js} +0 -0
- /package/dist/web/assets/{lib-Bu71-TFS.js → lib-DQHnkzGy.js} +0 -0
- /package/dist/web/assets/{react-DMIOAtcX.js → react-GqWghJ-L.js} +0 -0
- /package/dist/web/assets/{refresh-cw-BjrAbUJe.js → refresh-cw-LlbZDJpO.js} +0 -0
- /package/dist/web/assets/{sql-completion-provider-CULTsCqR.js → sql-completion-provider-C3cq9j99.js} +0 -0
- /package/dist/web/assets/{table-tf7pRkME.js → table-Dq575bPF.js} +0 -0
- /package/dist/web/assets/{text-wrap-BV-R4Vvy.js → text-wrap-Cn6BNQfq.js} +0 -0
- /package/dist/web/assets/{trash-2-DjQOpgUV.js → trash-2-CJYoLw7Q.js} +0 -0
- /package/dist/web/assets/{utils-CQux7CsO.js → utils-CTg5uAYR.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-K3_Xwigj.js → vendor-xterm-CU2c3f0A.js} +0 -0
|
@@ -0,0 +1,728 @@
|
|
|
1
|
+
# PPM CLI Reference
|
|
2
|
+
|
|
3
|
+
_Auto-generated. Do not edit._
|
|
4
|
+
|
|
5
|
+
Root binary: `ppm`. Run `ppm <command> --help` for full usage.
|
|
6
|
+
|
|
7
|
+
## Global Options
|
|
8
|
+
|
|
9
|
+
- `-V, --version` — output the version number
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
## `ppm autostart`
|
|
14
|
+
|
|
15
|
+
Manage auto-start on boot (enable/disable/status)
|
|
16
|
+
|
|
17
|
+
**Usage:** `ppm autostart [options] [command]`
|
|
18
|
+
|
|
19
|
+
### `ppm autostart enable`
|
|
20
|
+
|
|
21
|
+
Register PPM to start automatically on boot
|
|
22
|
+
|
|
23
|
+
**Options:**
|
|
24
|
+
- `-p, --port <port>` — Override port
|
|
25
|
+
- `-s, --share` — (deprecated) Tunnel is now always enabled
|
|
26
|
+
- `--profile <name>` — DB profile name
|
|
27
|
+
|
|
28
|
+
### `ppm autostart disable`
|
|
29
|
+
|
|
30
|
+
Remove PPM auto-start registration
|
|
31
|
+
|
|
32
|
+
### `ppm autostart status`
|
|
33
|
+
|
|
34
|
+
Show auto-start status
|
|
35
|
+
|
|
36
|
+
**Options:**
|
|
37
|
+
- `--json` — Output as JSON
|
|
38
|
+
|
|
39
|
+
## `ppm bot`
|
|
40
|
+
|
|
41
|
+
PPMBot utilities
|
|
42
|
+
|
|
43
|
+
**Usage:** `ppm bot [options] [command]`
|
|
44
|
+
|
|
45
|
+
### `ppm bot delegate`
|
|
46
|
+
|
|
47
|
+
Delegate a task to a project subagent
|
|
48
|
+
|
|
49
|
+
**Options:**
|
|
50
|
+
- `--chat <id>` — Telegram chat ID
|
|
51
|
+
- `--project <name>` — Project name
|
|
52
|
+
- `--prompt <text>` — Enriched task prompt
|
|
53
|
+
- `--timeout <ms>` — Timeout in milliseconds (default: `"900000"`)
|
|
54
|
+
|
|
55
|
+
### `ppm bot task-status`
|
|
56
|
+
|
|
57
|
+
Get status of a delegated task
|
|
58
|
+
|
|
59
|
+
**Usage:** `ppm bot task-status [options] <id>`
|
|
60
|
+
|
|
61
|
+
### `ppm bot task-result`
|
|
62
|
+
|
|
63
|
+
Get full result of a completed task
|
|
64
|
+
|
|
65
|
+
**Usage:** `ppm bot task-result [options] <id>`
|
|
66
|
+
|
|
67
|
+
### `ppm bot tasks`
|
|
68
|
+
|
|
69
|
+
List recent delegated tasks
|
|
70
|
+
|
|
71
|
+
**Options:**
|
|
72
|
+
- `--chat <id>` — Telegram chat ID (auto-detected if single)
|
|
73
|
+
|
|
74
|
+
### `ppm bot memory`
|
|
75
|
+
|
|
76
|
+
Manage cross-project memories
|
|
77
|
+
|
|
78
|
+
**Usage:** `ppm bot memory [options] [command]`
|
|
79
|
+
|
|
80
|
+
#### `ppm bot memory save`
|
|
81
|
+
|
|
82
|
+
Save a cross-project memory
|
|
83
|
+
|
|
84
|
+
**Options:**
|
|
85
|
+
- `-c, --category <cat>` — Category: fact|preference|decision|architecture|issue (default: `"fact"`)
|
|
86
|
+
- `-s, --session <id>` — Session ID (optional)
|
|
87
|
+
|
|
88
|
+
**Usage:** `ppm bot memory save [options] <content>`
|
|
89
|
+
|
|
90
|
+
#### `ppm bot memory list`
|
|
91
|
+
|
|
92
|
+
List active cross-project memories
|
|
93
|
+
|
|
94
|
+
**Options:**
|
|
95
|
+
- `-l, --limit <n>` — Max results (default: `"30"`)
|
|
96
|
+
- `--json` — Output as JSON
|
|
97
|
+
|
|
98
|
+
#### `ppm bot memory forget`
|
|
99
|
+
|
|
100
|
+
Delete memories matching a topic (FTS5 search)
|
|
101
|
+
|
|
102
|
+
**Usage:** `ppm bot memory forget [options] <topic>`
|
|
103
|
+
|
|
104
|
+
### `ppm bot project`
|
|
105
|
+
|
|
106
|
+
Manage bot project context
|
|
107
|
+
|
|
108
|
+
**Usage:** `ppm bot project [options] [command]`
|
|
109
|
+
|
|
110
|
+
#### `ppm bot project list`
|
|
111
|
+
|
|
112
|
+
List available projects
|
|
113
|
+
|
|
114
|
+
**Options:**
|
|
115
|
+
- `--json` — Output as JSON
|
|
116
|
+
|
|
117
|
+
### `ppm bot status`
|
|
118
|
+
|
|
119
|
+
Show current status and running tasks
|
|
120
|
+
|
|
121
|
+
**Options:**
|
|
122
|
+
- `--chat <id>` — Telegram chat ID (auto-detected if single)
|
|
123
|
+
- `--json` — Output as JSON
|
|
124
|
+
|
|
125
|
+
### `ppm bot version`
|
|
126
|
+
|
|
127
|
+
Show PPM version
|
|
128
|
+
|
|
129
|
+
### `ppm bot restart`
|
|
130
|
+
|
|
131
|
+
Restart the PPM server
|
|
132
|
+
|
|
133
|
+
### `ppm bot help`
|
|
134
|
+
|
|
135
|
+
Show all bot CLI commands
|
|
136
|
+
|
|
137
|
+
## `ppm chat`
|
|
138
|
+
|
|
139
|
+
Manage AI chat sessions
|
|
140
|
+
|
|
141
|
+
**Usage:** `ppm chat [options] [command]`
|
|
142
|
+
|
|
143
|
+
### `ppm chat list`
|
|
144
|
+
|
|
145
|
+
List all chat sessions
|
|
146
|
+
|
|
147
|
+
**Options:**
|
|
148
|
+
- `-p, --project <name>` — Filter by project name
|
|
149
|
+
|
|
150
|
+
### `ppm chat create`
|
|
151
|
+
|
|
152
|
+
Create a new chat session
|
|
153
|
+
|
|
154
|
+
**Options:**
|
|
155
|
+
- `-p, --project <name>` — Project name or path
|
|
156
|
+
- `--provider <provider>` — AI provider (default: claude)
|
|
157
|
+
|
|
158
|
+
### `ppm chat send`
|
|
159
|
+
|
|
160
|
+
Send a message and stream response to stdout
|
|
161
|
+
|
|
162
|
+
**Options:**
|
|
163
|
+
- `-p, --project <name>` — Project name or path
|
|
164
|
+
|
|
165
|
+
**Usage:** `ppm chat send [options] <session-id> <message>`
|
|
166
|
+
|
|
167
|
+
### `ppm chat resume`
|
|
168
|
+
|
|
169
|
+
Resume an interactive chat session
|
|
170
|
+
|
|
171
|
+
**Options:**
|
|
172
|
+
- `-p, --project <name>` — Project name or path
|
|
173
|
+
|
|
174
|
+
**Usage:** `ppm chat resume [options] <session-id>`
|
|
175
|
+
|
|
176
|
+
### `ppm chat delete`
|
|
177
|
+
|
|
178
|
+
Delete a chat session
|
|
179
|
+
|
|
180
|
+
**Usage:** `ppm chat delete [options] <session-id>`
|
|
181
|
+
|
|
182
|
+
## `ppm cloud`
|
|
183
|
+
|
|
184
|
+
PPM Cloud — device registry + tunnel URL sync
|
|
185
|
+
|
|
186
|
+
**Usage:** `ppm cloud [options] [command]`
|
|
187
|
+
|
|
188
|
+
### `ppm cloud login`
|
|
189
|
+
|
|
190
|
+
Sign in with Google
|
|
191
|
+
|
|
192
|
+
**Options:**
|
|
193
|
+
- `--url <url>` — Cloud URL override
|
|
194
|
+
- `--device-code` — Force device code flow (for remote terminals)
|
|
195
|
+
|
|
196
|
+
### `ppm cloud logout`
|
|
197
|
+
|
|
198
|
+
Sign out from PPM Cloud
|
|
199
|
+
|
|
200
|
+
### `ppm cloud status`
|
|
201
|
+
|
|
202
|
+
Show PPM Cloud connection status
|
|
203
|
+
|
|
204
|
+
**Options:**
|
|
205
|
+
- `--json` — Output as JSON
|
|
206
|
+
|
|
207
|
+
### `ppm cloud devices`
|
|
208
|
+
|
|
209
|
+
List all registered devices from cloud
|
|
210
|
+
|
|
211
|
+
**Options:**
|
|
212
|
+
- `--json` — Output as JSON
|
|
213
|
+
|
|
214
|
+
## `ppm config`
|
|
215
|
+
|
|
216
|
+
Get or set PPM configuration
|
|
217
|
+
|
|
218
|
+
**Usage:** `ppm config [options] [command]`
|
|
219
|
+
|
|
220
|
+
### `ppm config get`
|
|
221
|
+
|
|
222
|
+
Get a config value (e.g. port, auth.enabled)
|
|
223
|
+
|
|
224
|
+
**Usage:** `ppm config get [options] <key>`
|
|
225
|
+
|
|
226
|
+
### `ppm config set`
|
|
227
|
+
|
|
228
|
+
Set a config value (e.g. port 9090)
|
|
229
|
+
|
|
230
|
+
**Usage:** `ppm config set [options] <key> <value>`
|
|
231
|
+
|
|
232
|
+
## `ppm db`
|
|
233
|
+
|
|
234
|
+
Manage database connections and execute queries
|
|
235
|
+
|
|
236
|
+
**Usage:** `ppm db [options] [command]`
|
|
237
|
+
|
|
238
|
+
### `ppm db list`
|
|
239
|
+
|
|
240
|
+
List all saved database connections
|
|
241
|
+
|
|
242
|
+
### `ppm db add`
|
|
243
|
+
|
|
244
|
+
Add a new database connection
|
|
245
|
+
|
|
246
|
+
**Options:**
|
|
247
|
+
- `-n, --name <name>` — Connection name (unique)
|
|
248
|
+
- `-t, --type <type>` — Database type: sqlite | postgres
|
|
249
|
+
- `-c, --connection-string <url>` — PostgreSQL connection string
|
|
250
|
+
- `-f, --file <path>` — SQLite file path (absolute)
|
|
251
|
+
- `-g, --group <group>` — Group name
|
|
252
|
+
- `--color <color>` — Tab color (hex, e.g. #3b82f6)
|
|
253
|
+
|
|
254
|
+
### `ppm db remove`
|
|
255
|
+
|
|
256
|
+
Remove a saved connection (by name or ID)
|
|
257
|
+
|
|
258
|
+
**Usage:** `ppm db remove [options] <name>`
|
|
259
|
+
|
|
260
|
+
### `ppm db test`
|
|
261
|
+
|
|
262
|
+
Test a saved connection
|
|
263
|
+
|
|
264
|
+
**Usage:** `ppm db test [options] <name>`
|
|
265
|
+
|
|
266
|
+
### `ppm db tables`
|
|
267
|
+
|
|
268
|
+
List tables in a database connection
|
|
269
|
+
|
|
270
|
+
**Usage:** `ppm db tables [options] <name>`
|
|
271
|
+
|
|
272
|
+
### `ppm db schema`
|
|
273
|
+
|
|
274
|
+
Show table schema (columns, types, constraints)
|
|
275
|
+
|
|
276
|
+
**Options:**
|
|
277
|
+
- `-s, --schema <schema>` — PostgreSQL schema name (default: `"public"`)
|
|
278
|
+
|
|
279
|
+
**Usage:** `ppm db schema [options] <name> <table>`
|
|
280
|
+
|
|
281
|
+
### `ppm db data`
|
|
282
|
+
|
|
283
|
+
View table data (paginated)
|
|
284
|
+
|
|
285
|
+
**Options:**
|
|
286
|
+
- `-p, --page <page>` — Page number (default: `"1"`)
|
|
287
|
+
- `-l, --limit <limit>` — Rows per page (default: `"50"`)
|
|
288
|
+
- `--order <column>` — Order by column
|
|
289
|
+
- `--desc` — Descending order
|
|
290
|
+
- `-s, --schema <schema>` — PostgreSQL schema name (default: `"public"`)
|
|
291
|
+
|
|
292
|
+
**Usage:** `ppm db data [options] <name> <table>`
|
|
293
|
+
|
|
294
|
+
### `ppm db query`
|
|
295
|
+
|
|
296
|
+
Execute a SQL query against a saved connection
|
|
297
|
+
|
|
298
|
+
**Usage:** `ppm db query [options] <name> <sql>`
|
|
299
|
+
|
|
300
|
+
## `ppm down`
|
|
301
|
+
|
|
302
|
+
Fully shut down PPM (supervisor + server + tunnel)
|
|
303
|
+
|
|
304
|
+
## `ppm export`
|
|
305
|
+
|
|
306
|
+
Export PPM metadata for external tools (AI agents, editors)
|
|
307
|
+
|
|
308
|
+
**Usage:** `ppm export [options] [command]`
|
|
309
|
+
|
|
310
|
+
### `ppm export skill`
|
|
311
|
+
|
|
312
|
+
Export Claude Code skill for controlling PPM from external AI tools
|
|
313
|
+
|
|
314
|
+
**Options:**
|
|
315
|
+
- `--install` — Install to target dir (default scope=user → ~/.claude/skills/ppm/)
|
|
316
|
+
- `--scope <scope>` — Install scope: user | project (default: `"user"`)
|
|
317
|
+
- `--output <dir>` — Custom output directory (overrides --scope)
|
|
318
|
+
- `--format <fmt>` — Output format (default: `"claude-code"`)
|
|
319
|
+
|
|
320
|
+
## `ppm ext`
|
|
321
|
+
|
|
322
|
+
Manage PPM extensions
|
|
323
|
+
|
|
324
|
+
**Usage:** `ppm ext [options] [command]`
|
|
325
|
+
|
|
326
|
+
### `ppm ext install`
|
|
327
|
+
|
|
328
|
+
Install an extension from npm
|
|
329
|
+
|
|
330
|
+
**Usage:** `ppm ext install [options] <name>`
|
|
331
|
+
|
|
332
|
+
### `ppm ext remove`
|
|
333
|
+
|
|
334
|
+
Remove an installed extension
|
|
335
|
+
|
|
336
|
+
**Usage:** `ppm ext remove [options] <name>`
|
|
337
|
+
|
|
338
|
+
### `ppm ext list`
|
|
339
|
+
|
|
340
|
+
List installed extensions
|
|
341
|
+
|
|
342
|
+
### `ppm ext enable`
|
|
343
|
+
|
|
344
|
+
Enable an extension
|
|
345
|
+
|
|
346
|
+
**Usage:** `ppm ext enable [options] <name>`
|
|
347
|
+
|
|
348
|
+
### `ppm ext disable`
|
|
349
|
+
|
|
350
|
+
Disable an extension
|
|
351
|
+
|
|
352
|
+
**Usage:** `ppm ext disable [options] <name>`
|
|
353
|
+
|
|
354
|
+
### `ppm ext dev`
|
|
355
|
+
|
|
356
|
+
Symlink a local extension for development
|
|
357
|
+
|
|
358
|
+
**Usage:** `ppm ext dev [options] <path>`
|
|
359
|
+
|
|
360
|
+
## `ppm git`
|
|
361
|
+
|
|
362
|
+
Git operations for a project
|
|
363
|
+
|
|
364
|
+
**Usage:** `ppm git [options] [command]`
|
|
365
|
+
|
|
366
|
+
### `ppm git status`
|
|
367
|
+
|
|
368
|
+
Show working tree status
|
|
369
|
+
|
|
370
|
+
**Options:**
|
|
371
|
+
- `-p, --project <name>` — Project name or path
|
|
372
|
+
|
|
373
|
+
### `ppm git log`
|
|
374
|
+
|
|
375
|
+
Show recent commits
|
|
376
|
+
|
|
377
|
+
**Options:**
|
|
378
|
+
- `-p, --project <name>` — Project name or path
|
|
379
|
+
- `-n, --count <n>` — Number of commits to show (default: `"20"`)
|
|
380
|
+
|
|
381
|
+
### `ppm git diff`
|
|
382
|
+
|
|
383
|
+
Show diff between refs or working tree
|
|
384
|
+
|
|
385
|
+
**Options:**
|
|
386
|
+
- `-p, --project <name>` — Project name or path
|
|
387
|
+
|
|
388
|
+
**Usage:** `ppm git diff [options] [ref1] [ref2]`
|
|
389
|
+
|
|
390
|
+
### `ppm git stage`
|
|
391
|
+
|
|
392
|
+
Stage files (use "." to stage all)
|
|
393
|
+
|
|
394
|
+
**Options:**
|
|
395
|
+
- `-p, --project <name>` — Project name or path
|
|
396
|
+
|
|
397
|
+
**Usage:** `ppm git stage [options] <files...>`
|
|
398
|
+
|
|
399
|
+
### `ppm git unstage`
|
|
400
|
+
|
|
401
|
+
Unstage files
|
|
402
|
+
|
|
403
|
+
**Options:**
|
|
404
|
+
- `-p, --project <name>` — Project name or path
|
|
405
|
+
|
|
406
|
+
**Usage:** `ppm git unstage [options] <files...>`
|
|
407
|
+
|
|
408
|
+
### `ppm git commit`
|
|
409
|
+
|
|
410
|
+
Commit staged changes
|
|
411
|
+
|
|
412
|
+
**Options:**
|
|
413
|
+
- `-p, --project <name>` — Project name or path
|
|
414
|
+
- `-m, --message <msg>` — Commit message
|
|
415
|
+
|
|
416
|
+
### `ppm git push`
|
|
417
|
+
|
|
418
|
+
Push to remote
|
|
419
|
+
|
|
420
|
+
**Options:**
|
|
421
|
+
- `-p, --project <name>` — Project name or path
|
|
422
|
+
- `--remote <remote>` — Remote name (default: `"origin"`)
|
|
423
|
+
- `--branch <branch>` — Branch name
|
|
424
|
+
|
|
425
|
+
### `ppm git pull`
|
|
426
|
+
|
|
427
|
+
Pull from remote
|
|
428
|
+
|
|
429
|
+
**Options:**
|
|
430
|
+
- `-p, --project <name>` — Project name or path
|
|
431
|
+
- `--remote <remote>` — Remote name
|
|
432
|
+
- `--branch <branch>` — Branch name
|
|
433
|
+
|
|
434
|
+
### `ppm git branch`
|
|
435
|
+
|
|
436
|
+
Branch operations
|
|
437
|
+
|
|
438
|
+
**Usage:** `ppm git branch [options] [command]`
|
|
439
|
+
|
|
440
|
+
#### `ppm git branch create`
|
|
441
|
+
|
|
442
|
+
Create and checkout a new branch
|
|
443
|
+
|
|
444
|
+
**Options:**
|
|
445
|
+
- `-p, --project <name>` — Project name or path
|
|
446
|
+
- `--from <ref>` — Base ref (commit/branch/tag)
|
|
447
|
+
|
|
448
|
+
**Usage:** `ppm git branch create [options] <name>`
|
|
449
|
+
|
|
450
|
+
#### `ppm git branch checkout`
|
|
451
|
+
|
|
452
|
+
Switch to a branch
|
|
453
|
+
|
|
454
|
+
**Options:**
|
|
455
|
+
- `-p, --project <name>` — Project name or path
|
|
456
|
+
|
|
457
|
+
**Usage:** `ppm git branch checkout [options] <name>`
|
|
458
|
+
|
|
459
|
+
#### `ppm git branch delete`
|
|
460
|
+
|
|
461
|
+
Delete a branch
|
|
462
|
+
|
|
463
|
+
**Options:**
|
|
464
|
+
- `-p, --project <name>` — Project name or path
|
|
465
|
+
- `-f, --force` — Force delete
|
|
466
|
+
|
|
467
|
+
**Usage:** `ppm git branch delete [options] <name>`
|
|
468
|
+
|
|
469
|
+
#### `ppm git branch merge`
|
|
470
|
+
|
|
471
|
+
Merge a branch into current branch
|
|
472
|
+
|
|
473
|
+
**Options:**
|
|
474
|
+
- `-p, --project <name>` — Project name or path
|
|
475
|
+
|
|
476
|
+
**Usage:** `ppm git branch merge [options] <source>`
|
|
477
|
+
|
|
478
|
+
## `ppm init`
|
|
479
|
+
|
|
480
|
+
Initialize PPM configuration (interactive or via flags)
|
|
481
|
+
|
|
482
|
+
**Options:**
|
|
483
|
+
- `-p, --port <port>` — Port to listen on
|
|
484
|
+
- `--scan <path>` — Directory to scan for git repos
|
|
485
|
+
- `--auth` — Enable authentication
|
|
486
|
+
- `--no-auth` — Disable authentication
|
|
487
|
+
- `--password <pw>` — Set access password
|
|
488
|
+
- `--share` — Pre-install cloudflared for sharing
|
|
489
|
+
- `-y, --yes` — Non-interactive mode (use defaults + flags)
|
|
490
|
+
|
|
491
|
+
## `ppm jira`
|
|
492
|
+
|
|
493
|
+
Jira watcher utilities
|
|
494
|
+
|
|
495
|
+
**Usage:** `ppm jira [options] [command]`
|
|
496
|
+
|
|
497
|
+
### `ppm jira config`
|
|
498
|
+
|
|
499
|
+
Manage Jira configs
|
|
500
|
+
|
|
501
|
+
**Usage:** `ppm jira config [options] [command]`
|
|
502
|
+
|
|
503
|
+
#### `ppm jira config set`
|
|
504
|
+
|
|
505
|
+
Set Jira config for a project
|
|
506
|
+
|
|
507
|
+
**Options:**
|
|
508
|
+
- `--url <url>` — Jira base URL (https://...)
|
|
509
|
+
- `--email <email>` — Jira account email
|
|
510
|
+
- `--token <token>` — API token (⚠ visible in shell history)
|
|
511
|
+
|
|
512
|
+
**Usage:** `ppm jira config set [options] <projectName>`
|
|
513
|
+
|
|
514
|
+
#### `ppm jira config show`
|
|
515
|
+
|
|
516
|
+
Show Jira config (token masked)
|
|
517
|
+
|
|
518
|
+
**Usage:** `ppm jira config show [options] <projectName>`
|
|
519
|
+
|
|
520
|
+
#### `ppm jira config remove`
|
|
521
|
+
|
|
522
|
+
Remove Jira config (cascades watchers + results)
|
|
523
|
+
|
|
524
|
+
**Usage:** `ppm jira config remove [options] <projectName>`
|
|
525
|
+
|
|
526
|
+
#### `ppm jira config test`
|
|
527
|
+
|
|
528
|
+
Test Jira connection
|
|
529
|
+
|
|
530
|
+
**Usage:** `ppm jira config test [options] <projectName>`
|
|
531
|
+
|
|
532
|
+
### `ppm jira watch`
|
|
533
|
+
|
|
534
|
+
Manage Jira watchers
|
|
535
|
+
|
|
536
|
+
**Usage:** `ppm jira watch [options] [command]`
|
|
537
|
+
|
|
538
|
+
#### `ppm jira watch add`
|
|
539
|
+
|
|
540
|
+
Create a new watcher
|
|
541
|
+
|
|
542
|
+
**Options:**
|
|
543
|
+
- `--config <id>` — Jira config ID
|
|
544
|
+
- `--name <name>` — Watcher name
|
|
545
|
+
- `--jql <jql>` — JQL filter query
|
|
546
|
+
- `--interval <ms>` — Poll interval in ms (default: `"120000"`)
|
|
547
|
+
- `--prompt <template>` — Custom prompt template
|
|
548
|
+
- `--mode <mode>` — debug or notify (default: `"debug"`)
|
|
549
|
+
|
|
550
|
+
#### `ppm jira watch list`
|
|
551
|
+
|
|
552
|
+
List watchers
|
|
553
|
+
|
|
554
|
+
**Options:**
|
|
555
|
+
- `--config <id>` — Filter by config ID
|
|
556
|
+
|
|
557
|
+
#### `ppm jira watch enable`
|
|
558
|
+
|
|
559
|
+
Enable watcher
|
|
560
|
+
|
|
561
|
+
**Usage:** `ppm jira watch enable [options] <id>`
|
|
562
|
+
|
|
563
|
+
#### `ppm jira watch disable`
|
|
564
|
+
|
|
565
|
+
Disable watcher
|
|
566
|
+
|
|
567
|
+
**Usage:** `ppm jira watch disable [options] <id>`
|
|
568
|
+
|
|
569
|
+
#### `ppm jira watch remove`
|
|
570
|
+
|
|
571
|
+
Delete watcher
|
|
572
|
+
|
|
573
|
+
**Usage:** `ppm jira watch remove [options] <id>`
|
|
574
|
+
|
|
575
|
+
#### `ppm jira watch test`
|
|
576
|
+
|
|
577
|
+
Dry-run poll (show matches without creating tasks)
|
|
578
|
+
|
|
579
|
+
**Usage:** `ppm jira watch test [options] <id>`
|
|
580
|
+
|
|
581
|
+
#### `ppm jira watch pull`
|
|
582
|
+
|
|
583
|
+
Manual pull (one watcher or all enabled)
|
|
584
|
+
|
|
585
|
+
**Usage:** `ppm jira watch pull [options] [id]`
|
|
586
|
+
|
|
587
|
+
### `ppm jira results`
|
|
588
|
+
|
|
589
|
+
View Jira watch results
|
|
590
|
+
|
|
591
|
+
**Options:**
|
|
592
|
+
- `--watcher <id>` — Filter by watcher ID
|
|
593
|
+
- `--status <status>` — Filter by status
|
|
594
|
+
|
|
595
|
+
**Usage:** `ppm jira results [options] [command]`
|
|
596
|
+
|
|
597
|
+
#### `ppm jira results delete`
|
|
598
|
+
|
|
599
|
+
Soft-delete result
|
|
600
|
+
|
|
601
|
+
**Usage:** `ppm jira results delete [options] <id>`
|
|
602
|
+
|
|
603
|
+
### `ppm jira track`
|
|
604
|
+
|
|
605
|
+
Manually track a Jira issue
|
|
606
|
+
|
|
607
|
+
**Options:**
|
|
608
|
+
- `--config <id>` — Jira config ID
|
|
609
|
+
|
|
610
|
+
**Usage:** `ppm jira track [options] <issueKey>`
|
|
611
|
+
|
|
612
|
+
## `ppm logs`
|
|
613
|
+
|
|
614
|
+
View PPM daemon logs
|
|
615
|
+
|
|
616
|
+
**Options:**
|
|
617
|
+
- `-n, --tail <lines>` — Number of lines to show (default: `"50"`)
|
|
618
|
+
- `-f, --follow` — Follow log output
|
|
619
|
+
- `--clear` — Clear log file
|
|
620
|
+
|
|
621
|
+
## `ppm open`
|
|
622
|
+
|
|
623
|
+
Open PPM in browser
|
|
624
|
+
|
|
625
|
+
## `ppm projects`
|
|
626
|
+
|
|
627
|
+
Manage registered projects
|
|
628
|
+
|
|
629
|
+
**Usage:** `ppm projects [options] [command]`
|
|
630
|
+
|
|
631
|
+
### `ppm projects list`
|
|
632
|
+
|
|
633
|
+
List all registered projects
|
|
634
|
+
|
|
635
|
+
### `ppm projects add`
|
|
636
|
+
|
|
637
|
+
Add a project to the registry
|
|
638
|
+
|
|
639
|
+
**Options:**
|
|
640
|
+
- `-n, --name <name>` — Project name (defaults to folder name)
|
|
641
|
+
|
|
642
|
+
**Usage:** `ppm projects add [options] <path>`
|
|
643
|
+
|
|
644
|
+
### `ppm projects remove`
|
|
645
|
+
|
|
646
|
+
Remove a project from the registry
|
|
647
|
+
|
|
648
|
+
**Usage:** `ppm projects remove [options] <name>`
|
|
649
|
+
|
|
650
|
+
## `ppm report`
|
|
651
|
+
|
|
652
|
+
Report a bug on GitHub (pre-fills env info + logs)
|
|
653
|
+
|
|
654
|
+
## `ppm restart`
|
|
655
|
+
|
|
656
|
+
Restart the server (keeps tunnel alive)
|
|
657
|
+
|
|
658
|
+
**Options:**
|
|
659
|
+
- `--force` — Force resume from paused state
|
|
660
|
+
|
|
661
|
+
## `ppm skills`
|
|
662
|
+
|
|
663
|
+
Manage and inspect discovered skills & commands
|
|
664
|
+
|
|
665
|
+
**Options:**
|
|
666
|
+
- `--project <path>` — Project path (default: `"/home/hienlh/Projects/ppm"`)
|
|
667
|
+
|
|
668
|
+
**Usage:** `ppm skills [options] [command]`
|
|
669
|
+
|
|
670
|
+
### `ppm skills list`
|
|
671
|
+
|
|
672
|
+
List all discovered skills and commands
|
|
673
|
+
|
|
674
|
+
**Options:**
|
|
675
|
+
- `--json` — JSON output
|
|
676
|
+
- `--project <path>` — Project path (default: `"/home/hienlh/Projects/ppm"`)
|
|
677
|
+
|
|
678
|
+
### `ppm skills search`
|
|
679
|
+
|
|
680
|
+
Fuzzy search skills and commands
|
|
681
|
+
|
|
682
|
+
**Options:**
|
|
683
|
+
- `--json` — JSON output
|
|
684
|
+
- `--project <path>` — Project path (default: `"/home/hienlh/Projects/ppm"`)
|
|
685
|
+
|
|
686
|
+
**Usage:** `ppm skills search [options] <query>`
|
|
687
|
+
|
|
688
|
+
### `ppm skills info`
|
|
689
|
+
|
|
690
|
+
Show detailed info for a specific skill
|
|
691
|
+
|
|
692
|
+
**Options:**
|
|
693
|
+
- `--json` — JSON output
|
|
694
|
+
- `--project <path>` — Project path (default: `"/home/hienlh/Projects/ppm"`)
|
|
695
|
+
|
|
696
|
+
**Usage:** `ppm skills info [options] <name>`
|
|
697
|
+
|
|
698
|
+
## `ppm start`
|
|
699
|
+
|
|
700
|
+
Start the PPM server (background by default)
|
|
701
|
+
|
|
702
|
+
**Options:**
|
|
703
|
+
- `-p, --port <port>` — Port to listen on
|
|
704
|
+
- `-s, --share` — (deprecated) Tunnel is now always enabled
|
|
705
|
+
- `--profile <name>` — DB profile name (e.g. 'dev' → ppm.dev.db)
|
|
706
|
+
|
|
707
|
+
## `ppm status`
|
|
708
|
+
|
|
709
|
+
Show PPM daemon status
|
|
710
|
+
|
|
711
|
+
**Options:**
|
|
712
|
+
- `-a, --all` — Show all PPM and cloudflared processes (including untracked)
|
|
713
|
+
- `--json` — Output as JSON
|
|
714
|
+
|
|
715
|
+
## `ppm stop`
|
|
716
|
+
|
|
717
|
+
Stop the PPM server (supervisor stays alive)
|
|
718
|
+
|
|
719
|
+
**Options:**
|
|
720
|
+
- `-a, --all` — Kill all PPM and cloudflared processes (including untracked)
|
|
721
|
+
- `--kill` — Full shutdown (kills supervisor too)
|
|
722
|
+
|
|
723
|
+
## `ppm upgrade`
|
|
724
|
+
|
|
725
|
+
Check for and install PPM updates
|
|
726
|
+
|
|
727
|
+
**Options:**
|
|
728
|
+
- `--check` — Only check for updates, don't install
|