projmux 0.12.2 → 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/docs/cli.md CHANGED
@@ -44,7 +44,7 @@ projmux <command> [args...]
44
44
  | [`projmux rebind`](#projmux-rebind) | canonical | Rebind a Project to a new absolute root without moving files |
45
45
  | [`projmux rename`](#projmux-rename) | canonical | Rename a Projmux resource metadata.name |
46
46
  | [`projmux resources`](#projmux-resources) | shortcut | Inspect live Project, Window, and Pane CPU/RSS attribution |
47
- | [`projmux restore`](#projmux-restore) | canonical | Preview a saved session snapshot restore (--dry-run only in this release) |
47
+ | [`projmux restore`](#projmux-restore) | canonical | Project a saved snapshot into one exact closed Project desired state |
48
48
  | [`projmux runtime`](#projmux-runtime) | canonical | Manage the live and ephemeral tmux runtime inventory |
49
49
  | [`projmux settings`](#projmux-settings) | shortcut | Configure projmux |
50
50
  | [`projmux setup`](#projmux-setup) | canonical | Probe terminal keys or remediate them with setup terminal |
@@ -65,6 +65,10 @@ projmux agent status [get [<agent-ref>] | set <unknown|idle|in_progress|approval
65
65
  projmux agent topic get|clear [<agent-ref>] [--agent <ref>]
66
66
  projmux agent topic set <text> [<agent-ref>] [--agent <ref>]
67
67
  projmux agent resume <ref> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]...
68
+ projmux agent turn start|steer <agent-ref> -- <text>
69
+ projmux agent turn interrupt <agent-ref>
70
+ projmux agent approval review <agent-ref> [--request <normalized-id>]
71
+ projmux agent review [<agent-ref>] [--agent <ref>] [--base <branch> | --commit <sha> | --instructions <text>]
68
72
  projmux agent integrate <provider> [--dry-run]
69
73
  projmux agent usage [--model <name>] [--window <name>] [--json] [--force]
70
74
  ```
@@ -75,11 +79,14 @@ Subcommands:
75
79
  | --- | --- |
76
80
  | [`projmux agent status`](#projmux-agent-status) | Read or set semantic Agent interaction independently of lifecycle |
77
81
  | [`projmux agent topic`](#projmux-agent-topic) | Read, set, or clear one exact Agent topic annotation |
78
- | [`projmux agent resume`](#projmux-agent-resume) | Rebind an Offline or Failed Agent to a new managed Pane |
82
+ | [`projmux agent resume`](#projmux-agent-resume) | Rebind an Offline or Failed Agent detached on its Window's exact shell or Agent anchor |
83
+ | [`projmux agent turn`](#projmux-agent-turn) | Send, steer, or interrupt one exact native Codex turn |
84
+ | [`projmux agent approval`](#projmux-agent-approval) | Review one exact pending native Codex approval |
85
+ | [`projmux agent review`](#projmux-agent-review) | Start a native review on an exact-bound Codex Agent |
79
86
  | [`projmux agent integrate`](#projmux-agent-integrate) | Install or remove provider hook integrations |
80
87
  | [`projmux agent usage`](#projmux-agent-usage) | Read provider account usage quota snapshots |
81
88
 
82
- Canonical spelling: `projmux agent status`, `projmux agent topic`, `projmux agent resume`, `projmux agent integrate`, `projmux agent usage`
89
+ Canonical spelling: `projmux agent status`, `projmux agent topic`, `projmux agent resume`, `projmux agent turn start`, `projmux agent turn steer`, `projmux agent turn interrupt`, `projmux agent approval review`, `projmux agent review`, `projmux agent integrate`, `projmux agent usage`
83
90
 
84
91
  ### `projmux agent status`
85
92
 
@@ -100,12 +107,87 @@ projmux agent topic set <text> [<agent-ref>] [--agent <ref>]
100
107
 
101
108
  ### `projmux agent resume`
102
109
 
103
- Rebind an Offline or Failed Agent to a new managed Pane
110
+ Rebind an Offline or Failed Agent detached on its Window's exact shell or Agent anchor
104
111
 
105
112
  ```
106
113
  projmux agent resume <ref> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]...
107
114
  ```
108
115
 
116
+ ### `projmux agent turn`
117
+
118
+ Send, steer, or interrupt one exact native Codex turn
119
+
120
+ ```
121
+ projmux agent turn start|steer <agent-ref> -- <text>
122
+ projmux agent turn interrupt <agent-ref>
123
+ ```
124
+
125
+ Subcommands:
126
+
127
+ | Route | Summary |
128
+ | --- | --- |
129
+ | [`projmux agent turn start`](#projmux-agent-turn-start) | Send a new turn to one exact idle Codex thread |
130
+ | [`projmux agent turn steer`](#projmux-agent-turn-steer) | Steer one exact current Codex turn |
131
+ | [`projmux agent turn interrupt`](#projmux-agent-turn-interrupt) | Interrupt one exact current Codex turn |
132
+
133
+ Canonical spelling: `projmux agent turn start`, `projmux agent turn steer`, `projmux agent turn interrupt`
134
+
135
+ #### `projmux agent turn start`
136
+
137
+ Send a new turn to one exact idle Codex thread
138
+
139
+ ```
140
+ projmux agent turn start <agent-ref> -- <text>
141
+ ```
142
+
143
+ #### `projmux agent turn steer`
144
+
145
+ Steer one exact current Codex turn
146
+
147
+ ```
148
+ projmux agent turn steer <agent-ref> -- <text>
149
+ ```
150
+
151
+ #### `projmux agent turn interrupt`
152
+
153
+ Interrupt one exact current Codex turn
154
+
155
+ ```
156
+ projmux agent turn interrupt <agent-ref>
157
+ ```
158
+
159
+ ### `projmux agent approval`
160
+
161
+ Review one exact pending native Codex approval
162
+
163
+ ```
164
+ projmux agent approval review <agent-ref> [--request <normalized-id>]
165
+ ```
166
+
167
+ Subcommands:
168
+
169
+ | Route | Summary |
170
+ | --- | --- |
171
+ | [`projmux agent approval review`](#projmux-agent-approval-review) | Review one exact pending native Codex approval |
172
+
173
+ Canonical spelling: `projmux agent approval review`
174
+
175
+ #### `projmux agent approval review`
176
+
177
+ Review one exact pending native Codex approval
178
+
179
+ ```
180
+ projmux agent approval review <agent-ref> [--request <normalized-id>]
181
+ ```
182
+
183
+ ### `projmux agent review`
184
+
185
+ Start a native review on an exact-bound Codex Agent
186
+
187
+ ```
188
+ projmux agent review [<agent-ref>] [--agent <ref>] [--base <branch> | --commit <sha> | --instructions <text>]
189
+ ```
190
+
109
191
  ### `projmux agent integrate`
110
192
 
111
193
  Install or remove provider hook integrations
@@ -283,10 +365,11 @@ projmux config apply [--bin <path>] [--config <path>] [--socket <name>]
283
365
  Create Projmux resources
284
366
 
285
367
  ```
286
- projmux create window {--project <ref> | -p <ref>} [--name <name>] [--label key=value]... [-o <mode>] [-- <payload>]
287
- projmux create pane {--project <ref> | -p <ref>} [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
288
- projmux create agent --provider <provider> {--project <ref> | -p <ref>} [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
289
- projmux create codex|claude|antigravity {--project <ref> | -p <ref>} [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
368
+ projmux create project --root <absolute-path> [--name <name>] [--label key=value]... [-o <mode>]
369
+ projmux create window [--project <ref> | -p <ref>] [--name <name>] [--label key=value]... [-o <mode>] [-- <payload>]
370
+ projmux create pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
371
+ projmux create agent --provider <provider> [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
372
+ projmux create codex|claude|antigravity [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
290
373
  projmux create notification --text <s> --target <SESSION[:WINDOW[.PANE]]> [--socket <s>]
291
374
  projmux create snapshot
292
375
  ```
@@ -295,9 +378,10 @@ Subcommands:
295
378
 
296
379
  | Route | Summary |
297
380
  | --- | --- |
381
+ | [`projmux create project`](#projmux-create-project) | Register one exact filesystem path as a Registry Project; no runtime is materialized |
298
382
  | [`projmux create window`](#projmux-create-window) | Create a Window and its initial Pane below one Project; the runtime is materialized detached |
299
- | [`projmux create pane`](#projmux-create-pane) | Create a shell Pane; --project splits the resolved Windows detached, without it the current Window |
300
- | [`projmux create agent`](#projmux-create-agent) | Create an Agent and its managed Pane; --provider is required, and --project splits the resolved Windows detached |
383
+ | [`projmux create pane`](#projmux-create-pane) | Create a shell Pane detached on an explicit Pane or the Window's exact shell or Agent anchor |
384
+ | [`projmux create agent`](#projmux-create-agent) | Create an Agent detached on an explicit Pane or the Window's exact shell or Agent anchor; --provider is required |
301
385
  | [`projmux create notification`](#projmux-create-notification) | Create a pending notification row |
302
386
  | [`projmux create snapshot`](#projmux-create-snapshot) | Create a session snapshot |
303
387
 
@@ -309,36 +393,44 @@ Provider shortcuts:
309
393
  | [`projmux create claude`](#projmux-create-claude) | Provider shortcut for create agent --provider claude |
310
394
  | [`projmux create antigravity`](#projmux-create-antigravity) | Provider shortcut for create agent --provider antigravity |
311
395
 
312
- Canonical spelling: `projmux create window`, `projmux create pane`, `projmux create agent`, `projmux create notification`, `projmux create snapshot`, `projmux create codex`, `projmux create claude`, `projmux create antigravity`
396
+ Canonical spelling: `projmux create project`, `projmux create window`, `projmux create pane`, `projmux create agent`, `projmux create notification`, `projmux create snapshot`, `projmux create codex`, `projmux create claude`, `projmux create antigravity`
397
+
398
+ ### `projmux create project`
399
+
400
+ Register one exact filesystem path as a Registry Project; no runtime is materialized
401
+
402
+ ```
403
+ projmux create project --root <absolute-path> [--name <name>] [--label key=value]... [-o <mode>]
404
+ ```
405
+
406
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
313
407
 
314
408
  ### `projmux create window`
315
409
 
316
410
  Create a Window and its initial Pane below one Project; the runtime is materialized detached
317
411
 
318
412
  ```
319
- projmux create window {--project <ref> | -p <ref>} [--name <name>] [--label key=value]... [-o <mode>] [-- <payload>]
413
+ projmux create window [--project <ref> | -p <ref>] [--name <name>] [--label key=value]... [-o <mode>] [-- <payload>]
320
414
  ```
321
415
 
322
416
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
323
417
 
324
418
  ### `projmux create pane`
325
419
 
326
- Create a shell Pane; --project splits the resolved Windows detached, without it the current Window
420
+ Create a shell Pane detached on an explicit Pane or the Window's exact shell or Agent anchor
327
421
 
328
422
  ```
329
- projmux create pane {--project <ref> | -p <ref>} [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
330
- projmux create pane [--placement right|down] [-o <mode>]
423
+ projmux create pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
331
424
  ```
332
425
 
333
426
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
334
427
 
335
428
  ### `projmux create agent`
336
429
 
337
- Create an Agent and its managed Pane; --provider is required, and --project splits the resolved Windows detached
430
+ Create an Agent detached on an explicit Pane or the Window's exact shell or Agent anchor; --provider is required
338
431
 
339
432
  ```
340
- projmux create agent --provider <provider> {--project <ref> | -p <ref>} [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
341
- projmux create agent --provider <provider> [--placement right|down] [-o pane-id|none] [-- <payload>]
433
+ projmux create agent --provider <provider> [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
342
434
  ```
343
435
 
344
436
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
@@ -364,8 +456,7 @@ projmux create snapshot
364
456
  Provider shortcut for create agent --provider codex
365
457
 
366
458
  ```
367
- projmux create codex {--project <ref> | -p <ref>} [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
368
- projmux create codex [--placement right|down] [-o pane-id|none] [-- <payload>]
459
+ projmux create codex [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
369
460
  ```
370
461
 
371
462
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
@@ -375,8 +466,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
375
466
  Provider shortcut for create agent --provider claude
376
467
 
377
468
  ```
378
- projmux create claude {--project <ref> | -p <ref>} [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
379
- projmux create claude [--placement right|down] [-o pane-id|none] [-- <payload>]
469
+ projmux create claude [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
380
470
  ```
381
471
 
382
472
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
@@ -386,8 +476,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
386
476
  Provider shortcut for create agent --provider antigravity
387
477
 
388
478
  ```
389
- projmux create antigravity {--project <ref> | -p <ref>} [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
390
- projmux create antigravity [--placement right|down] [-o pane-id|none] [-- <payload>]
479
+ projmux create antigravity [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
391
480
  ```
392
481
 
393
482
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
@@ -397,29 +486,41 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
397
486
  Delete Projmux resources with an explicit cascade plan
398
487
 
399
488
  ```
400
- projmux delete window [<ref>...] [--project <ref> | -p <ref>] [--selector key=value]... [--all] [--dry-run] [--yes]
401
- projmux delete pane [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--dry-run] [--yes]
402
- projmux delete agent [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--dry-run] [--yes]
489
+ projmux delete project [<ref>...] [--selector key=value]... [--all] [--dry-run] [--yes]
490
+ projmux delete window [<ref>...] [--project <ref> | -p <ref>] [--selector key=value]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
491
+ projmux delete pane [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
492
+ projmux delete agent [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
403
493
  ```
404
494
 
405
495
  Subcommands:
406
496
 
407
497
  | Route | Summary |
408
498
  | --- | --- |
499
+ | [`projmux delete project`](#projmux-delete-project) | Explicitly unregister Projects and Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime |
409
500
  | [`projmux delete window`](#projmux-delete-window) | Delete Registry Windows and every descendant Agent and Pane, killing an exact live tmux mirror when present; no selector inside tmux means the active Window, and --all means every Window in the registry |
410
501
  | [`projmux delete pane`](#projmux-delete-pane) | Delete Panes; an Agent-owned current Pane leaves its Agent Offline; no selector inside tmux means the active Pane, and --all means every Pane in the registry |
411
502
  | [`projmux delete agent`](#projmux-delete-agent) | Delete Agents and their managed Panes; no selector inside tmux means the active Agent, and --all means every Agent in the registry |
412
503
  | [`projmux delete notification`](#projmux-delete-notification) | Delete pending notification rows |
413
504
  | [`projmux delete snapshot`](#projmux-delete-snapshot) | Delete saved session snapshots |
414
505
 
415
- Canonical spelling: `projmux delete window`, `projmux delete pane`, `projmux delete agent`, `projmux delete notification`, `projmux delete snapshot`
506
+ Canonical spelling: `projmux delete project`, `projmux delete window`, `projmux delete pane`, `projmux delete agent`, `projmux delete notification`, `projmux delete snapshot`
507
+
508
+ ### `projmux delete project`
509
+
510
+ Explicitly unregister Projects and Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime
511
+
512
+ ```
513
+ projmux delete project [<ref>...] [--selector key=value]... [--all] [--dry-run] [--yes]
514
+ ```
515
+
516
+ Aliases: `projects`
416
517
 
417
518
  ### `projmux delete window`
418
519
 
419
520
  Delete Registry Windows and every descendant Agent and Pane, killing an exact live tmux mirror when present; no selector inside tmux means the active Window, and --all means every Window in the registry
420
521
 
421
522
  ```
422
- projmux delete window [<ref>...] [--project <ref> | -p <ref>] [--selector key=value]... [--all] [--dry-run] [--yes]
523
+ projmux delete window [<ref>...] [--project <ref> | -p <ref>] [--selector key=value]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
423
524
  ```
424
525
 
425
526
  Aliases: `windows`
@@ -429,7 +530,7 @@ Aliases: `windows`
429
530
  Delete Panes; an Agent-owned current Pane leaves its Agent Offline; no selector inside tmux means the active Pane, and --all means every Pane in the registry
430
531
 
431
532
  ```
432
- projmux delete pane [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--dry-run] [--yes]
533
+ projmux delete pane [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
433
534
  ```
434
535
 
435
536
  Aliases: `panes`
@@ -439,7 +540,7 @@ Aliases: `panes`
439
540
  Delete Agents and their managed Panes; no selector inside tmux means the active Agent, and --all means every Agent in the registry
440
541
 
441
542
  ```
442
- projmux delete agent [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--dry-run] [--yes]
543
+ projmux delete agent [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
443
544
  ```
444
545
 
445
546
  Aliases: `agents`
@@ -480,9 +581,9 @@ Subcommands:
480
581
  | Route | Summary |
481
582
  | --- | --- |
482
583
  | [`projmux describe project`](#projmux-describe-project) | Describe one Project resource; with no selector inside tmux, the active Project |
483
- | [`projmux describe window`](#projmux-describe-window) | Describe one Window resource; with no selector inside tmux, the active Window |
484
- | [`projmux describe pane`](#projmux-describe-pane) | Describe one Pane resource; with no selector inside tmux, the active Pane |
485
- | [`projmux describe agent`](#projmux-describe-agent) | Describe one Agent resource; with no selector inside tmux, the Agent owning the active Pane |
584
+ | [`projmux describe window`](#projmux-describe-window) | Describe one Window resource; inside tmux a reference resolves within the active Project and no selector means the active Window |
585
+ | [`projmux describe pane`](#projmux-describe-pane) | Describe one Pane resource; inside tmux a reference resolves within the active Project and no selector means the active Pane |
586
+ | [`projmux describe agent`](#projmux-describe-agent) | Describe one Agent resource; inside tmux a reference resolves within the active Project and no selector means the Agent owning the active Pane |
486
587
 
487
588
  Canonical spelling: `projmux describe project`, `projmux describe window`, `projmux describe pane`, `projmux describe agent`
488
589
 
@@ -500,7 +601,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
500
601
 
501
602
  ### `projmux describe window`
502
603
 
503
- Describe one Window resource; with no selector inside tmux, the active Window
604
+ Describe one Window resource; inside tmux a reference resolves within the active Project and no selector means the active Window
504
605
 
505
606
  ```
506
607
  projmux describe window [<ref>] [--project <ref> | -p <ref>] [-o <mode>]
@@ -512,7 +613,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
512
613
 
513
614
  ### `projmux describe pane`
514
615
 
515
- Describe one Pane resource; with no selector inside tmux, the active Pane
616
+ Describe one Pane resource; inside tmux a reference resolves within the active Project and no selector means the active Pane
516
617
 
517
618
  ```
518
619
  projmux describe pane [<ref>] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [-o <mode>]
@@ -524,7 +625,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
524
625
 
525
626
  ### `projmux describe agent`
526
627
 
527
- Describe one Agent resource; with no selector inside tmux, the Agent owning the active Pane
628
+ Describe one Agent resource; inside tmux a reference resolves within the active Project and no selector means the Agent owning the active Pane
528
629
 
529
630
  ```
530
631
  projmux describe agent [<ref>] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [-o <mode>]
@@ -601,8 +702,8 @@ Subcommands:
601
702
  | Route | Summary |
602
703
  | --- | --- |
603
704
  | [`projmux focus project`](#projmux-focus-project) | Move the current client to an already-live Project; never materializes |
604
- | [`projmux focus window`](#projmux-focus-window) | Move the current client to an already-live Window; never materializes |
605
- | [`projmux focus pane`](#projmux-focus-pane) | Move the current client to an already-live Pane; never materializes |
705
+ | [`projmux focus window`](#projmux-focus-window) | Move the current client to an already-live Window in an exact live root session; never materializes |
706
+ | [`projmux focus pane`](#projmux-focus-pane) | Move the current client to an already-live Pane in an exact live root session; never materializes |
606
707
 
607
708
  Canonical spelling: `projmux focus project`, `projmux focus window`, `projmux focus pane`
608
709
 
@@ -616,7 +717,7 @@ projmux focus project <ref> [--socket <path>] [--client <tty>] [--json]
616
717
 
617
718
  ### `projmux focus window`
618
719
 
619
- Move the current client to an already-live Window; never materializes
720
+ Move the current client to an already-live Window in an exact live root session; never materializes
620
721
 
621
722
  ```
622
723
  projmux focus window <ref> {--project <ref> | -p <ref>} [--socket <path>] [--client <tty>] [--json]
@@ -624,7 +725,7 @@ projmux focus window <ref> {--project <ref> | -p <ref>} [--socket <path>] [--cli
624
725
 
625
726
  ### `projmux focus pane`
626
727
 
627
- Move the current client to an already-live Pane; never materializes
728
+ Move the current client to an already-live Pane in an exact live root session; never materializes
628
729
 
629
730
  ```
630
731
  projmux focus pane <ref> {--project <ref> | -p <ref>} {--window <ref> | -w <ref>} [--socket <path>] [--json]
@@ -641,6 +742,7 @@ projmux get panes [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [-
641
742
  projmux get agents [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
642
743
  projmux get pane --current -o cwd
643
744
  projmux get pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [-o <mode>]
745
+ projmux get runtime sessions|windows|panes [--socket <name> | --socket-path <absolute>] [-o json|none]
644
746
  ```
645
747
 
646
748
  Subcommands:
@@ -648,14 +750,15 @@ Subcommands:
648
750
  | Route | Summary |
649
751
  | --- | --- |
650
752
  | [`projmux get projects`](#projmux-get-projects) | List Project resources |
651
- | [`projmux get windows`](#projmux-get-windows) | List Window resources; inside tmux defaults to the active Project, and --all-projects lists every Project |
652
- | [`projmux get panes`](#projmux-get-panes) | List Pane resources; inside tmux defaults to the active Project, and --all-projects lists every Project |
653
- | [`projmux get agents`](#projmux-get-agents) | List Agent resources; inside tmux defaults to the active Project, and --all-projects lists every Project |
753
+ | [`projmux get windows`](#projmux-get-windows) | List Window resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
754
+ | [`projmux get panes`](#projmux-get-panes) | List Pane resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
755
+ | [`projmux get agents`](#projmux-get-agents) | List Agent resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
756
+ | [`projmux get runtime`](#projmux-get-runtime) | List every tmux Session, Window, and Pane on one exact server with its attribution |
654
757
  | [`projmux get notifications`](#projmux-get-notifications) | List pending notification rows |
655
758
  | [`projmux get snapshots`](#projmux-get-snapshots) | List saved session snapshots |
656
759
  | [`projmux get pane`](#projmux-get-pane) | Read one Pane resource; with no selector inside tmux, the active Pane |
657
760
 
658
- Canonical spelling: `projmux get projects`, `projmux get windows`, `projmux get panes`, `projmux get agents`, `projmux get notifications`, `projmux get snapshots`, `projmux get pane`
761
+ Canonical spelling: `projmux get projects`, `projmux get windows`, `projmux get panes`, `projmux get agents`, `projmux get runtime sessions`, `projmux get runtime windows`, `projmux get runtime panes`, `projmux get notifications`, `projmux get snapshots`, `projmux get pane`
659
762
 
660
763
  ### `projmux get projects`
661
764
 
@@ -671,7 +774,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
671
774
 
672
775
  ### `projmux get windows`
673
776
 
674
- List Window resources; inside tmux defaults to the active Project, and --all-projects lists every Project
777
+ List Window resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
675
778
 
676
779
  ```
677
780
  projmux get windows [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
@@ -683,7 +786,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
683
786
 
684
787
  ### `projmux get panes`
685
788
 
686
- List Pane resources; inside tmux defaults to the active Project, and --all-projects lists every Project
789
+ List Pane resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
687
790
 
688
791
  ```
689
792
  projmux get panes [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
@@ -693,7 +796,7 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
693
796
 
694
797
  ### `projmux get agents`
695
798
 
696
- List Agent resources; inside tmux defaults to the active Project, and --all-projects lists every Project
799
+ List Agent resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
697
800
 
698
801
  ```
699
802
  projmux get agents [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
@@ -703,6 +806,56 @@ Aliases: `agent`
703
806
 
704
807
  Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
705
808
 
809
+ ### `projmux get runtime`
810
+
811
+ List every tmux Session, Window, and Pane on one exact server with its attribution
812
+
813
+ ```
814
+ projmux get runtime sessions [--socket <name> | --socket-path <absolute>] [-o json|none]
815
+ projmux get runtime windows [--socket <name> | --socket-path <absolute>] [-o json|none]
816
+ projmux get runtime panes [--socket <name> | --socket-path <absolute>] [-o json|none]
817
+ ```
818
+
819
+ Subcommands:
820
+
821
+ | Route | Summary |
822
+ | --- | --- |
823
+ | [`projmux get runtime sessions`](#projmux-get-runtime-sessions) | List every tmux session on one exact server with its attribution |
824
+ | [`projmux get runtime windows`](#projmux-get-runtime-windows) | List every tmux window on one exact server with its attribution |
825
+ | [`projmux get runtime panes`](#projmux-get-runtime-panes) | List every tmux pane on one exact server with its attribution |
826
+
827
+ Canonical spelling: `projmux get runtime sessions`, `projmux get runtime windows`, `projmux get runtime panes`
828
+
829
+ #### `projmux get runtime sessions`
830
+
831
+ List every tmux session on one exact server with its attribution
832
+
833
+ ```
834
+ projmux get runtime sessions [--socket <name> | --socket-path <absolute>] [-o json|none]
835
+ ```
836
+
837
+ Output modes (`-o`): `json`, `none`
838
+
839
+ #### `projmux get runtime windows`
840
+
841
+ List every tmux window on one exact server with its attribution
842
+
843
+ ```
844
+ projmux get runtime windows [--socket <name> | --socket-path <absolute>] [-o json|none]
845
+ ```
846
+
847
+ Output modes (`-o`): `json`, `none`
848
+
849
+ #### `projmux get runtime panes`
850
+
851
+ List every tmux pane on one exact server with its attribution
852
+
853
+ ```
854
+ projmux get runtime panes [--socket <name> | --socket-path <absolute>] [-o json|none]
855
+ ```
856
+
857
+ Output modes (`-o`): `json`, `none`
858
+
706
859
  ### `projmux get notifications`
707
860
 
708
861
  List pending notification rows
@@ -904,24 +1057,34 @@ Preview or repair Registry and exact tmux resource drift
904
1057
 
905
1058
  ```
906
1059
  projmux reconcile resources [--dry-run] [--materialize-project <name|uid:uid>] [--socket <name> | --socket-path <absolute>] [-o json]
1060
+ projmux reconcile registry [--dry-run] [--source <name|absolute-path>] [--expect-source-checksum <sha256:hex>] [--expect-current-checksum <sha256:hex>] [--socket <name> | --socket-path <absolute>] [-o json]
907
1061
  ```
908
1062
 
909
1063
  Subcommands:
910
1064
 
911
1065
  | Route | Summary |
912
1066
  | --- | --- |
913
- | [`projmux reconcile resources`](#projmux-reconcile-resources) | Preview or repair safe Registry and tmux UID, owner, and runtime drift on one exact socket |
1067
+ | [`projmux reconcile resources`](#projmux-reconcile-resources) | Preview or repair exact anchor-aware Registry and tmux topology on one exact socket |
1068
+ | [`projmux reconcile registry`](#projmux-reconcile-registry) | Plan Registry state-loss recovery with zero writes, then restore one explicitly named verified source |
914
1069
 
915
- Canonical spelling: `projmux reconcile resources`
1070
+ Canonical spelling: `projmux reconcile resources`, `projmux reconcile registry`
916
1071
 
917
1072
  ### `projmux reconcile resources`
918
1073
 
919
- Preview or repair safe Registry and tmux UID, owner, and runtime drift on one exact socket
1074
+ Preview or repair exact anchor-aware Registry and tmux topology on one exact socket
920
1075
 
921
1076
  ```
922
1077
  projmux reconcile resources [--dry-run] [--materialize-project <name|uid:uid>] [--socket <name> | --socket-path <absolute>] [-o json]
923
1078
  ```
924
1079
 
1080
+ ### `projmux reconcile registry`
1081
+
1082
+ Plan Registry state-loss recovery with zero writes, then restore one explicitly named verified source
1083
+
1084
+ ```
1085
+ projmux reconcile registry [--dry-run] [--source <name|absolute-path>] [--expect-source-checksum <sha256:hex>] [--expect-current-checksum <sha256:hex>] [--socket <name> | --socket-path <absolute>] [-o json]
1086
+ ```
1087
+
925
1088
  ## `projmux rebind`
926
1089
 
927
1090
  Rebind a Project to a new absolute root without moving files
@@ -962,9 +1125,9 @@ Subcommands:
962
1125
  | Route | Summary |
963
1126
  | --- | --- |
964
1127
  | [`projmux rename project`](#projmux-rename-project) | Rename a Projmux Project resource; with no selector inside tmux, the active Project |
965
- | [`projmux rename window`](#projmux-rename-window) | Rename a Projmux Window resource; with no selector inside tmux, the active Window |
966
- | [`projmux rename pane`](#projmux-rename-pane) | Rename a Projmux Pane resource; with no selector inside tmux, the active Pane; does not change tmux pane_title |
967
- | [`projmux rename agent`](#projmux-rename-agent) | Rename an Agent stable resource name without changing its topic, provider, or managed Pane |
1128
+ | [`projmux rename window`](#projmux-rename-window) | Rename a Projmux Window resource; inside tmux a reference resolves within the active Project or ControlSession and no selector means the active Window |
1129
+ | [`projmux rename pane`](#projmux-rename-pane) | Rename a Projmux Pane resource; inside tmux a reference resolves within the active Project or ControlSession and no selector means the active Pane; does not change tmux pane_title |
1130
+ | [`projmux rename agent`](#projmux-rename-agent) | Rename an Agent stable resource name within the active Project or ControlSession without changing its topic, provider, or managed Pane |
968
1131
 
969
1132
  Canonical spelling: `projmux rename project`, `projmux rename window`, `projmux rename pane`, `projmux rename agent`
970
1133
 
@@ -980,7 +1143,7 @@ Aliases: `projects`
980
1143
 
981
1144
  ### `projmux rename window`
982
1145
 
983
- Rename a Projmux Window resource; with no selector inside tmux, the active Window
1146
+ Rename a Projmux Window resource; inside tmux a reference resolves within the active Project or ControlSession and no selector means the active Window
984
1147
 
985
1148
  ```
986
1149
  projmux rename window [<ref>] --name <name> [--project <ref> | -p <ref>]
@@ -990,7 +1153,7 @@ Aliases: `windows`
990
1153
 
991
1154
  ### `projmux rename pane`
992
1155
 
993
- Rename a Projmux Pane resource; with no selector inside tmux, the active Pane; does not change tmux pane_title
1156
+ Rename a Projmux Pane resource; inside tmux a reference resolves within the active Project or ControlSession and no selector means the active Pane; does not change tmux pane_title
994
1157
 
995
1158
  ```
996
1159
  projmux rename pane [<ref>] --name <name> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]...
@@ -1000,7 +1163,7 @@ Aliases: `panes`
1000
1163
 
1001
1164
  ### `projmux rename agent`
1002
1165
 
1003
- Rename an Agent stable resource name without changing its topic, provider, or managed Pane
1166
+ Rename an Agent stable resource name within the active Project or ControlSession without changing its topic, provider, or managed Pane
1004
1167
 
1005
1168
  ```
1006
1169
  projmux rename agent [<ref>] --name <name> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]...
@@ -1018,26 +1181,26 @@ projmux resources
1018
1181
 
1019
1182
  ## `projmux restore`
1020
1183
 
1021
- Preview a saved session snapshot restore (--dry-run only in this release)
1184
+ Project a saved snapshot into one exact closed Project desired state
1022
1185
 
1023
1186
  ```
1024
- projmux restore snapshot --dry-run [--session <name>]
1187
+ projmux restore snapshot --session <name> [--project <ref> | -p <ref>] [--dry-run | --yes] [--client <tmux-client>]
1025
1188
  ```
1026
1189
 
1027
1190
  Subcommands:
1028
1191
 
1029
1192
  | Route | Summary |
1030
1193
  | --- | --- |
1031
- | [`projmux restore snapshot`](#projmux-restore-snapshot) | Preview a saved session snapshot restore; --dry-run is required |
1194
+ | [`projmux restore snapshot`](#projmux-restore-snapshot) | Project a saved snapshot into one exact closed Project desired state |
1032
1195
 
1033
1196
  Canonical spelling: `projmux restore snapshot`
1034
1197
 
1035
1198
  ### `projmux restore snapshot`
1036
1199
 
1037
- Preview a saved session snapshot restore; --dry-run is required
1200
+ Project a saved snapshot into one exact closed Project desired state
1038
1201
 
1039
1202
  ```
1040
- projmux restore snapshot --dry-run [--session <name>]
1203
+ projmux restore snapshot --session <name> [--project <ref> | -p <ref>] [--dry-run | --yes] [--client <tmux-client>]
1041
1204
  ```
1042
1205
 
1043
1206
  ## `projmux runtime`
@@ -1046,6 +1209,7 @@ Manage the live and ephemeral tmux runtime inventory
1046
1209
 
1047
1210
  ```
1048
1211
  projmux runtime sessions [--ui=popup|sidebar]
1212
+ projmux runtime diagnostics [--socket <name> | --socket-path <absolute>] [--ui=popup|sidebar]
1049
1213
  projmux runtime attach [--keep=N] [--fallback=home|ephemeral]
1050
1214
  projmux runtime stop [<session>...]
1051
1215
  projmux runtime tag list|toggle|clear
@@ -1057,12 +1221,13 @@ Subcommands:
1057
1221
  | Route | Summary |
1058
1222
  | --- | --- |
1059
1223
  | [`projmux runtime sessions`](#projmux-runtime-sessions) | Pick a live or ephemeral tmux session |
1224
+ | [`projmux runtime diagnostics`](#projmux-runtime-diagnostics) | Inspect every tmux object on one exact server, with attribution and safe actions |
1060
1225
  | [`projmux runtime attach`](#projmux-runtime-attach) | Attach a live or ephemeral runtime without Project identity |
1061
1226
  | [`projmux runtime stop`](#projmux-runtime-stop) | Terminate live tmux sessions by tagged selection |
1062
1227
  | [`projmux runtime tag`](#projmux-runtime-tag) | Manage the ephemeral tagged session selection |
1063
1228
  | [`projmux runtime prune`](#projmux-runtime-prune) | Trim old ephemeral tmux sessions |
1064
1229
 
1065
- Canonical spelling: `projmux runtime sessions`, `projmux runtime attach`, `projmux runtime stop`, `projmux runtime tag`, `projmux runtime prune`
1230
+ Canonical spelling: `projmux runtime sessions`, `projmux runtime diagnostics`, `projmux runtime attach`, `projmux runtime stop`, `projmux runtime tag`, `projmux runtime prune`
1066
1231
 
1067
1232
  ### `projmux runtime sessions`
1068
1233
 
@@ -1072,6 +1237,14 @@ Pick a live or ephemeral tmux session
1072
1237
  projmux runtime sessions
1073
1238
  ```
1074
1239
 
1240
+ ### `projmux runtime diagnostics`
1241
+
1242
+ Inspect every tmux object on one exact server, with attribution and safe actions
1243
+
1244
+ ```
1245
+ projmux runtime diagnostics [--socket <name> | --socket-path <absolute>] [--ui=popup|sidebar]
1246
+ ```
1247
+
1075
1248
  ### `projmux runtime attach`
1076
1249
 
1077
1250
  Attach a live or ephemeral runtime without Project identity
@@ -1260,4 +1433,3 @@ Print the current version
1260
1433
  projmux version
1261
1434
  projmux --version
1262
1435
  ```
1263
-