projmux 0.14.2 → 0.15.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
@@ -35,6 +35,23 @@ Root parser bridges outside the route graph are censused from their parser token
35
35
  | `--version` | `explicit-fan-out` |
36
36
  | `-version` | `explicit-fan-out` |
37
37
 
38
+ ## Command effects
39
+
40
+ Every route declares one allowed-effect record over seven independent resource axes. A pipe separates conditional success outcomes; preflight refusal remains zero-effect. `domain-effect=null` means the route has no typed extension beyond this resource tuple.
41
+
42
+ The machine-readable manifest contains 190 route-effect records, including hidden plumbing that the public route sections omit.
43
+
44
+ | Axis | Closed vocabulary |
45
+ | --- | --- |
46
+ | `identity` | `unchanged|created|reused|removed|replaced` |
47
+ | `address` | `unchanged|allocated|renamed|released` |
48
+ | `topology` | `unchanged|established|reparented|removed|replaced` |
49
+ | `desired-state` | `unchanged|created|reused|removed|replaced` |
50
+ | `runtime` | `unchanged|materialized|already-live|reparented|stopped|preserved` |
51
+ | `focus` | `unchanged|moved-current-client|attached-caller` |
52
+ | `cardinality` | `unchanged|exact-one|one-or-more|zero-or-more` |
53
+ | `domain-effect` | `null|agent-delivery` |
54
+
38
55
  ## Commands
39
56
 
40
57
  ```
@@ -43,7 +60,7 @@ projmux <command> [args...]
43
60
 
44
61
  | Command | Kind | Summary |
45
62
  | --- | --- | --- |
46
- | [`projmux agent`](#projmux-agent) | canonical | Manage Agent state, topic, integrations, and account usage |
63
+ | [`projmux agent`](#projmux-agent) | canonical | Manage Agent state, messages, waits, capabilities, integrations, and account usage |
47
64
  | [`projmux attention`](#projmux-attention) | canonical | View and manage live tmux pane attention state |
48
65
  | [`projmux attach`](#projmux-attach) | canonical | Enter a Project runtime from outside tmux |
49
66
  | [`projmux config`](#projmux-config) | canonical | Edit AI split-mode settings; render or apply generated tmux configuration |
@@ -56,6 +73,7 @@ projmux <command> [args...]
56
73
  | [`projmux get`](#projmux-get) | canonical | Read Projmux resources by selector |
57
74
  | [`projmux hook`](#projmux-hook) | canonical | List, edit, validate, and trust lifecycle hook config |
58
75
  | [`projmux notification`](#projmux-notification) | canonical | Manage pending notification workflow state |
76
+ | [`projmux open`](#projmux-open) | canonical | Open a Project runtime and move the current client to it |
59
77
  | [`projmux pin`](#projmux-pin) | canonical | Manage pinned project directories |
60
78
  | [`projmux prune`](#projmux-prune) | canonical | Prune stale Projects and snapshots |
61
79
  | [`projmux quit`](#projmux-quit) | shortcut | Quit the app-owned projmux tmux runtime |
@@ -68,7 +86,10 @@ projmux <command> [args...]
68
86
  | [`projmux settings`](#projmux-settings) | shortcut | Configure projmux |
69
87
  | [`projmux setup`](#projmux-setup) | canonical | Probe terminal keys or remediate them with setup terminal |
70
88
  | [`projmux shell`](#projmux-shell) | shortcut | Open the isolated projmux tmux app |
71
- | [`projmux switch`](#projmux-switch) | shortcut | Pick and open a project tmux session |
89
+ | [`projmux start`](#projmux-start) | canonical | Start a Project runtime without moving any client |
90
+ | [`projmux stop`](#projmux-stop) | canonical | Stop a Project runtime without unregistering anything |
91
+ | [`projmux switch`](#projmux-switch) | shortcut | Pick a project and compose create project with open project |
92
+ | [`projmux unregister`](#projmux-unregister) | canonical | Unregister Projects from the Registry while preserving runtime and files |
72
93
  | [`projmux update`](#projmux-update) | canonical | Check installer-aware release update status |
73
94
  | [`projmux welcome`](#projmux-welcome) | shortcut | Reprint the shell welcome guide |
74
95
  | [`projmux window`](#projmux-window) | canonical | Open recent window navigation surfaces |
@@ -77,10 +98,21 @@ projmux <command> [args...]
77
98
 
78
99
  ## `projmux agent`
79
100
 
80
- Manage Agent state, topic, integrations, and account usage
101
+ Manage Agent state, messages, waits, capabilities, integrations, and account usage
81
102
 
82
103
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
83
104
 
105
+ Allowed effects:
106
+
107
+ - `identity=unchanged`
108
+ - `address=unchanged`
109
+ - `topology=unchanged`
110
+ - `desired-state=unchanged`
111
+ - `runtime=unchanged`
112
+ - `focus=unchanged`
113
+ - `cardinality=unchanged`
114
+ - `domain-effect=null`
115
+
84
116
  ```
85
117
  projmux agent status [get [<agent-ref>] | set <unknown|idle|in_progress|approval_required|input_required|response_complete> [<agent-ref>]] [--agent <ref>]
86
118
  projmux agent topic get|clear [<agent-ref>] [--agent <ref>]
@@ -90,8 +122,18 @@ projmux agent turn start|steer <agent-ref> -- <text>
90
122
  projmux agent turn interrupt <agent-ref>
91
123
  projmux agent approval review <agent-ref> [--request <normalized-id>]
92
124
  projmux agent review [<agent-ref>] [--agent <ref>] [--base <branch> | --commit <sha> | --instructions <text>]
93
- projmux agent integrate <provider> [--dry-run]
94
- projmux agent usage [--model <name>] [--window <name>] [--json] [--force]
125
+ projmux agent integrate <codex|claude|antigravity|tmux-bell> [--remove] [--dry-run]
126
+ projmux agent usage [--model <codex|claude|antigravity|all>] [--window <name>] [--json] [--force]
127
+ projmux agent app-server upgrade qualify --receipt <absolute-json>
128
+ projmux agent app-server upgrade plan|apply --request <absolute-json>
129
+ projmux agent app-server upgrade resume|abort --operation <ref>
130
+ projmux agent app-server handover plan|apply --request <absolute-json>
131
+ projmux agent app-server handover resume|abort --operation <ref>
132
+ projmux agent capabilities [<agent-ref> | --provider <codex|claude|antigravity>] [-o json]
133
+ projmux agent message send <agent-ref> [--message-ref <ref>] [--reply-to <ref>] [--ttl <duration>] -- <text>
134
+ projmux agent message status <message-ref> [-o json]
135
+ projmux agent message qualify <claude-agent-ref> --evidence <absolute-private-json> --confirm-isolated-provider-push -o json
136
+ projmux agent wait <agent-ref> [--until idle] [--timeout <duration>] [-o json]
95
137
  ```
96
138
 
97
139
  Subcommands:
@@ -104,10 +146,14 @@ Subcommands:
104
146
  | [`projmux agent turn`](#projmux-agent-turn) | Send, steer, or interrupt one exact native Codex turn |
105
147
  | [`projmux agent approval`](#projmux-agent-approval) | Review one exact pending native Codex approval |
106
148
  | [`projmux agent review`](#projmux-agent-review) | Start a native review on an exact-bound Codex Agent |
107
- | [`projmux agent integrate`](#projmux-agent-integrate) | Install or remove provider hook integrations |
149
+ | [`projmux agent integrate`](#projmux-agent-integrate) | Install, remove, or preview provider hooks and tmux-bell integration |
108
150
  | [`projmux agent usage`](#projmux-agent-usage) | Read provider account usage quota snapshots |
151
+ | [`projmux agent app-server`](#projmux-agent-app-server) | Manage explicitly requested private Codex app-server generation operations |
152
+ | [`projmux agent capabilities`](#projmux-agent-capabilities) | Read static provider support or one exact Agent's Registry-backed runtime eligibility |
153
+ | [`projmux agent message`](#projmux-agent-message) | Exchange bounded untrusted coordination messages through exact Agent activations |
154
+ | [`projmux agent wait`](#projmux-agent-wait) | Wait read-only for one exact Agent's Registry-backed idle observation |
109
155
 
110
- 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`
156
+ 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`, `projmux agent app-server upgrade qualify`, `projmux agent app-server upgrade plan`, `projmux agent app-server upgrade apply`, `projmux agent app-server upgrade resume`, `projmux agent app-server upgrade abort`, `projmux agent app-server handover plan`, `projmux agent app-server handover apply`, `projmux agent app-server handover resume`, `projmux agent app-server handover abort`, `projmux agent capabilities`, `projmux agent message send`, `projmux agent message status`, `projmux agent message qualify`, `projmux agent wait`
111
157
 
112
158
  ### `projmux agent status`
113
159
 
@@ -115,6 +161,17 @@ Read or set semantic Agent interaction independently of lifecycle
115
161
 
116
162
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
117
163
 
164
+ Allowed effects:
165
+
166
+ - `identity=unchanged`
167
+ - `address=unchanged`
168
+ - `topology=unchanged`
169
+ - `desired-state=unchanged`
170
+ - `runtime=unchanged`
171
+ - `focus=unchanged`
172
+ - `cardinality=exact-one`
173
+ - `domain-effect=null`
174
+
118
175
  ```
119
176
  projmux agent status [get [<agent-ref>] | set <unknown|idle|in_progress|approval_required|input_required|response_complete> [<agent-ref>]] [--agent <ref>]
120
177
  ```
@@ -125,6 +182,17 @@ Read, set, or clear one exact Agent topic annotation
125
182
 
126
183
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
127
184
 
185
+ Allowed effects:
186
+
187
+ - `identity=unchanged`
188
+ - `address=unchanged`
189
+ - `topology=unchanged`
190
+ - `desired-state=unchanged`
191
+ - `runtime=unchanged`
192
+ - `focus=unchanged`
193
+ - `cardinality=exact-one`
194
+ - `domain-effect=null`
195
+
128
196
  ```
129
197
  projmux agent topic get|clear [<agent-ref>] [--agent <ref>]
130
198
  projmux agent topic set <text> [<agent-ref>] [--agent <ref>]
@@ -136,6 +204,17 @@ Rebind an Offline or Failed Agent detached on its Window's exact shell or Agent
136
204
 
137
205
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
138
206
 
207
+ Allowed effects:
208
+
209
+ - `identity=reused|created`
210
+ - `address=unchanged|allocated`
211
+ - `topology=unchanged|established`
212
+ - `desired-state=unchanged|created`
213
+ - `runtime=materialized`
214
+ - `focus=unchanged`
215
+ - `cardinality=exact-one`
216
+ - `domain-effect=null`
217
+
139
218
  ```
140
219
  projmux agent resume <ref> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]...
141
220
  ```
@@ -146,6 +225,17 @@ Send, steer, or interrupt one exact native Codex turn
146
225
 
147
226
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
148
227
 
228
+ Allowed effects:
229
+
230
+ - `identity=unchanged`
231
+ - `address=unchanged`
232
+ - `topology=unchanged`
233
+ - `desired-state=unchanged`
234
+ - `runtime=unchanged`
235
+ - `focus=unchanged`
236
+ - `cardinality=exact-one`
237
+ - `domain-effect=null`
238
+
149
239
  ```
150
240
  projmux agent turn start|steer <agent-ref> -- <text>
151
241
  projmux agent turn interrupt <agent-ref>
@@ -156,7 +246,7 @@ Subcommands:
156
246
  | Route | Summary |
157
247
  | --- | --- |
158
248
  | [`projmux agent turn start`](#projmux-agent-turn-start) | Send a new turn to one exact idle Codex thread |
159
- | [`projmux agent turn steer`](#projmux-agent-turn-steer) | Steer one exact current Codex turn |
249
+ | [`projmux agent turn steer`](#projmux-agent-turn-steer) | Request provider acceptance for one exact current Codex turn; delivery remains unconfirmed |
160
250
  | [`projmux agent turn interrupt`](#projmux-agent-turn-interrupt) | Interrupt one exact current Codex turn |
161
251
 
162
252
  Canonical spelling: `projmux agent turn start`, `projmux agent turn steer`, `projmux agent turn interrupt`
@@ -167,16 +257,38 @@ Send a new turn to one exact idle Codex thread
167
257
 
168
258
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
169
259
 
260
+ Allowed effects:
261
+
262
+ - `identity=unchanged`
263
+ - `address=unchanged`
264
+ - `topology=unchanged`
265
+ - `desired-state=unchanged`
266
+ - `runtime=unchanged`
267
+ - `focus=unchanged`
268
+ - `cardinality=exact-one`
269
+ - `domain-effect=null`
270
+
170
271
  ```
171
272
  projmux agent turn start <agent-ref> -- <text>
172
273
  ```
173
274
 
174
275
  #### `projmux agent turn steer`
175
276
 
176
- Steer one exact current Codex turn
277
+ Request provider acceptance for one exact current Codex turn; delivery remains unconfirmed
177
278
 
178
279
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
179
280
 
281
+ Allowed effects:
282
+
283
+ - `identity=unchanged`
284
+ - `address=unchanged`
285
+ - `topology=unchanged`
286
+ - `desired-state=unchanged`
287
+ - `runtime=unchanged`
288
+ - `focus=unchanged`
289
+ - `cardinality=exact-one`
290
+ - `domain-effect=null`
291
+
180
292
  ```
181
293
  projmux agent turn steer <agent-ref> -- <text>
182
294
  ```
@@ -187,6 +299,17 @@ Interrupt one exact current Codex turn
187
299
 
188
300
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
189
301
 
302
+ Allowed effects:
303
+
304
+ - `identity=unchanged`
305
+ - `address=unchanged`
306
+ - `topology=unchanged`
307
+ - `desired-state=unchanged`
308
+ - `runtime=unchanged`
309
+ - `focus=unchanged`
310
+ - `cardinality=exact-one`
311
+ - `domain-effect=null`
312
+
190
313
  ```
191
314
  projmux agent turn interrupt <agent-ref>
192
315
  ```
@@ -197,6 +320,17 @@ Review one exact pending native Codex approval
197
320
 
198
321
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
199
322
 
323
+ Allowed effects:
324
+
325
+ - `identity=unchanged`
326
+ - `address=unchanged`
327
+ - `topology=unchanged`
328
+ - `desired-state=unchanged`
329
+ - `runtime=unchanged`
330
+ - `focus=unchanged`
331
+ - `cardinality=unchanged`
332
+ - `domain-effect=null`
333
+
200
334
  ```
201
335
  projmux agent approval review <agent-ref> [--request <normalized-id>]
202
336
  ```
@@ -215,6 +349,17 @@ Review one exact pending native Codex approval
215
349
 
216
350
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
217
351
 
352
+ Allowed effects:
353
+
354
+ - `identity=unchanged`
355
+ - `address=unchanged`
356
+ - `topology=unchanged`
357
+ - `desired-state=unchanged`
358
+ - `runtime=unchanged`
359
+ - `focus=unchanged`
360
+ - `cardinality=unchanged`
361
+ - `domain-effect=null`
362
+
218
363
  ```
219
364
  projmux agent approval review <agent-ref> [--request <normalized-id>]
220
365
  ```
@@ -225,18 +370,40 @@ Start a native review on an exact-bound Codex Agent
225
370
 
226
371
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
227
372
 
373
+ Allowed effects:
374
+
375
+ - `identity=unchanged`
376
+ - `address=unchanged`
377
+ - `topology=unchanged`
378
+ - `desired-state=unchanged`
379
+ - `runtime=unchanged`
380
+ - `focus=unchanged`
381
+ - `cardinality=unchanged`
382
+ - `domain-effect=null`
383
+
228
384
  ```
229
385
  projmux agent review [<agent-ref>] [--agent <ref>] [--base <branch> | --commit <sha> | --instructions <text>]
230
386
  ```
231
387
 
232
388
  ### `projmux agent integrate`
233
389
 
234
- Install or remove provider hook integrations
390
+ Install, remove, or preview provider hooks and tmux-bell integration
235
391
 
236
392
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
237
393
 
394
+ Allowed effects:
395
+
396
+ - `identity=unchanged`
397
+ - `address=unchanged`
398
+ - `topology=unchanged`
399
+ - `desired-state=unchanged`
400
+ - `runtime=unchanged`
401
+ - `focus=unchanged`
402
+ - `cardinality=unchanged`
403
+ - `domain-effect=null`
404
+
238
405
  ```
239
- projmux agent integrate <provider> [--dry-run]
406
+ projmux agent integrate <codex|claude|antigravity|tmux-bell> [--remove] [--dry-run]
240
407
  ```
241
408
 
242
409
  ### `projmux agent usage`
@@ -245,16 +412,468 @@ Read provider account usage quota snapshots
245
412
 
246
413
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
247
414
 
415
+ Allowed effects:
416
+
417
+ - `identity=unchanged`
418
+ - `address=unchanged`
419
+ - `topology=unchanged`
420
+ - `desired-state=unchanged`
421
+ - `runtime=unchanged`
422
+ - `focus=unchanged`
423
+ - `cardinality=unchanged`
424
+ - `domain-effect=null`
425
+
426
+ ```
427
+ projmux agent usage [--model <codex|claude|antigravity|all>] [--window <name>] [--json] [--force]
428
+ ```
429
+
430
+ ### `projmux agent app-server`
431
+
432
+ Manage explicitly requested private Codex app-server generation operations
433
+
434
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
435
+
436
+ Allowed effects:
437
+
438
+ - `identity=unchanged`
439
+ - `address=unchanged`
440
+ - `topology=unchanged`
441
+ - `desired-state=unchanged`
442
+ - `runtime=unchanged`
443
+ - `focus=unchanged`
444
+ - `cardinality=unchanged`
445
+ - `domain-effect=null`
446
+
447
+ ```
448
+ projmux agent app-server
449
+ ```
450
+
451
+ Subcommands:
452
+
453
+ | Route | Summary |
454
+ | --- | --- |
455
+ | [`projmux agent app-server upgrade`](#projmux-agent-app-server-upgrade) | Plan, apply, resume, or abort one exact rolling generation operation |
456
+ | [`projmux agent app-server handover`](#projmux-agent-app-server-handover) | Plan, apply, resume, or abort one exact generation-wide handover |
457
+
458
+ Canonical spelling: `projmux agent app-server upgrade qualify`, `projmux agent app-server upgrade plan`, `projmux agent app-server upgrade apply`, `projmux agent app-server upgrade resume`, `projmux agent app-server upgrade abort`, `projmux agent app-server handover plan`, `projmux agent app-server handover apply`, `projmux agent app-server handover resume`, `projmux agent app-server handover abort`
459
+
460
+ #### `projmux agent app-server upgrade`
461
+
462
+ Plan, apply, resume, or abort one exact rolling generation operation
463
+
464
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
465
+
466
+ Allowed effects:
467
+
468
+ - `identity=unchanged`
469
+ - `address=unchanged`
470
+ - `topology=unchanged`
471
+ - `desired-state=unchanged`
472
+ - `runtime=unchanged`
473
+ - `focus=unchanged`
474
+ - `cardinality=unchanged`
475
+ - `domain-effect=null`
476
+
477
+ ```
478
+ projmux agent app-server upgrade
479
+ ```
480
+
481
+ Subcommands:
482
+
483
+ | Route | Summary |
484
+ | --- | --- |
485
+ | [`projmux agent app-server upgrade qualify`](#projmux-agent-app-server-upgrade-qualify) | Install one measured version-pair qualification receipt for the generation entry paths |
486
+ | [`projmux agent app-server upgrade plan`](#projmux-agent-app-server-upgrade-plan) | Read the mutation-zero plan for one exact private generation upgrade |
487
+ | [`projmux agent app-server upgrade apply`](#projmux-agent-app-server-upgrade-apply) | Apply one exact crash-resumable private generation admission switch |
488
+ | [`projmux agent app-server upgrade resume`](#projmux-agent-app-server-upgrade-resume) | Resume one exact durable rolling generation operation |
489
+ | [`projmux agent app-server upgrade abort`](#projmux-agent-app-server-upgrade-abort) | Abort one pre-admission operation and clean only its exact candidate |
490
+
491
+ Canonical spelling: `projmux agent app-server upgrade qualify`, `projmux agent app-server upgrade plan`, `projmux agent app-server upgrade apply`, `projmux agent app-server upgrade resume`, `projmux agent app-server upgrade abort`
492
+
493
+ ##### `projmux agent app-server upgrade qualify`
494
+
495
+ Install one measured version-pair qualification receipt for the generation entry paths
496
+
497
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
498
+
499
+ Allowed effects:
500
+
501
+ - `identity=unchanged`
502
+ - `address=unchanged`
503
+ - `topology=unchanged`
504
+ - `desired-state=unchanged`
505
+ - `runtime=unchanged`
506
+ - `focus=unchanged`
507
+ - `cardinality=unchanged`
508
+ - `domain-effect=null`
509
+
510
+ ```
511
+ projmux agent app-server upgrade qualify --receipt <absolute-json>
512
+ ```
513
+
514
+ ##### `projmux agent app-server upgrade plan`
515
+
516
+ Read the mutation-zero plan for one exact private generation upgrade
517
+
518
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
519
+
520
+ Allowed effects:
521
+
522
+ - `identity=unchanged`
523
+ - `address=unchanged`
524
+ - `topology=unchanged`
525
+ - `desired-state=unchanged`
526
+ - `runtime=unchanged`
527
+ - `focus=unchanged`
528
+ - `cardinality=unchanged`
529
+ - `domain-effect=null`
530
+
531
+ ```
532
+ projmux agent app-server upgrade plan --request <absolute-json>
533
+ ```
534
+
535
+ ##### `projmux agent app-server upgrade apply`
536
+
537
+ Apply one exact crash-resumable private generation admission switch
538
+
539
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
540
+
541
+ Allowed effects:
542
+
543
+ - `identity=unchanged`
544
+ - `address=unchanged`
545
+ - `topology=unchanged`
546
+ - `desired-state=unchanged`
547
+ - `runtime=unchanged`
548
+ - `focus=unchanged`
549
+ - `cardinality=unchanged`
550
+ - `domain-effect=null`
551
+
552
+ ```
553
+ projmux agent app-server upgrade apply --request <absolute-json>
554
+ ```
555
+
556
+ ##### `projmux agent app-server upgrade resume`
557
+
558
+ Resume one exact durable rolling generation operation
559
+
560
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
561
+
562
+ Allowed effects:
563
+
564
+ - `identity=unchanged`
565
+ - `address=unchanged`
566
+ - `topology=unchanged`
567
+ - `desired-state=unchanged`
568
+ - `runtime=unchanged`
569
+ - `focus=unchanged`
570
+ - `cardinality=unchanged`
571
+ - `domain-effect=null`
572
+
573
+ ```
574
+ projmux agent app-server upgrade resume --operation <ref>
575
+ ```
576
+
577
+ ##### `projmux agent app-server upgrade abort`
578
+
579
+ Abort one pre-admission operation and clean only its exact candidate
580
+
581
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
582
+
583
+ Allowed effects:
584
+
585
+ - `identity=unchanged`
586
+ - `address=unchanged`
587
+ - `topology=unchanged`
588
+ - `desired-state=unchanged`
589
+ - `runtime=unchanged`
590
+ - `focus=unchanged`
591
+ - `cardinality=unchanged`
592
+ - `domain-effect=null`
593
+
594
+ ```
595
+ projmux agent app-server upgrade abort --operation <ref>
596
+ ```
597
+
598
+ #### `projmux agent app-server handover`
599
+
600
+ Plan, apply, resume, or abort one exact generation-wide handover
601
+
602
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
603
+
604
+ Allowed effects:
605
+
606
+ - `identity=unchanged`
607
+ - `address=unchanged`
608
+ - `topology=unchanged`
609
+ - `desired-state=unchanged`
610
+ - `runtime=unchanged`
611
+ - `focus=unchanged`
612
+ - `cardinality=unchanged`
613
+ - `domain-effect=null`
614
+
615
+ ```
616
+ projmux agent app-server handover
617
+ ```
618
+
619
+ Subcommands:
620
+
621
+ | Route | Summary |
622
+ | --- | --- |
623
+ | [`projmux agent app-server handover plan`](#projmux-agent-app-server-handover-plan) | Read the exact target-set generation handover plan |
624
+ | [`projmux agent app-server handover apply`](#projmux-agent-app-server-handover-apply) | Apply one crash-resumable generation-wide handover |
625
+ | [`projmux agent app-server handover resume`](#projmux-agent-app-server-handover-resume) | Resume one exact durable generation handover |
626
+ | [`projmux agent app-server handover abort`](#projmux-agent-app-server-handover-abort) | Abort one exact pre-stop generation handover |
627
+
628
+ Canonical spelling: `projmux agent app-server handover plan`, `projmux agent app-server handover apply`, `projmux agent app-server handover resume`, `projmux agent app-server handover abort`
629
+
630
+ ##### `projmux agent app-server handover plan`
631
+
632
+ Read the exact target-set generation handover plan
633
+
634
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
635
+
636
+ Allowed effects:
637
+
638
+ - `identity=unchanged`
639
+ - `address=unchanged`
640
+ - `topology=unchanged`
641
+ - `desired-state=unchanged`
642
+ - `runtime=unchanged`
643
+ - `focus=unchanged`
644
+ - `cardinality=unchanged`
645
+ - `domain-effect=null`
646
+
647
+ ```
648
+ projmux agent app-server handover plan --request <absolute-json>
649
+ ```
650
+
651
+ ##### `projmux agent app-server handover apply`
652
+
653
+ Apply one crash-resumable generation-wide handover
654
+
655
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
656
+
657
+ Allowed effects:
658
+
659
+ - `identity=unchanged`
660
+ - `address=unchanged`
661
+ - `topology=unchanged`
662
+ - `desired-state=unchanged`
663
+ - `runtime=unchanged`
664
+ - `focus=unchanged`
665
+ - `cardinality=unchanged`
666
+ - `domain-effect=null`
667
+
668
+ ```
669
+ projmux agent app-server handover apply --request <absolute-json>
670
+ ```
671
+
672
+ ##### `projmux agent app-server handover resume`
673
+
674
+ Resume one exact durable generation handover
675
+
676
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
677
+
678
+ Allowed effects:
679
+
680
+ - `identity=unchanged`
681
+ - `address=unchanged`
682
+ - `topology=unchanged`
683
+ - `desired-state=unchanged`
684
+ - `runtime=unchanged`
685
+ - `focus=unchanged`
686
+ - `cardinality=unchanged`
687
+ - `domain-effect=null`
688
+
689
+ ```
690
+ projmux agent app-server handover resume --operation <ref>
691
+ ```
692
+
693
+ ##### `projmux agent app-server handover abort`
694
+
695
+ Abort one exact pre-stop generation handover
696
+
697
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
698
+
699
+ Allowed effects:
700
+
701
+ - `identity=unchanged`
702
+ - `address=unchanged`
703
+ - `topology=unchanged`
704
+ - `desired-state=unchanged`
705
+ - `runtime=unchanged`
706
+ - `focus=unchanged`
707
+ - `cardinality=unchanged`
708
+ - `domain-effect=null`
709
+
710
+ ```
711
+ projmux agent app-server handover abort --operation <ref>
712
+ ```
713
+
714
+ ### `projmux agent capabilities`
715
+
716
+ Read static provider support or one exact Agent's Registry-backed runtime eligibility
717
+
718
+ Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
719
+
720
+ Allowed effects:
721
+
722
+ - `identity=unchanged`
723
+ - `address=unchanged`
724
+ - `topology=unchanged`
725
+ - `desired-state=unchanged`
726
+ - `runtime=unchanged`
727
+ - `focus=unchanged`
728
+ - `cardinality=exact-one`
729
+ - `domain-effect=null`
730
+
731
+ ```
732
+ projmux agent capabilities [<agent-ref> | --provider <codex|claude|antigravity>] [-o json]
733
+ ```
734
+
735
+ Output modes (`-o`): `json`
736
+
737
+ ### `projmux agent message`
738
+
739
+ Exchange bounded untrusted coordination messages through exact Agent activations
740
+
741
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
742
+
743
+ Allowed effects:
744
+
745
+ - `identity=unchanged`
746
+ - `address=unchanged`
747
+ - `topology=unchanged`
748
+ - `desired-state=unchanged`
749
+ - `runtime=unchanged`
750
+ - `focus=unchanged`
751
+ - `cardinality=exact-one`
752
+ - `domain-effect=agent-delivery`
753
+
754
+ ```
755
+ projmux agent message send <agent-ref> [--message-ref <ref>] [--reply-to <ref>] [--ttl <duration>] -- <text>
756
+ projmux agent message status <message-ref> [-o json]
757
+ projmux agent message qualify <claude-agent-ref> --evidence <absolute-private-json> --confirm-isolated-provider-push -o json
758
+ ```
759
+
760
+ Subcommands:
761
+
762
+ | Route | Summary |
763
+ | --- | --- |
764
+ | [`projmux agent message send`](#projmux-agent-message-send) | Submit a bounded coordination message from the current exact Agent |
765
+ | [`projmux agent message status`](#projmux-agent-message-status) | Read a payload-free broker delivery receipt |
766
+ | [`projmux agent message qualify`](#projmux-agent-message-qualify) | Explicitly qualify one exact Claude target using owned current-version isolation evidence and one marker push |
767
+
768
+ Canonical spelling: `projmux agent message send`, `projmux agent message status`, `projmux agent message qualify`
769
+
770
+ #### `projmux agent message send`
771
+
772
+ Submit a bounded coordination message from the current exact Agent
773
+
774
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
775
+
776
+ Allowed effects:
777
+
778
+ - `identity=unchanged`
779
+ - `address=unchanged`
780
+ - `topology=unchanged`
781
+ - `desired-state=unchanged`
782
+ - `runtime=unchanged`
783
+ - `focus=unchanged`
784
+ - `cardinality=exact-one`
785
+ - `domain-effect=agent-delivery`
786
+
787
+ ```
788
+ projmux agent message send <agent-ref> [--message-ref <ref>] [--reply-to <ref>] [--ttl <duration>] -- <text>
789
+ ```
790
+
791
+ #### `projmux agent message status`
792
+
793
+ Read a payload-free broker delivery receipt
794
+
795
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
796
+
797
+ Allowed effects:
798
+
799
+ - `identity=unchanged`
800
+ - `address=unchanged`
801
+ - `topology=unchanged`
802
+ - `desired-state=unchanged`
803
+ - `runtime=unchanged`
804
+ - `focus=unchanged`
805
+ - `cardinality=unchanged`
806
+ - `domain-effect=agent-delivery`
807
+
808
+ ```
809
+ projmux agent message status <message-ref> [-o json]
810
+ ```
811
+
812
+ Output modes (`-o`): `json`
813
+
814
+ #### `projmux agent message qualify`
815
+
816
+ Explicitly qualify one exact Claude target using owned current-version isolation evidence and one marker push
817
+
818
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
819
+
820
+ Allowed effects:
821
+
822
+ - `identity=unchanged`
823
+ - `address=unchanged`
824
+ - `topology=unchanged`
825
+ - `desired-state=unchanged`
826
+ - `runtime=unchanged`
827
+ - `focus=unchanged`
828
+ - `cardinality=exact-one`
829
+ - `domain-effect=agent-delivery`
830
+
831
+ ```
832
+ projmux agent message qualify <claude-agent-ref> --evidence <absolute-private-json> --confirm-isolated-provider-push -o json
833
+ ```
834
+
835
+ Output modes (`-o`): `json`
836
+
837
+ ### `projmux agent wait`
838
+
839
+ Wait read-only for one exact Agent's Registry-backed idle observation
840
+
841
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
842
+
843
+ Allowed effects:
844
+
845
+ - `identity=unchanged`
846
+ - `address=unchanged`
847
+ - `topology=unchanged`
848
+ - `desired-state=unchanged`
849
+ - `runtime=unchanged`
850
+ - `focus=unchanged`
851
+ - `cardinality=exact-one`
852
+ - `domain-effect=null`
853
+
248
854
  ```
249
- projmux agent usage [--model <name>] [--window <name>] [--json] [--force]
855
+ projmux agent wait <agent-ref> [--until idle] [--timeout <duration>] [-o json]
250
856
  ```
251
857
 
858
+ Output modes (`-o`): `json`
859
+
252
860
  ## `projmux attention`
253
861
 
254
862
  View and manage live tmux pane attention state
255
863
 
256
864
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
257
865
 
866
+ Allowed effects:
867
+
868
+ - `identity=unchanged`
869
+ - `address=unchanged`
870
+ - `topology=unchanged`
871
+ - `desired-state=unchanged`
872
+ - `runtime=unchanged`
873
+ - `focus=unchanged`
874
+ - `cardinality=unchanged`
875
+ - `domain-effect=null`
876
+
258
877
  ```
259
878
  projmux attention toggle|clear|arm|list|window
260
879
  ```
@@ -277,6 +896,17 @@ Toggle attention state for a pane
277
896
 
278
897
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
279
898
 
899
+ Allowed effects:
900
+
901
+ - `identity=unchanged`
902
+ - `address=unchanged`
903
+ - `topology=unchanged`
904
+ - `desired-state=unchanged`
905
+ - `runtime=unchanged`
906
+ - `focus=unchanged`
907
+ - `cardinality=exact-one`
908
+ - `domain-effect=null`
909
+
280
910
  ```
281
911
  projmux attention toggle [pane]
282
912
  ```
@@ -287,6 +917,17 @@ Clear attention state for a pane
287
917
 
288
918
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
289
919
 
920
+ Allowed effects:
921
+
922
+ - `identity=unchanged`
923
+ - `address=unchanged`
924
+ - `topology=unchanged`
925
+ - `desired-state=unchanged`
926
+ - `runtime=unchanged`
927
+ - `focus=unchanged`
928
+ - `cardinality=exact-one`
929
+ - `domain-effect=null`
930
+
290
931
  ```
291
932
  projmux attention clear [pane]
292
933
  ```
@@ -297,6 +938,17 @@ Arm focus-only attention consumption
297
938
 
298
939
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
299
940
 
941
+ Allowed effects:
942
+
943
+ - `identity=unchanged`
944
+ - `address=unchanged`
945
+ - `topology=unchanged`
946
+ - `desired-state=unchanged`
947
+ - `runtime=unchanged`
948
+ - `focus=unchanged`
949
+ - `cardinality=exact-one`
950
+ - `domain-effect=null`
951
+
300
952
  ```
301
953
  projmux attention arm [pane]
302
954
  ```
@@ -307,6 +959,17 @@ List live pane attention state
307
959
 
308
960
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
309
961
 
962
+ Allowed effects:
963
+
964
+ - `identity=unchanged`
965
+ - `address=unchanged`
966
+ - `topology=unchanged`
967
+ - `desired-state=unchanged`
968
+ - `runtime=unchanged`
969
+ - `focus=unchanged`
970
+ - `cardinality=zero-or-more`
971
+ - `domain-effect=null`
972
+
310
973
  ```
311
974
  projmux attention list
312
975
  ```
@@ -317,6 +980,17 @@ Render window-scoped attention badges
317
980
 
318
981
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
319
982
 
983
+ Allowed effects:
984
+
985
+ - `identity=unchanged`
986
+ - `address=unchanged`
987
+ - `topology=unchanged`
988
+ - `desired-state=unchanged`
989
+ - `runtime=unchanged`
990
+ - `focus=unchanged`
991
+ - `cardinality=zero-or-more`
992
+ - `domain-effect=null`
993
+
320
994
  ```
321
995
  projmux attention window
322
996
  ```
@@ -327,6 +1001,17 @@ Enter a Project runtime from outside tmux
327
1001
 
328
1002
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
329
1003
 
1004
+ Allowed effects:
1005
+
1006
+ - `identity=unchanged`
1007
+ - `address=unchanged`
1008
+ - `topology=unchanged`
1009
+ - `desired-state=unchanged`
1010
+ - `runtime=unchanged`
1011
+ - `focus=unchanged`
1012
+ - `cardinality=unchanged`
1013
+ - `domain-effect=null`
1014
+
330
1015
  ```
331
1016
  projmux attach project <ref>
332
1017
  ```
@@ -345,6 +1030,17 @@ Enter a Project runtime from outside tmux, materializing it when offline
345
1030
 
346
1031
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
347
1032
 
1033
+ Allowed effects:
1034
+
1035
+ - `identity=unchanged`
1036
+ - `address=unchanged`
1037
+ - `topology=unchanged`
1038
+ - `desired-state=unchanged`
1039
+ - `runtime=materialized|already-live`
1040
+ - `focus=attached-caller`
1041
+ - `cardinality=exact-one`
1042
+ - `domain-effect=null`
1043
+
348
1044
  ```
349
1045
  projmux attach project <ref>
350
1046
  ```
@@ -355,6 +1051,17 @@ Edit AI split-mode settings; render or apply generated tmux configuration
355
1051
 
356
1052
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
357
1053
 
1054
+ Allowed effects:
1055
+
1056
+ - `identity=unchanged`
1057
+ - `address=unchanged`
1058
+ - `topology=unchanged`
1059
+ - `desired-state=unchanged`
1060
+ - `runtime=unchanged`
1061
+ - `focus=unchanged`
1062
+ - `cardinality=unchanged`
1063
+ - `domain-effect=null`
1064
+
358
1065
  ```
359
1066
  projmux config edit [--get|--set <mode>]
360
1067
  projmux config render standalone|app [--bin <path>]
@@ -377,6 +1084,17 @@ Edit the AI split-mode configuration
377
1084
 
378
1085
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
379
1086
 
1087
+ Allowed effects:
1088
+
1089
+ - `identity=unchanged`
1090
+ - `address=unchanged`
1091
+ - `topology=unchanged`
1092
+ - `desired-state=unchanged`
1093
+ - `runtime=unchanged`
1094
+ - `focus=unchanged`
1095
+ - `cardinality=unchanged`
1096
+ - `domain-effect=null`
1097
+
380
1098
  ```
381
1099
  projmux config edit [--get|--set <mode>]
382
1100
  ```
@@ -387,6 +1105,17 @@ Print a generated tmux config to stdout; writes nothing
387
1105
 
388
1106
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
389
1107
 
1108
+ Allowed effects:
1109
+
1110
+ - `identity=unchanged`
1111
+ - `address=unchanged`
1112
+ - `topology=unchanged`
1113
+ - `desired-state=unchanged`
1114
+ - `runtime=unchanged`
1115
+ - `focus=unchanged`
1116
+ - `cardinality=unchanged`
1117
+ - `domain-effect=null`
1118
+
390
1119
  ```
391
1120
  projmux config render standalone [--bin <path>]
392
1121
  projmux config render app [--bin <path>]
@@ -405,6 +1134,17 @@ Print the snippet you source from your own tmux.conf
405
1134
 
406
1135
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
407
1136
 
1137
+ Allowed effects:
1138
+
1139
+ - `identity=unchanged`
1140
+ - `address=unchanged`
1141
+ - `topology=unchanged`
1142
+ - `desired-state=unchanged`
1143
+ - `runtime=unchanged`
1144
+ - `focus=unchanged`
1145
+ - `cardinality=unchanged`
1146
+ - `domain-effect=null`
1147
+
408
1148
  ```
409
1149
  projmux config render standalone [--bin <path>]
410
1150
  ```
@@ -417,6 +1157,17 @@ Print the config the app-owned projmux tmux server runs from
417
1157
 
418
1158
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
419
1159
 
1160
+ Allowed effects:
1161
+
1162
+ - `identity=unchanged`
1163
+ - `address=unchanged`
1164
+ - `topology=unchanged`
1165
+ - `desired-state=unchanged`
1166
+ - `runtime=unchanged`
1167
+ - `focus=unchanged`
1168
+ - `cardinality=unchanged`
1169
+ - `domain-effect=null`
1170
+
420
1171
  ```
421
1172
  projmux config render app [--bin <path>]
422
1173
  ```
@@ -429,6 +1180,17 @@ Write the generated app tmux config and reload the live projmux server
429
1180
 
430
1181
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
431
1182
 
1183
+ Allowed effects:
1184
+
1185
+ - `identity=unchanged`
1186
+ - `address=unchanged`
1187
+ - `topology=unchanged`
1188
+ - `desired-state=unchanged`
1189
+ - `runtime=unchanged`
1190
+ - `focus=unchanged`
1191
+ - `cardinality=unchanged`
1192
+ - `domain-effect=null`
1193
+
432
1194
  ```
433
1195
  projmux config apply [--bin <path>] [--config <path>] [--socket <name>]
434
1196
  ```
@@ -439,13 +1201,24 @@ Create Projmux resources
439
1201
 
440
1202
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
441
1203
 
1204
+ Allowed effects:
1205
+
1206
+ - `identity=unchanged`
1207
+ - `address=unchanged`
1208
+ - `topology=unchanged`
1209
+ - `desired-state=unchanged`
1210
+ - `runtime=unchanged`
1211
+ - `focus=unchanged`
1212
+ - `cardinality=unchanged`
1213
+ - `domain-effect=null`
1214
+
442
1215
  ```
443
1216
  projmux create project --root <absolute-path> [--name <name>] [--label key=value]... [-o <mode>]
444
1217
  projmux create window [--project <ref> | -p <ref>] [--name <name>] [--label key=value]... [-o <mode>] [-- <payload>]
445
- projmux create pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
446
- projmux create agent --provider <provider> [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
447
- projmux create codex [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
448
- projmux create claude|antigravity [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--create-window] [--placement right|down] [-o <mode>] [-- <payload>]
1218
+ projmux create pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--all-windows | --primary-window] [--placement right|down] [-o <mode>] [-- <payload>]
1219
+ projmux create agent --provider <provider> [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--pane <ref>]... [--create-window] [--all-windows | --primary-window] [--placement right|down] [-o <mode>] [-- <payload>]
1220
+ projmux create codex [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--create-window] [--all-windows | --primary-window] [--placement right|down] [-o <mode>] [-- <payload>]
1221
+ projmux create claude|antigravity [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--create-window] [--all-windows | --primary-window] [--placement right|down] [-o <mode>] [-- <payload>]
449
1222
  projmux create notification --text <s> --target <SESSION[:WINDOW[.PANE]]> [--socket <s>]
450
1223
  projmux create snapshot
451
1224
  ```
@@ -477,11 +1250,22 @@ Register one exact filesystem path as a Registry Project; no runtime is material
477
1250
 
478
1251
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
479
1252
 
1253
+ Allowed effects:
1254
+
1255
+ - `identity=created|reused`
1256
+ - `address=allocated|unchanged`
1257
+ - `topology=established|unchanged`
1258
+ - `desired-state=created|reused`
1259
+ - `runtime=unchanged`
1260
+ - `focus=unchanged`
1261
+ - `cardinality=exact-one`
1262
+ - `domain-effect=null`
1263
+
480
1264
  ```
481
1265
  projmux create project --root <absolute-path> [--name <name>] [--label key=value]... [-o <mode>]
482
1266
  ```
483
1267
 
484
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
1268
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`, `receipt`
485
1269
 
486
1270
  ### `projmux create window`
487
1271
 
@@ -489,11 +1273,22 @@ Create a Window and its initial Pane below one Project; the runtime is materiali
489
1273
 
490
1274
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
491
1275
 
1276
+ Allowed effects:
1277
+
1278
+ - `identity=created`
1279
+ - `address=allocated`
1280
+ - `topology=established`
1281
+ - `desired-state=created`
1282
+ - `runtime=materialized`
1283
+ - `focus=unchanged`
1284
+ - `cardinality=exact-one`
1285
+ - `domain-effect=null`
1286
+
492
1287
  ```
493
1288
  projmux create window [--project <ref> | -p <ref>] [--name <name>] [--label key=value]... [-o <mode>] [-- <payload>]
494
1289
  ```
495
1290
 
496
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
1291
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`, `receipt`
497
1292
 
498
1293
  ### `projmux create pane`
499
1294
 
@@ -501,11 +1296,22 @@ Create a shell Pane detached on an explicit Pane or the Window's exact shell or
501
1296
 
502
1297
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
503
1298
 
1299
+ Allowed effects:
1300
+
1301
+ - `identity=created`
1302
+ - `address=allocated`
1303
+ - `topology=established`
1304
+ - `desired-state=created`
1305
+ - `runtime=materialized`
1306
+ - `focus=unchanged`
1307
+ - `cardinality=one-or-more`
1308
+ - `domain-effect=null`
1309
+
504
1310
  ```
505
- 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>]
1311
+ projmux create pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--all-windows | --primary-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
506
1312
  ```
507
1313
 
508
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
1314
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`, `receipt`
509
1315
 
510
1316
  ### `projmux create agent`
511
1317
 
@@ -513,11 +1319,22 @@ Create an Agent detached on an explicit Pane or the Window's exact shell or Agen
513
1319
 
514
1320
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
515
1321
 
1322
+ Allowed effects:
1323
+
1324
+ - `identity=created`
1325
+ - `address=allocated`
1326
+ - `topology=established`
1327
+ - `desired-state=created`
1328
+ - `runtime=materialized`
1329
+ - `focus=unchanged`
1330
+ - `cardinality=one-or-more`
1331
+ - `domain-effect=null`
1332
+
516
1333
  ```
517
- projmux create agent --provider <provider> [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
1334
+ projmux create agent --provider <provider> [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--all-windows | --primary-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
518
1335
  ```
519
1336
 
520
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
1337
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`, `receipt`
521
1338
 
522
1339
  ### `projmux create notification`
523
1340
 
@@ -525,6 +1342,17 @@ Create a pending notification row
525
1342
 
526
1343
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
527
1344
 
1345
+ Allowed effects:
1346
+
1347
+ - `identity=unchanged`
1348
+ - `address=unchanged`
1349
+ - `topology=unchanged`
1350
+ - `desired-state=unchanged`
1351
+ - `runtime=unchanged`
1352
+ - `focus=unchanged`
1353
+ - `cardinality=unchanged`
1354
+ - `domain-effect=null`
1355
+
528
1356
  ```
529
1357
  projmux create notification --text <s> --target <SESSION[:WINDOW[.PANE]]> [--socket <s>]
530
1358
  ```
@@ -535,6 +1363,17 @@ Create a session snapshot
535
1363
 
536
1364
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
537
1365
 
1366
+ Allowed effects:
1367
+
1368
+ - `identity=unchanged`
1369
+ - `address=unchanged`
1370
+ - `topology=unchanged`
1371
+ - `desired-state=unchanged`
1372
+ - `runtime=unchanged`
1373
+ - `focus=unchanged`
1374
+ - `cardinality=unchanged`
1375
+ - `domain-effect=null`
1376
+
538
1377
  ```
539
1378
  projmux create snapshot
540
1379
  ```
@@ -545,11 +1384,22 @@ Provider shortcut for create agent --provider codex
545
1384
 
546
1385
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
547
1386
 
1387
+ Allowed effects:
1388
+
1389
+ - `identity=created`
1390
+ - `address=allocated`
1391
+ - `topology=established`
1392
+ - `desired-state=created`
1393
+ - `runtime=materialized`
1394
+ - `focus=unchanged`
1395
+ - `cardinality=one-or-more`
1396
+ - `domain-effect=null`
1397
+
548
1398
  ```
549
- projmux create codex [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
1399
+ projmux create codex [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--interactive-only] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--all-windows | --primary-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
550
1400
  ```
551
1401
 
552
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
1402
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`, `receipt`
553
1403
 
554
1404
  ### `projmux create claude`
555
1405
 
@@ -557,11 +1407,22 @@ Provider shortcut for create agent --provider claude
557
1407
 
558
1408
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
559
1409
 
1410
+ Allowed effects:
1411
+
1412
+ - `identity=created`
1413
+ - `address=allocated`
1414
+ - `topology=established`
1415
+ - `desired-state=created`
1416
+ - `runtime=materialized`
1417
+ - `focus=unchanged`
1418
+ - `cardinality=one-or-more`
1419
+ - `domain-effect=null`
1420
+
560
1421
  ```
561
- 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>]
1422
+ projmux create claude [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--all-windows | --primary-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
562
1423
  ```
563
1424
 
564
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
1425
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`, `receipt`
565
1426
 
566
1427
  ### `projmux create antigravity`
567
1428
 
@@ -569,11 +1430,22 @@ Provider shortcut for create agent --provider antigravity
569
1430
 
570
1431
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
571
1432
 
1433
+ Allowed effects:
1434
+
1435
+ - `identity=created`
1436
+ - `address=allocated`
1437
+ - `topology=established`
1438
+ - `desired-state=created`
1439
+ - `runtime=materialized`
1440
+ - `focus=unchanged`
1441
+ - `cardinality=one-or-more`
1442
+ - `domain-effect=null`
1443
+
572
1444
  ```
573
- 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>]
1445
+ projmux create antigravity [--project <ref> | -p <ref>] [--cwd <path>] [--add-dir <path>]... [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--create-window] [--all-windows | --primary-window] [--name <name>] [--label key=value]... [--placement right|down] [-o <mode>] [-- <payload>]
574
1446
  ```
575
1447
 
576
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`
1448
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `pane-id`, `none`, `receipt`
577
1449
 
578
1450
  ## `projmux delete`
579
1451
 
@@ -581,6 +1453,17 @@ Delete Projmux resources with an explicit cascade plan
581
1453
 
582
1454
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
583
1455
 
1456
+ Allowed effects:
1457
+
1458
+ - `identity=unchanged`
1459
+ - `address=unchanged`
1460
+ - `topology=unchanged`
1461
+ - `desired-state=unchanged`
1462
+ - `runtime=unchanged`
1463
+ - `focus=unchanged`
1464
+ - `cardinality=unchanged`
1465
+ - `domain-effect=null`
1466
+
584
1467
  ```
585
1468
  projmux delete project [<ref>...] [--selector key=value]... [--all] [--dry-run] [--yes]
586
1469
  projmux delete window [<ref>...] [--project <ref> | -p <ref>] [--selector key=value]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
@@ -592,33 +1475,57 @@ Subcommands:
592
1475
 
593
1476
  | Route | Summary |
594
1477
  | --- | --- |
595
- | [`projmux delete project`](#projmux-delete-project) | Explicitly unregister Projects and Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime |
1478
+ | [`projmux delete project`](#projmux-delete-project) | Deprecated alias of unregister project; unregisters Projects and Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime |
596
1479
  | [`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 |
597
1480
  | [`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 |
598
1481
  | [`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 |
599
1482
  | [`projmux delete notification`](#projmux-delete-notification) | Delete pending notification rows |
600
1483
  | [`projmux delete snapshot`](#projmux-delete-snapshot) | Delete saved session snapshots |
601
1484
 
602
- Canonical spelling: `projmux delete project`, `projmux delete window`, `projmux delete pane`, `projmux delete agent`, `projmux delete notification`, `projmux delete snapshot`
1485
+ Canonical spelling: `projmux unregister project`, `projmux delete window`, `projmux delete pane`, `projmux delete agent`, `projmux delete notification`, `projmux delete snapshot`
603
1486
 
604
1487
  ### `projmux delete project`
605
1488
 
606
- Explicitly unregister Projects and Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime
1489
+ Deprecated alias of unregister project; unregisters Projects and Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime
607
1490
 
608
1491
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
609
1492
 
1493
+ Allowed effects:
1494
+
1495
+ - `identity=removed`
1496
+ - `address=released`
1497
+ - `topology=removed`
1498
+ - `desired-state=removed`
1499
+ - `runtime=preserved`
1500
+ - `focus=unchanged`
1501
+ - `cardinality=one-or-more`
1502
+ - `domain-effect=null`
1503
+
610
1504
  ```
611
1505
  projmux delete project [<ref>...] [--selector key=value]... [--all] [--dry-run] [--yes]
612
1506
  ```
613
1507
 
614
1508
  Aliases: `projects`
615
1509
 
1510
+ Canonical spelling: `projmux unregister project`
1511
+
616
1512
  ### `projmux delete window`
617
1513
 
618
1514
  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
619
1515
 
620
1516
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
621
1517
 
1518
+ Allowed effects:
1519
+
1520
+ - `identity=removed`
1521
+ - `address=released`
1522
+ - `topology=removed`
1523
+ - `desired-state=removed`
1524
+ - `runtime=unchanged|stopped`
1525
+ - `focus=unchanged|moved-current-client`
1526
+ - `cardinality=one-or-more`
1527
+ - `domain-effect=null`
1528
+
622
1529
  ```
623
1530
  projmux delete window [<ref>...] [--project <ref> | -p <ref>] [--selector key=value]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
624
1531
  ```
@@ -631,6 +1538,17 @@ Delete Panes; an Agent-owned current Pane leaves its Agent Offline; no selector
631
1538
 
632
1539
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
633
1540
 
1541
+ Allowed effects:
1542
+
1543
+ - `identity=removed`
1544
+ - `address=released`
1545
+ - `topology=removed`
1546
+ - `desired-state=removed`
1547
+ - `runtime=unchanged|stopped`
1548
+ - `focus=unchanged|moved-current-client`
1549
+ - `cardinality=one-or-more`
1550
+ - `domain-effect=null`
1551
+
634
1552
  ```
635
1553
  projmux delete pane [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
636
1554
  ```
@@ -643,6 +1561,17 @@ Delete Agents and their managed Panes; no selector inside tmux means the active
643
1561
 
644
1562
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
645
1563
 
1564
+ Allowed effects:
1565
+
1566
+ - `identity=removed`
1567
+ - `address=released`
1568
+ - `topology=removed`
1569
+ - `desired-state=removed`
1570
+ - `runtime=unchanged|stopped`
1571
+ - `focus=unchanged|moved-current-client`
1572
+ - `cardinality=one-or-more`
1573
+ - `domain-effect=null`
1574
+
646
1575
  ```
647
1576
  projmux delete agent [<ref>...] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--all] [--socket <name> | --socket-path <absolute>] [--dry-run] [--yes]
648
1577
  ```
@@ -655,6 +1584,17 @@ Delete pending notification rows
655
1584
 
656
1585
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
657
1586
 
1587
+ Allowed effects:
1588
+
1589
+ - `identity=unchanged`
1590
+ - `address=unchanged`
1591
+ - `topology=unchanged`
1592
+ - `desired-state=unchanged`
1593
+ - `runtime=unchanged`
1594
+ - `focus=unchanged`
1595
+ - `cardinality=unchanged`
1596
+ - `domain-effect=null`
1597
+
658
1598
  ```
659
1599
  projmux delete notification
660
1600
  ```
@@ -667,6 +1607,17 @@ Delete saved session snapshots
667
1607
 
668
1608
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
669
1609
 
1610
+ Allowed effects:
1611
+
1612
+ - `identity=unchanged`
1613
+ - `address=unchanged`
1614
+ - `topology=unchanged`
1615
+ - `desired-state=unchanged`
1616
+ - `runtime=unchanged`
1617
+ - `focus=unchanged`
1618
+ - `cardinality=unchanged`
1619
+ - `domain-effect=null`
1620
+
670
1621
  ```
671
1622
  projmux delete snapshot
672
1623
  ```
@@ -679,6 +1630,17 @@ Describe one Projmux resource
679
1630
 
680
1631
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
681
1632
 
1633
+ Allowed effects:
1634
+
1635
+ - `identity=unchanged`
1636
+ - `address=unchanged`
1637
+ - `topology=unchanged`
1638
+ - `desired-state=unchanged`
1639
+ - `runtime=unchanged`
1640
+ - `focus=unchanged`
1641
+ - `cardinality=unchanged`
1642
+ - `domain-effect=null`
1643
+
682
1644
  ```
683
1645
  projmux describe project [<ref>] [--project <ref> | -p <ref>] [-o <mode>]
684
1646
  projmux describe window [<ref>] [--project <ref> | -p <ref>] [-o <mode>]
@@ -703,6 +1665,17 @@ Describe one Project resource; with no selector inside tmux, the active Project
703
1665
 
704
1666
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
705
1667
 
1668
+ Allowed effects:
1669
+
1670
+ - `identity=unchanged`
1671
+ - `address=unchanged`
1672
+ - `topology=unchanged`
1673
+ - `desired-state=unchanged`
1674
+ - `runtime=unchanged`
1675
+ - `focus=unchanged`
1676
+ - `cardinality=exact-one`
1677
+ - `domain-effect=null`
1678
+
706
1679
  ```
707
1680
  projmux describe project [<ref>] [--project <ref> | -p <ref>] [-o <mode>]
708
1681
  ```
@@ -715,7 +1688,18 @@ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
715
1688
 
716
1689
  Describe one Window resource; inside tmux a reference resolves within the active Project and no selector means the active Window
717
1690
 
718
- Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1691
+ Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1692
+
1693
+ Allowed effects:
1694
+
1695
+ - `identity=unchanged`
1696
+ - `address=unchanged`
1697
+ - `topology=unchanged`
1698
+ - `desired-state=unchanged`
1699
+ - `runtime=unchanged`
1700
+ - `focus=unchanged`
1701
+ - `cardinality=exact-one`
1702
+ - `domain-effect=null`
719
1703
 
720
1704
  ```
721
1705
  projmux describe window [<ref>] [--project <ref> | -p <ref>] [-o <mode>]
@@ -731,6 +1715,17 @@ Describe one Pane resource; inside tmux a reference resolves within the active P
731
1715
 
732
1716
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
733
1717
 
1718
+ Allowed effects:
1719
+
1720
+ - `identity=unchanged`
1721
+ - `address=unchanged`
1722
+ - `topology=unchanged`
1723
+ - `desired-state=unchanged`
1724
+ - `runtime=unchanged`
1725
+ - `focus=unchanged`
1726
+ - `cardinality=exact-one`
1727
+ - `domain-effect=null`
1728
+
734
1729
  ```
735
1730
  projmux describe pane [<ref>] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [-o <mode>]
736
1731
  ```
@@ -745,6 +1740,17 @@ Describe one Agent resource; inside tmux a reference resolves within the active
745
1740
 
746
1741
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
747
1742
 
1743
+ Allowed effects:
1744
+
1745
+ - `identity=unchanged`
1746
+ - `address=unchanged`
1747
+ - `topology=unchanged`
1748
+ - `desired-state=unchanged`
1749
+ - `runtime=unchanged`
1750
+ - `focus=unchanged`
1751
+ - `cardinality=exact-one`
1752
+ - `domain-effect=null`
1753
+
748
1754
  ```
749
1755
  projmux describe agent [<ref>] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [-o <mode>]
750
1756
  ```
@@ -759,6 +1765,17 @@ Run read-only runtime and integration diagnostics
759
1765
 
760
1766
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
761
1767
 
1768
+ Allowed effects:
1769
+
1770
+ - `identity=unchanged`
1771
+ - `address=unchanged`
1772
+ - `topology=unchanged`
1773
+ - `desired-state=unchanged`
1774
+ - `runtime=unchanged`
1775
+ - `focus=unchanged`
1776
+ - `cardinality=unchanged`
1777
+ - `domain-effect=null`
1778
+
762
1779
  ```
763
1780
  projmux doctor [--json] [--section <name>] [--verbose]
764
1781
  ```
@@ -769,6 +1786,17 @@ Read operational events or create an explicit local support report
769
1786
 
770
1787
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
771
1788
 
1789
+ Allowed effects:
1790
+
1791
+ - `identity=unchanged`
1792
+ - `address=unchanged`
1793
+ - `topology=unchanged`
1794
+ - `desired-state=unchanged`
1795
+ - `runtime=unchanged`
1796
+ - `focus=unchanged`
1797
+ - `cardinality=unchanged`
1798
+ - `domain-effect=null`
1799
+
772
1800
  ```
773
1801
  projmux diagnostics log [--json] [--tail <n>]
774
1802
  projmux diagnostics agent-hook [--tail <n>] [--json] [--path]
@@ -791,6 +1819,17 @@ Read the bounded local operations journal
791
1819
 
792
1820
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
793
1821
 
1822
+ Allowed effects:
1823
+
1824
+ - `identity=unchanged`
1825
+ - `address=unchanged`
1826
+ - `topology=unchanged`
1827
+ - `desired-state=unchanged`
1828
+ - `runtime=unchanged`
1829
+ - `focus=unchanged`
1830
+ - `cardinality=unchanged`
1831
+ - `domain-effect=null`
1832
+
794
1833
  ```
795
1834
  projmux diagnostics log
796
1835
  ```
@@ -801,6 +1840,17 @@ Read the bounded Agent hook ingest journal
801
1840
 
802
1841
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
803
1842
 
1843
+ Allowed effects:
1844
+
1845
+ - `identity=unchanged`
1846
+ - `address=unchanged`
1847
+ - `topology=unchanged`
1848
+ - `desired-state=unchanged`
1849
+ - `runtime=unchanged`
1850
+ - `focus=unchanged`
1851
+ - `cardinality=unchanged`
1852
+ - `domain-effect=null`
1853
+
804
1854
  ```
805
1855
  projmux diagnostics agent-hook [--tail <n>] [--json] [--path]
806
1856
  ```
@@ -811,6 +1861,17 @@ Create an explicit redacted local support report
811
1861
 
812
1862
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
813
1863
 
1864
+ Allowed effects:
1865
+
1866
+ - `identity=unchanged`
1867
+ - `address=unchanged`
1868
+ - `topology=unchanged`
1869
+ - `desired-state=unchanged`
1870
+ - `runtime=unchanged`
1871
+ - `focus=unchanged`
1872
+ - `cardinality=unchanged`
1873
+ - `domain-effect=null`
1874
+
814
1875
  ```
815
1876
  projmux diagnostics report
816
1877
  ```
@@ -821,6 +1882,17 @@ Move the current client to a live resource
821
1882
 
822
1883
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
823
1884
 
1885
+ Allowed effects:
1886
+
1887
+ - `identity=unchanged`
1888
+ - `address=unchanged`
1889
+ - `topology=unchanged`
1890
+ - `desired-state=unchanged`
1891
+ - `runtime=unchanged`
1892
+ - `focus=unchanged`
1893
+ - `cardinality=unchanged`
1894
+ - `domain-effect=null`
1895
+
824
1896
  ```
825
1897
  projmux focus project <ref>
826
1898
  projmux focus window <ref> {--project <ref> | -p <ref>}
@@ -843,6 +1915,17 @@ Move the current client to an already-live Project; never materializes
843
1915
 
844
1916
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
845
1917
 
1918
+ Allowed effects:
1919
+
1920
+ - `identity=unchanged`
1921
+ - `address=unchanged`
1922
+ - `topology=unchanged`
1923
+ - `desired-state=unchanged`
1924
+ - `runtime=unchanged`
1925
+ - `focus=moved-current-client`
1926
+ - `cardinality=exact-one`
1927
+ - `domain-effect=null`
1928
+
846
1929
  ```
847
1930
  projmux focus project <ref> [--socket <path>] [--client <tty>] [--json]
848
1931
  ```
@@ -853,6 +1936,17 @@ Move the current client to an already-live Window in an exact live root session;
853
1936
 
854
1937
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
855
1938
 
1939
+ Allowed effects:
1940
+
1941
+ - `identity=unchanged`
1942
+ - `address=unchanged`
1943
+ - `topology=unchanged`
1944
+ - `desired-state=unchanged`
1945
+ - `runtime=unchanged`
1946
+ - `focus=moved-current-client`
1947
+ - `cardinality=exact-one`
1948
+ - `domain-effect=null`
1949
+
856
1950
  ```
857
1951
  projmux focus window <ref> {--project <ref> | -p <ref>} [--socket <path>] [--client <tty>] [--json]
858
1952
  ```
@@ -863,6 +1957,17 @@ Move the current client to an already-live Pane in an exact live root session; n
863
1957
 
864
1958
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
865
1959
 
1960
+ Allowed effects:
1961
+
1962
+ - `identity=unchanged`
1963
+ - `address=unchanged`
1964
+ - `topology=unchanged`
1965
+ - `desired-state=unchanged`
1966
+ - `runtime=unchanged`
1967
+ - `focus=moved-current-client`
1968
+ - `cardinality=exact-one`
1969
+ - `domain-effect=null`
1970
+
866
1971
  ```
867
1972
  projmux focus pane <ref> {--project <ref> | -p <ref>} {--window <ref> | -w <ref>} [--socket <path>] [--json]
868
1973
  ```
@@ -873,6 +1978,17 @@ Read Projmux resources by selector
873
1978
 
874
1979
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
875
1980
 
1981
+ Allowed effects:
1982
+
1983
+ - `identity=unchanged`
1984
+ - `address=unchanged`
1985
+ - `topology=unchanged`
1986
+ - `desired-state=unchanged`
1987
+ - `runtime=unchanged`
1988
+ - `focus=unchanged`
1989
+ - `cardinality=unchanged`
1990
+ - `domain-effect=null`
1991
+
876
1992
  ```
877
1993
  projmux get projects [--project <ref> | -p <ref>] [--selector key=value]... [-o <mode>]
878
1994
  projmux get windows [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
@@ -880,17 +1996,17 @@ projmux get panes [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [-
880
1996
  projmux get agents [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
881
1997
  projmux get pane --current -o cwd
882
1998
  projmux get pane [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [-o <mode>]
883
- projmux get runtime sessions|windows|panes [--socket <name> | --socket-path <absolute>] [-o json|none]
1999
+ projmux get runtime sessions|windows|panes [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
884
2000
  ```
885
2001
 
886
2002
  Subcommands:
887
2003
 
888
2004
  | Route | Summary |
889
2005
  | --- | --- |
890
- | [`projmux get projects`](#projmux-get-projects) | List Project resources |
891
- | [`projmux get windows`](#projmux-get-windows) | List Window resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
892
- | [`projmux get panes`](#projmux-get-panes) | List Pane resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
893
- | [`projmux get agents`](#projmux-get-agents) | List Agent resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
2006
+ | [`projmux get projects`](#projmux-get-projects) | List Project resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context |
2007
+ | [`projmux get windows`](#projmux-get-windows) | List Window resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
2008
+ | [`projmux get panes`](#projmux-get-panes) | List Pane resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
2009
+ | [`projmux get agents`](#projmux-get-agents) | List Agent resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry |
894
2010
  | [`projmux get runtime`](#projmux-get-runtime) | List every tmux Session, Window, and Pane on one exact server with its attribution |
895
2011
  | [`projmux get notifications`](#projmux-get-notifications) | List pending notification rows |
896
2012
  | [`projmux get snapshots`](#projmux-get-snapshots) | List saved session snapshots |
@@ -900,57 +2016,101 @@ Canonical spelling: `projmux get projects`, `projmux get windows`, `projmux get
900
2016
 
901
2017
  ### `projmux get projects`
902
2018
 
903
- List Project resources
2019
+ List Project resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context
904
2020
 
905
2021
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
906
2022
 
2023
+ Allowed effects:
2024
+
2025
+ - `identity=unchanged`
2026
+ - `address=unchanged`
2027
+ - `topology=unchanged`
2028
+ - `desired-state=unchanged`
2029
+ - `runtime=unchanged`
2030
+ - `focus=unchanged`
2031
+ - `cardinality=zero-or-more`
2032
+ - `domain-effect=null`
2033
+
907
2034
  ```
908
2035
  projmux get projects [--project <ref> | -p <ref>] [--selector key=value]... [-o <mode>]
909
2036
  ```
910
2037
 
911
2038
  Aliases: `project`
912
2039
 
913
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
2040
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`, `wide`
914
2041
 
915
2042
  ### `projmux get windows`
916
2043
 
917
- List Window resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
2044
+ List Window resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
918
2045
 
919
2046
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
920
2047
 
2048
+ Allowed effects:
2049
+
2050
+ - `identity=unchanged`
2051
+ - `address=unchanged`
2052
+ - `topology=unchanged`
2053
+ - `desired-state=unchanged`
2054
+ - `runtime=unchanged`
2055
+ - `focus=unchanged`
2056
+ - `cardinality=zero-or-more`
2057
+ - `domain-effect=null`
2058
+
921
2059
  ```
922
2060
  projmux get windows [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
923
2061
  ```
924
2062
 
925
2063
  Aliases: `window`
926
2064
 
927
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
2065
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`, `wide`
928
2066
 
929
2067
  ### `projmux get panes`
930
2068
 
931
- List Pane resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
2069
+ List Pane resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
932
2070
 
933
2071
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
934
2072
 
2073
+ Allowed effects:
2074
+
2075
+ - `identity=unchanged`
2076
+ - `address=unchanged`
2077
+ - `topology=unchanged`
2078
+ - `desired-state=unchanged`
2079
+ - `runtime=unchanged`
2080
+ - `focus=unchanged`
2081
+ - `cardinality=zero-or-more`
2082
+ - `domain-effect=null`
2083
+
935
2084
  ```
936
2085
  projmux get panes [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
937
2086
  ```
938
2087
 
939
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
2088
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`, `wide`
940
2089
 
941
2090
  ### `projmux get agents`
942
2091
 
943
- List Agent resources; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
2092
+ List Agent resources as NAME STATUS ACTIONS; route-implied KIND is omitted, shifting stdout positions; -o wide retains KIND and diagnostics, and -o json retains kind and invocation context; inside tmux defaults to the active managed root, and --all-projects lists the whole Registry
944
2093
 
945
2094
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
946
2095
 
2096
+ Allowed effects:
2097
+
2098
+ - `identity=unchanged`
2099
+ - `address=unchanged`
2100
+ - `topology=unchanged`
2101
+ - `desired-state=unchanged`
2102
+ - `runtime=unchanged`
2103
+ - `focus=unchanged`
2104
+ - `cardinality=zero-or-more`
2105
+ - `domain-effect=null`
2106
+
947
2107
  ```
948
2108
  projmux get agents [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--selector key=value]... [--all-projects | -A] [-o <mode>]
949
2109
  ```
950
2110
 
951
2111
  Aliases: `agent`
952
2112
 
953
- Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`
2113
+ Output modes (`-o`): `uid`, `name`, `ref`, `metadata`, `json`, `none`, `wide`
954
2114
 
955
2115
  ### `projmux get runtime`
956
2116
 
@@ -958,10 +2118,21 @@ List every tmux Session, Window, and Pane on one exact server with its attributi
958
2118
 
959
2119
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
960
2120
 
2121
+ Allowed effects:
2122
+
2123
+ - `identity=unchanged`
2124
+ - `address=unchanged`
2125
+ - `topology=unchanged`
2126
+ - `desired-state=unchanged`
2127
+ - `runtime=unchanged`
2128
+ - `focus=unchanged`
2129
+ - `cardinality=zero-or-more`
2130
+ - `domain-effect=null`
2131
+
961
2132
  ```
962
- projmux get runtime sessions [--socket <name> | --socket-path <absolute>] [-o json|none]
963
- projmux get runtime windows [--socket <name> | --socket-path <absolute>] [-o json|none]
964
- projmux get runtime panes [--socket <name> | --socket-path <absolute>] [-o json|none]
2133
+ projmux get runtime sessions [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
2134
+ projmux get runtime windows [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
2135
+ projmux get runtime panes [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
965
2136
  ```
966
2137
 
967
2138
  Subcommands:
@@ -980,11 +2151,22 @@ List every tmux session on one exact server with its attribution
980
2151
 
981
2152
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
982
2153
 
2154
+ Allowed effects:
2155
+
2156
+ - `identity=unchanged`
2157
+ - `address=unchanged`
2158
+ - `topology=unchanged`
2159
+ - `desired-state=unchanged`
2160
+ - `runtime=unchanged`
2161
+ - `focus=unchanged`
2162
+ - `cardinality=zero-or-more`
2163
+ - `domain-effect=null`
2164
+
983
2165
  ```
984
- projmux get runtime sessions [--socket <name> | --socket-path <absolute>] [-o json|none]
2166
+ projmux get runtime sessions [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
985
2167
  ```
986
2168
 
987
- Output modes (`-o`): `json`, `none`
2169
+ Output modes (`-o`): `wide`, `json`, `none`
988
2170
 
989
2171
  #### `projmux get runtime windows`
990
2172
 
@@ -992,11 +2174,22 @@ List every tmux window on one exact server with its attribution
992
2174
 
993
2175
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
994
2176
 
2177
+ Allowed effects:
2178
+
2179
+ - `identity=unchanged`
2180
+ - `address=unchanged`
2181
+ - `topology=unchanged`
2182
+ - `desired-state=unchanged`
2183
+ - `runtime=unchanged`
2184
+ - `focus=unchanged`
2185
+ - `cardinality=zero-or-more`
2186
+ - `domain-effect=null`
2187
+
995
2188
  ```
996
- projmux get runtime windows [--socket <name> | --socket-path <absolute>] [-o json|none]
2189
+ projmux get runtime windows [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
997
2190
  ```
998
2191
 
999
- Output modes (`-o`): `json`, `none`
2192
+ Output modes (`-o`): `wide`, `json`, `none`
1000
2193
 
1001
2194
  #### `projmux get runtime panes`
1002
2195
 
@@ -1004,11 +2197,22 @@ List every tmux pane on one exact server with its attribution
1004
2197
 
1005
2198
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1006
2199
 
2200
+ Allowed effects:
2201
+
2202
+ - `identity=unchanged`
2203
+ - `address=unchanged`
2204
+ - `topology=unchanged`
2205
+ - `desired-state=unchanged`
2206
+ - `runtime=unchanged`
2207
+ - `focus=unchanged`
2208
+ - `cardinality=zero-or-more`
2209
+ - `domain-effect=null`
2210
+
1007
2211
  ```
1008
- projmux get runtime panes [--socket <name> | --socket-path <absolute>] [-o json|none]
2212
+ projmux get runtime panes [--socket <name> | --socket-path <absolute>] [-o wide|json|none]
1009
2213
  ```
1010
2214
 
1011
- Output modes (`-o`): `json`, `none`
2215
+ Output modes (`-o`): `wide`, `json`, `none`
1012
2216
 
1013
2217
  ### `projmux get notifications`
1014
2218
 
@@ -1016,6 +2220,17 @@ List pending notification rows
1016
2220
 
1017
2221
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1018
2222
 
2223
+ Allowed effects:
2224
+
2225
+ - `identity=unchanged`
2226
+ - `address=unchanged`
2227
+ - `topology=unchanged`
2228
+ - `desired-state=unchanged`
2229
+ - `runtime=unchanged`
2230
+ - `focus=unchanged`
2231
+ - `cardinality=zero-or-more`
2232
+ - `domain-effect=null`
2233
+
1019
2234
  ```
1020
2235
  projmux get notifications
1021
2236
  ```
@@ -1028,6 +2243,17 @@ List saved session snapshots
1028
2243
 
1029
2244
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1030
2245
 
2246
+ Allowed effects:
2247
+
2248
+ - `identity=unchanged`
2249
+ - `address=unchanged`
2250
+ - `topology=unchanged`
2251
+ - `desired-state=unchanged`
2252
+ - `runtime=unchanged`
2253
+ - `focus=unchanged`
2254
+ - `cardinality=zero-or-more`
2255
+ - `domain-effect=null`
2256
+
1031
2257
  ```
1032
2258
  projmux get snapshots
1033
2259
  ```
@@ -1040,6 +2266,17 @@ Read one Pane resource; with no selector inside tmux, the active Pane
1040
2266
 
1041
2267
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1042
2268
 
2269
+ Allowed effects:
2270
+
2271
+ - `identity=unchanged`
2272
+ - `address=unchanged`
2273
+ - `topology=unchanged`
2274
+ - `desired-state=unchanged`
2275
+ - `runtime=unchanged`
2276
+ - `focus=unchanged`
2277
+ - `cardinality=exact-one`
2278
+ - `domain-effect=null`
2279
+
1043
2280
  ```
1044
2281
  projmux get pane [--current] [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]... [--pane <ref>]... [--selector key=value]... [-o <mode>]
1045
2282
  ```
@@ -1054,6 +2291,17 @@ List, edit, validate, and trust lifecycle hook config
1054
2291
 
1055
2292
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1056
2293
 
2294
+ Allowed effects:
2295
+
2296
+ - `identity=unchanged`
2297
+ - `address=unchanged`
2298
+ - `topology=unchanged`
2299
+ - `desired-state=unchanged`
2300
+ - `runtime=unchanged`
2301
+ - `focus=unchanged`
2302
+ - `cardinality=unchanged`
2303
+ - `domain-effect=null`
2304
+
1057
2305
  ```
1058
2306
  projmux hook list|edit|validate|trust|untrust
1059
2307
  ```
@@ -1076,6 +2324,17 @@ List global and project lifecycle hooks
1076
2324
 
1077
2325
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1078
2326
 
2327
+ Allowed effects:
2328
+
2329
+ - `identity=unchanged`
2330
+ - `address=unchanged`
2331
+ - `topology=unchanged`
2332
+ - `desired-state=unchanged`
2333
+ - `runtime=unchanged`
2334
+ - `focus=unchanged`
2335
+ - `cardinality=unchanged`
2336
+ - `domain-effect=null`
2337
+
1079
2338
  ```
1080
2339
  projmux hook list
1081
2340
  ```
@@ -1086,6 +2345,17 @@ Edit lifecycle hook config
1086
2345
 
1087
2346
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1088
2347
 
2348
+ Allowed effects:
2349
+
2350
+ - `identity=unchanged`
2351
+ - `address=unchanged`
2352
+ - `topology=unchanged`
2353
+ - `desired-state=unchanged`
2354
+ - `runtime=unchanged`
2355
+ - `focus=unchanged`
2356
+ - `cardinality=unchanged`
2357
+ - `domain-effect=null`
2358
+
1089
2359
  ```
1090
2360
  projmux hook edit
1091
2361
  ```
@@ -1096,6 +2366,17 @@ Validate lifecycle hook config
1096
2366
 
1097
2367
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1098
2368
 
2369
+ Allowed effects:
2370
+
2371
+ - `identity=unchanged`
2372
+ - `address=unchanged`
2373
+ - `topology=unchanged`
2374
+ - `desired-state=unchanged`
2375
+ - `runtime=unchanged`
2376
+ - `focus=unchanged`
2377
+ - `cardinality=unchanged`
2378
+ - `domain-effect=null`
2379
+
1099
2380
  ```
1100
2381
  projmux hook validate
1101
2382
  ```
@@ -1106,6 +2387,17 @@ Trust the current project hook config
1106
2387
 
1107
2388
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1108
2389
 
2390
+ Allowed effects:
2391
+
2392
+ - `identity=unchanged`
2393
+ - `address=unchanged`
2394
+ - `topology=unchanged`
2395
+ - `desired-state=unchanged`
2396
+ - `runtime=unchanged`
2397
+ - `focus=unchanged`
2398
+ - `cardinality=unchanged`
2399
+ - `domain-effect=null`
2400
+
1109
2401
  ```
1110
2402
  projmux hook trust
1111
2403
  ```
@@ -1116,6 +2408,17 @@ Revoke project hook config trust
1116
2408
 
1117
2409
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1118
2410
 
2411
+ Allowed effects:
2412
+
2413
+ - `identity=unchanged`
2414
+ - `address=unchanged`
2415
+ - `topology=unchanged`
2416
+ - `desired-state=unchanged`
2417
+ - `runtime=unchanged`
2418
+ - `focus=unchanged`
2419
+ - `cardinality=unchanged`
2420
+ - `domain-effect=null`
2421
+
1119
2422
  ```
1120
2423
  projmux hook untrust
1121
2424
  ```
@@ -1126,6 +2429,17 @@ Manage pending notification workflow state
1126
2429
 
1127
2430
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1128
2431
 
2432
+ Allowed effects:
2433
+
2434
+ - `identity=unchanged`
2435
+ - `address=unchanged`
2436
+ - `topology=unchanged`
2437
+ - `desired-state=unchanged`
2438
+ - `runtime=unchanged`
2439
+ - `focus=unchanged`
2440
+ - `cardinality=unchanged`
2441
+ - `domain-effect=null`
2442
+
1129
2443
  ```
1130
2444
  projmux notification ack <id> | --all
1131
2445
  projmux notification reconcile [--json]
@@ -1146,6 +2460,17 @@ Acknowledge notification rows
1146
2460
 
1147
2461
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
1148
2462
 
2463
+ Allowed effects:
2464
+
2465
+ - `identity=unchanged`
2466
+ - `address=unchanged`
2467
+ - `topology=unchanged`
2468
+ - `desired-state=unchanged`
2469
+ - `runtime=unchanged`
2470
+ - `focus=unchanged`
2471
+ - `cardinality=unchanged`
2472
+ - `domain-effect=null`
2473
+
1149
2474
  ```
1150
2475
  projmux notification ack <id> | --all
1151
2476
  ```
@@ -1156,16 +2481,90 @@ Reconcile the notification queue against live targets
1156
2481
 
1157
2482
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1158
2483
 
2484
+ Allowed effects:
2485
+
2486
+ - `identity=unchanged`
2487
+ - `address=unchanged`
2488
+ - `topology=unchanged`
2489
+ - `desired-state=unchanged`
2490
+ - `runtime=unchanged`
2491
+ - `focus=unchanged`
2492
+ - `cardinality=unchanged`
2493
+ - `domain-effect=null`
2494
+
1159
2495
  ```
1160
2496
  projmux notification reconcile [--json]
1161
2497
  ```
1162
2498
 
2499
+ ## `projmux open`
2500
+
2501
+ Open a Project runtime and move the current client to it
2502
+
2503
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
2504
+
2505
+ Allowed effects:
2506
+
2507
+ - `identity=unchanged`
2508
+ - `address=unchanged`
2509
+ - `topology=unchanged`
2510
+ - `desired-state=unchanged`
2511
+ - `runtime=unchanged`
2512
+ - `focus=unchanged`
2513
+ - `cardinality=unchanged`
2514
+ - `domain-effect=null`
2515
+
2516
+ ```
2517
+ projmux open project <ref> [-o receipt|none]
2518
+ ```
2519
+
2520
+ Subcommands:
2521
+
2522
+ | Route | Summary |
2523
+ | --- | --- |
2524
+ | [`projmux open project`](#projmux-open-project) | Materialize an offline Project runtime when needed and move the current tmux client to it; outside tmux it refuses and points at attach |
2525
+
2526
+ Canonical spelling: `projmux open project`
2527
+
2528
+ ### `projmux open project`
2529
+
2530
+ Materialize an offline Project runtime when needed and move the current tmux client to it; outside tmux it refuses and points at attach
2531
+
2532
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
2533
+
2534
+ Allowed effects:
2535
+
2536
+ - `identity=unchanged`
2537
+ - `address=unchanged`
2538
+ - `topology=unchanged`
2539
+ - `desired-state=unchanged`
2540
+ - `runtime=materialized|already-live`
2541
+ - `focus=moved-current-client`
2542
+ - `cardinality=exact-one`
2543
+ - `domain-effect=null`
2544
+
2545
+ ```
2546
+ projmux open project <ref> [-o receipt|none]
2547
+ ```
2548
+
2549
+ Output modes (`-o`): `receipt`, `none`
2550
+
1163
2551
  ## `projmux pin`
1164
2552
 
1165
2553
  Manage pinned project directories
1166
2554
 
1167
2555
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1168
2556
 
2557
+ Allowed effects:
2558
+
2559
+ - `identity=unchanged`
2560
+ - `address=unchanged`
2561
+ - `topology=unchanged`
2562
+ - `desired-state=unchanged`
2563
+ - `runtime=unchanged`
2564
+ - `focus=unchanged`
2565
+ - `cardinality=unchanged`
2566
+ - `domain-effect=null`
2567
+
1169
2568
  ```
1170
2569
  projmux pin project list|add|remove|toggle|clear
1171
2570
  ```
@@ -1184,6 +2583,17 @@ Manage pinned project directories (canonical spelling)
1184
2583
 
1185
2584
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
1186
2585
 
2586
+ Allowed effects:
2587
+
2588
+ - `identity=unchanged`
2589
+ - `address=unchanged`
2590
+ - `topology=unchanged`
2591
+ - `desired-state=unchanged`
2592
+ - `runtime=unchanged`
2593
+ - `focus=unchanged`
2594
+ - `cardinality=unchanged`
2595
+ - `domain-effect=null`
2596
+
1187
2597
  ```
1188
2598
  projmux pin project list|add|remove|toggle|clear
1189
2599
  ```
@@ -1194,6 +2604,17 @@ Prune stale Projects and snapshots
1194
2604
 
1195
2605
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1196
2606
 
2607
+ Allowed effects:
2608
+
2609
+ - `identity=unchanged`
2610
+ - `address=unchanged`
2611
+ - `topology=unchanged`
2612
+ - `desired-state=unchanged`
2613
+ - `runtime=unchanged`
2614
+ - `focus=unchanged`
2615
+ - `cardinality=unchanged`
2616
+ - `domain-effect=null`
2617
+
1197
2618
  ```
1198
2619
  projmux prune snapshot [--older-than <duration>]
1199
2620
  projmux prune project --missing --older-than <duration> [--yes]
@@ -1214,6 +2635,17 @@ Delete Projects whose spec.root has been missing for a bounded age
1214
2635
 
1215
2636
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1216
2637
 
2638
+ Allowed effects:
2639
+
2640
+ - `identity=removed`
2641
+ - `address=released`
2642
+ - `topology=removed`
2643
+ - `desired-state=removed`
2644
+ - `runtime=unchanged`
2645
+ - `focus=unchanged`
2646
+ - `cardinality=zero-or-more`
2647
+ - `domain-effect=null`
2648
+
1217
2649
  ```
1218
2650
  projmux prune project --missing --older-than <duration> [--yes]
1219
2651
  ```
@@ -1224,6 +2656,17 @@ Inspect or delete preserved session snapshots (canonical spelling)
1224
2656
 
1225
2657
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1226
2658
 
2659
+ Allowed effects:
2660
+
2661
+ - `identity=unchanged`
2662
+ - `address=unchanged`
2663
+ - `topology=unchanged`
2664
+ - `desired-state=unchanged`
2665
+ - `runtime=unchanged`
2666
+ - `focus=unchanged`
2667
+ - `cardinality=unchanged`
2668
+ - `domain-effect=null`
2669
+
1227
2670
  ```
1228
2671
  projmux prune snapshot [--older-than <duration>]
1229
2672
  projmux prune snapshot delete <session>...
@@ -1237,6 +2680,17 @@ Quit the app-owned projmux tmux runtime
1237
2680
 
1238
2681
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1239
2682
 
2683
+ Allowed effects:
2684
+
2685
+ - `identity=unchanged`
2686
+ - `address=unchanged`
2687
+ - `topology=unchanged`
2688
+ - `desired-state=unchanged`
2689
+ - `runtime=stopped`
2690
+ - `focus=unchanged`
2691
+ - `cardinality=zero-or-more`
2692
+ - `domain-effect=null`
2693
+
1240
2694
  ```
1241
2695
  projmux quit [--yes|--force]
1242
2696
  ```
@@ -1247,6 +2701,17 @@ Preview or repair Registry and exact tmux resource drift
1247
2701
 
1248
2702
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1249
2703
 
2704
+ Allowed effects:
2705
+
2706
+ - `identity=unchanged`
2707
+ - `address=unchanged`
2708
+ - `topology=unchanged`
2709
+ - `desired-state=unchanged`
2710
+ - `runtime=unchanged`
2711
+ - `focus=unchanged`
2712
+ - `cardinality=unchanged`
2713
+ - `domain-effect=null`
2714
+
1250
2715
  ```
1251
2716
  projmux reconcile resources [--dry-run] [--materialize-project <name|uid:uid>] [--socket <name> | --socket-path <absolute>] [-o json]
1252
2717
  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]
@@ -1267,6 +2732,17 @@ Preview or repair exact anchor-aware Registry and tmux topology on one exact soc
1267
2732
 
1268
2733
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1269
2734
 
2735
+ Allowed effects:
2736
+
2737
+ - `identity=unchanged|created`
2738
+ - `address=unchanged|allocated`
2739
+ - `topology=unchanged|established|reparented`
2740
+ - `desired-state=unchanged|created|replaced`
2741
+ - `runtime=unchanged|materialized`
2742
+ - `focus=unchanged`
2743
+ - `cardinality=exact-one|zero-or-more`
2744
+ - `domain-effect=null`
2745
+
1270
2746
  ```
1271
2747
  projmux reconcile resources [--dry-run] [--materialize-project <name|uid:uid>] [--socket <name> | --socket-path <absolute>] [-o json]
1272
2748
  ```
@@ -1277,6 +2753,17 @@ Plan Registry state-loss recovery with zero writes, then restore one explicitly
1277
2753
 
1278
2754
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
1279
2755
 
2756
+ Allowed effects:
2757
+
2758
+ - `identity=unchanged|created|removed|replaced`
2759
+ - `address=unchanged|allocated|renamed|released`
2760
+ - `topology=unchanged|established|reparented|removed|replaced`
2761
+ - `desired-state=unchanged|created|removed|replaced`
2762
+ - `runtime=unchanged`
2763
+ - `focus=unchanged`
2764
+ - `cardinality=zero-or-more`
2765
+ - `domain-effect=null`
2766
+
1280
2767
  ```
1281
2768
  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]
1282
2769
  ```
@@ -1287,6 +2774,17 @@ Rebind a Project to a new absolute root without moving files
1287
2774
 
1288
2775
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1289
2776
 
2777
+ Allowed effects:
2778
+
2779
+ - `identity=unchanged`
2780
+ - `address=unchanged`
2781
+ - `topology=unchanged`
2782
+ - `desired-state=unchanged`
2783
+ - `runtime=unchanged`
2784
+ - `focus=unchanged`
2785
+ - `cardinality=unchanged`
2786
+ - `domain-effect=null`
2787
+
1290
2788
  ```
1291
2789
  projmux rebind project [<ref>] [--project <ref> | -p <ref>] --root <absolute-path>
1292
2790
  ```
@@ -1305,6 +2803,17 @@ Rewrite one Project spec.root; no filesystem move, no heuristic uid merge
1305
2803
 
1306
2804
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1307
2805
 
2806
+ Allowed effects:
2807
+
2808
+ - `identity=unchanged`
2809
+ - `address=unchanged`
2810
+ - `topology=unchanged`
2811
+ - `desired-state=replaced`
2812
+ - `runtime=unchanged`
2813
+ - `focus=unchanged`
2814
+ - `cardinality=exact-one`
2815
+ - `domain-effect=null`
2816
+
1308
2817
  ```
1309
2818
  projmux rebind project [<ref>] [--project <ref> | -p <ref>] --root <absolute-path>
1310
2819
  ```
@@ -1315,6 +2824,17 @@ Rename a Projmux resource metadata.name
1315
2824
 
1316
2825
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1317
2826
 
2827
+ Allowed effects:
2828
+
2829
+ - `identity=unchanged`
2830
+ - `address=unchanged`
2831
+ - `topology=unchanged`
2832
+ - `desired-state=unchanged`
2833
+ - `runtime=unchanged`
2834
+ - `focus=unchanged`
2835
+ - `cardinality=unchanged`
2836
+ - `domain-effect=null`
2837
+
1318
2838
  ```
1319
2839
  projmux rename project [<ref>] [--project <ref> | -p <ref>] --name <name>
1320
2840
  projmux rename window [<ref>] --name <name> [--project <ref> | -p <ref>]
@@ -1339,54 +2859,117 @@ Rename a Projmux Project resource; with no selector inside tmux, the active Proj
1339
2859
 
1340
2860
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1341
2861
 
2862
+ Allowed effects:
2863
+
2864
+ - `identity=unchanged`
2865
+ - `address=renamed`
2866
+ - `topology=unchanged`
2867
+ - `desired-state=unchanged`
2868
+ - `runtime=unchanged`
2869
+ - `focus=unchanged`
2870
+ - `cardinality=exact-one`
2871
+ - `domain-effect=null`
2872
+
1342
2873
  ```
1343
2874
  projmux rename project [<ref>] [--project <ref> | -p <ref>] --name <name>
1344
2875
  ```
1345
2876
 
1346
2877
  Aliases: `projects`
1347
2878
 
2879
+ Output modes (`-o`): `receipt`, `none`
2880
+
1348
2881
  ### `projmux rename window`
1349
2882
 
1350
2883
  Rename a Projmux Window resource; inside tmux a reference resolves within the active Project or ControlSession and no selector means the active Window
1351
2884
 
1352
2885
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1353
2886
 
2887
+ Allowed effects:
2888
+
2889
+ - `identity=unchanged`
2890
+ - `address=renamed`
2891
+ - `topology=unchanged`
2892
+ - `desired-state=unchanged`
2893
+ - `runtime=unchanged`
2894
+ - `focus=unchanged`
2895
+ - `cardinality=exact-one`
2896
+ - `domain-effect=null`
2897
+
1354
2898
  ```
1355
2899
  projmux rename window [<ref>] --name <name> [--project <ref> | -p <ref>]
1356
2900
  ```
1357
2901
 
1358
2902
  Aliases: `windows`
1359
2903
 
2904
+ Output modes (`-o`): `receipt`, `none`
2905
+
1360
2906
  ### `projmux rename pane`
1361
2907
 
1362
2908
  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
1363
2909
 
1364
2910
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1365
2911
 
2912
+ Allowed effects:
2913
+
2914
+ - `identity=unchanged`
2915
+ - `address=renamed`
2916
+ - `topology=unchanged`
2917
+ - `desired-state=unchanged`
2918
+ - `runtime=unchanged`
2919
+ - `focus=unchanged`
2920
+ - `cardinality=exact-one`
2921
+ - `domain-effect=null`
2922
+
1366
2923
  ```
1367
2924
  projmux rename pane [<ref>] --name <name> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]...
1368
2925
  ```
1369
2926
 
1370
2927
  Aliases: `panes`
1371
2928
 
2929
+ Output modes (`-o`): `receipt`, `none`
2930
+
1372
2931
  ### `projmux rename agent`
1373
2932
 
1374
2933
  Rename an Agent stable resource name within the active Project or ControlSession without changing its topic, provider, or managed Pane
1375
2934
 
1376
2935
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1377
2936
 
2937
+ Allowed effects:
2938
+
2939
+ - `identity=unchanged`
2940
+ - `address=renamed`
2941
+ - `topology=unchanged`
2942
+ - `desired-state=unchanged`
2943
+ - `runtime=unchanged`
2944
+ - `focus=unchanged`
2945
+ - `cardinality=exact-one`
2946
+ - `domain-effect=null`
2947
+
1378
2948
  ```
1379
2949
  projmux rename agent [<ref>] --name <name> [--project <ref> | -p <ref>] [--window <ref> | -w <ref>]...
1380
2950
  ```
1381
2951
 
1382
2952
  Aliases: `agents`
1383
2953
 
2954
+ Output modes (`-o`): `receipt`, `none`
2955
+
1384
2956
  ## `projmux resources`
1385
2957
 
1386
2958
  Inspect live Project, Window, and Pane CPU/RSS attribution
1387
2959
 
1388
2960
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1389
2961
 
2962
+ Allowed effects:
2963
+
2964
+ - `identity=unchanged`
2965
+ - `address=unchanged`
2966
+ - `topology=unchanged`
2967
+ - `desired-state=unchanged`
2968
+ - `runtime=unchanged`
2969
+ - `focus=unchanged`
2970
+ - `cardinality=unchanged`
2971
+ - `domain-effect=null`
2972
+
1390
2973
  ```
1391
2974
  projmux resources
1392
2975
  ```
@@ -1397,6 +2980,17 @@ Project a saved snapshot into one exact closed Project desired state
1397
2980
 
1398
2981
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1399
2982
 
2983
+ Allowed effects:
2984
+
2985
+ - `identity=unchanged`
2986
+ - `address=unchanged`
2987
+ - `topology=unchanged`
2988
+ - `desired-state=unchanged`
2989
+ - `runtime=unchanged`
2990
+ - `focus=unchanged`
2991
+ - `cardinality=unchanged`
2992
+ - `domain-effect=null`
2993
+
1400
2994
  ```
1401
2995
  projmux restore snapshot --session <name> [--project <ref> | -p <ref>] [--dry-run | --yes] [--client <tmux-client>]
1402
2996
  ```
@@ -1415,6 +3009,17 @@ Project a saved snapshot into one exact closed Project desired state
1415
3009
 
1416
3010
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
1417
3011
 
3012
+ Allowed effects:
3013
+
3014
+ - `identity=unchanged|created|reused|removed|replaced`
3015
+ - `address=unchanged|allocated|released`
3016
+ - `topology=unchanged|established|removed|replaced`
3017
+ - `desired-state=unchanged|created|removed|replaced`
3018
+ - `runtime=unchanged|materialized`
3019
+ - `focus=unchanged|moved-current-client|attached-caller`
3020
+ - `cardinality=unchanged|one-or-more`
3021
+ - `domain-effect=null`
3022
+
1418
3023
  ```
1419
3024
  projmux restore snapshot --session <name> [--project <ref> | -p <ref>] [--dry-run | --yes] [--client <tmux-client>]
1420
3025
  ```
@@ -1425,6 +3030,17 @@ Manage the live and ephemeral tmux runtime inventory
1425
3030
 
1426
3031
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1427
3032
 
3033
+ Allowed effects:
3034
+
3035
+ - `identity=unchanged`
3036
+ - `address=unchanged`
3037
+ - `topology=unchanged`
3038
+ - `desired-state=unchanged`
3039
+ - `runtime=unchanged`
3040
+ - `focus=unchanged`
3041
+ - `cardinality=unchanged`
3042
+ - `domain-effect=null`
3043
+
1428
3044
  ```
1429
3045
  projmux runtime sessions [--ui=popup|sidebar]
1430
3046
  projmux runtime diagnostics [--socket <name> | --socket-path <absolute>] [--ui=popup|sidebar]
@@ -1453,6 +3069,17 @@ Pick a live or ephemeral tmux session
1453
3069
 
1454
3070
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1455
3071
 
3072
+ Allowed effects:
3073
+
3074
+ - `identity=unchanged`
3075
+ - `address=unchanged`
3076
+ - `topology=unchanged`
3077
+ - `desired-state=unchanged`
3078
+ - `runtime=unchanged|materialized|already-live|stopped`
3079
+ - `focus=unchanged|moved-current-client|attached-caller`
3080
+ - `cardinality=unchanged|exact-one`
3081
+ - `domain-effect=null`
3082
+
1456
3083
  ```
1457
3084
  projmux runtime sessions
1458
3085
  ```
@@ -1463,6 +3090,17 @@ Inspect every tmux object on one exact server, with attribution and safe actions
1463
3090
 
1464
3091
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1465
3092
 
3093
+ Allowed effects:
3094
+
3095
+ - `identity=unchanged`
3096
+ - `address=unchanged`
3097
+ - `topology=unchanged`
3098
+ - `desired-state=unchanged`
3099
+ - `runtime=unchanged|materialized|already-live`
3100
+ - `focus=unchanged|moved-current-client|attached-caller`
3101
+ - `cardinality=unchanged|exact-one`
3102
+ - `domain-effect=null`
3103
+
1466
3104
  ```
1467
3105
  projmux runtime diagnostics [--socket <name> | --socket-path <absolute>] [--ui=popup|sidebar]
1468
3106
  ```
@@ -1473,6 +3111,17 @@ Attach a live or ephemeral runtime without Project identity
1473
3111
 
1474
3112
  Selectorless authority: `explicit-target` — the route or caller must name the exact target.
1475
3113
 
3114
+ Allowed effects:
3115
+
3116
+ - `identity=unchanged`
3117
+ - `address=unchanged`
3118
+ - `topology=unchanged`
3119
+ - `desired-state=unchanged`
3120
+ - `runtime=already-live`
3121
+ - `focus=attached-caller`
3122
+ - `cardinality=exact-one`
3123
+ - `domain-effect=null`
3124
+
1476
3125
  ```
1477
3126
  projmux runtime attach
1478
3127
  ```
@@ -1483,6 +3132,17 @@ Terminate live tmux sessions by tagged selection
1483
3132
 
1484
3133
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1485
3134
 
3135
+ Allowed effects:
3136
+
3137
+ - `identity=unchanged`
3138
+ - `address=unchanged`
3139
+ - `topology=unchanged`
3140
+ - `desired-state=unchanged`
3141
+ - `runtime=stopped`
3142
+ - `focus=unchanged`
3143
+ - `cardinality=one-or-more`
3144
+ - `domain-effect=null`
3145
+
1486
3146
  ```
1487
3147
  projmux runtime stop
1488
3148
  ```
@@ -1493,6 +3153,17 @@ Manage the ephemeral tagged session selection
1493
3153
 
1494
3154
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1495
3155
 
3156
+ Allowed effects:
3157
+
3158
+ - `identity=unchanged`
3159
+ - `address=unchanged`
3160
+ - `topology=unchanged`
3161
+ - `desired-state=unchanged`
3162
+ - `runtime=unchanged`
3163
+ - `focus=unchanged`
3164
+ - `cardinality=zero-or-more`
3165
+ - `domain-effect=null`
3166
+
1496
3167
  ```
1497
3168
  projmux runtime tag
1498
3169
  ```
@@ -1503,6 +3174,17 @@ Trim old ephemeral tmux sessions
1503
3174
 
1504
3175
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1505
3176
 
3177
+ Allowed effects:
3178
+
3179
+ - `identity=unchanged`
3180
+ - `address=unchanged`
3181
+ - `topology=unchanged`
3182
+ - `desired-state=unchanged`
3183
+ - `runtime=stopped`
3184
+ - `focus=unchanged`
3185
+ - `cardinality=zero-or-more`
3186
+ - `domain-effect=null`
3187
+
1506
3188
  ```
1507
3189
  projmux runtime prune
1508
3190
  ```
@@ -1513,6 +3195,17 @@ Configure projmux
1513
3195
 
1514
3196
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1515
3197
 
3198
+ Allowed effects:
3199
+
3200
+ - `identity=unchanged`
3201
+ - `address=unchanged`
3202
+ - `topology=unchanged`
3203
+ - `desired-state=unchanged`
3204
+ - `runtime=unchanged`
3205
+ - `focus=unchanged`
3206
+ - `cardinality=unchanged`
3207
+ - `domain-effect=null`
3208
+
1516
3209
  ```
1517
3210
  projmux settings
1518
3211
  ```
@@ -1523,6 +3216,17 @@ Probe terminal keys or remediate them with setup terminal
1523
3216
 
1524
3217
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1525
3218
 
3219
+ Allowed effects:
3220
+
3221
+ - `identity=unchanged`
3222
+ - `address=unchanged`
3223
+ - `topology=unchanged`
3224
+ - `desired-state=unchanged`
3225
+ - `runtime=unchanged`
3226
+ - `focus=unchanged`
3227
+ - `cardinality=unchanged`
3228
+ - `domain-effect=null`
3229
+
1526
3230
  ```
1527
3231
  projmux setup
1528
3232
  projmux setup terminal [terminal] [--apply]
@@ -1542,6 +3246,17 @@ Show or apply terminal key remediation
1542
3246
 
1543
3247
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1544
3248
 
3249
+ Allowed effects:
3250
+
3251
+ - `identity=unchanged`
3252
+ - `address=unchanged`
3253
+ - `topology=unchanged`
3254
+ - `desired-state=unchanged`
3255
+ - `runtime=unchanged`
3256
+ - `focus=unchanged`
3257
+ - `cardinality=unchanged`
3258
+ - `domain-effect=null`
3259
+
1545
3260
  ```
1546
3261
  projmux setup terminal [terminal] [--apply] [--config <path>] [--allow-symlink]
1547
3262
  ```
@@ -1552,21 +3267,199 @@ Open the isolated projmux tmux app
1552
3267
 
1553
3268
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1554
3269
 
3270
+ Allowed effects:
3271
+
3272
+ - `identity=unchanged|created|reused`
3273
+ - `address=unchanged|allocated`
3274
+ - `topology=unchanged|established`
3275
+ - `desired-state=unchanged|created|reused`
3276
+ - `runtime=materialized|already-live`
3277
+ - `focus=attached-caller`
3278
+ - `cardinality=exact-one|one-or-more`
3279
+ - `domain-effect=null`
3280
+
1555
3281
  ```
1556
3282
  projmux shell [--session <name>]
1557
3283
  ```
1558
3284
 
3285
+ ## `projmux start`
3286
+
3287
+ Start a Project runtime without moving any client
3288
+
3289
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
3290
+
3291
+ Allowed effects:
3292
+
3293
+ - `identity=unchanged`
3294
+ - `address=unchanged`
3295
+ - `topology=unchanged`
3296
+ - `desired-state=unchanged`
3297
+ - `runtime=unchanged`
3298
+ - `focus=unchanged`
3299
+ - `cardinality=unchanged`
3300
+ - `domain-effect=null`
3301
+
3302
+ ```
3303
+ projmux start project <ref> [-o receipt|none]
3304
+ ```
3305
+
3306
+ Subcommands:
3307
+
3308
+ | Route | Summary |
3309
+ | --- | --- |
3310
+ | [`projmux start project`](#projmux-start-project) | Materialize an offline Project runtime detached; no client is moved and no Registry identity changes |
3311
+
3312
+ Canonical spelling: `projmux start project`
3313
+
3314
+ ### `projmux start project`
3315
+
3316
+ Materialize an offline Project runtime detached; no client is moved and no Registry identity changes
3317
+
3318
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
3319
+
3320
+ Allowed effects:
3321
+
3322
+ - `identity=unchanged`
3323
+ - `address=unchanged`
3324
+ - `topology=unchanged`
3325
+ - `desired-state=unchanged`
3326
+ - `runtime=materialized|already-live`
3327
+ - `focus=unchanged`
3328
+ - `cardinality=exact-one`
3329
+ - `domain-effect=null`
3330
+
3331
+ ```
3332
+ projmux start project <ref> [-o receipt|none]
3333
+ ```
3334
+
3335
+ Output modes (`-o`): `receipt`, `none`
3336
+
3337
+ ## `projmux stop`
3338
+
3339
+ Stop a Project runtime without unregistering anything
3340
+
3341
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
3342
+
3343
+ Allowed effects:
3344
+
3345
+ - `identity=unchanged`
3346
+ - `address=unchanged`
3347
+ - `topology=unchanged`
3348
+ - `desired-state=unchanged`
3349
+ - `runtime=unchanged`
3350
+ - `focus=unchanged`
3351
+ - `cardinality=unchanged`
3352
+ - `domain-effect=null`
3353
+
3354
+ ```
3355
+ projmux stop project <ref> [-o receipt|none]
3356
+ ```
3357
+
3358
+ Subcommands:
3359
+
3360
+ | Route | Summary |
3361
+ | --- | --- |
3362
+ | [`projmux stop project`](#projmux-stop-project) | Terminate the exact persistent tmux session of a Project; the Registry graph, root, and external assets are preserved |
3363
+
3364
+ Canonical spelling: `projmux stop project`
3365
+
3366
+ ### `projmux stop project`
3367
+
3368
+ Terminate the exact persistent tmux session of a Project; the Registry graph, root, and external assets are preserved
3369
+
3370
+ Selectorless authority: `explicit-target` — the route or caller must name the exact target.
3371
+
3372
+ Allowed effects:
3373
+
3374
+ - `identity=unchanged`
3375
+ - `address=unchanged`
3376
+ - `topology=unchanged`
3377
+ - `desired-state=unchanged`
3378
+ - `runtime=stopped`
3379
+ - `focus=unchanged|moved-current-client`
3380
+ - `cardinality=exact-one`
3381
+ - `domain-effect=null`
3382
+
3383
+ ```
3384
+ projmux stop project <ref> [-o receipt|none]
3385
+ ```
3386
+
3387
+ Output modes (`-o`): `receipt`, `none`
3388
+
1559
3389
  ## `projmux switch`
1560
3390
 
1561
- Pick and open a project tmux session
3391
+ Pick a project and compose create project with open project
1562
3392
 
1563
3393
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1564
3394
 
3395
+ Allowed effects:
3396
+
3397
+ - `identity=unchanged|created|reused|replaced`
3398
+ - `address=unchanged|allocated|released`
3399
+ - `topology=unchanged|established|replaced`
3400
+ - `desired-state=unchanged|created|reused|replaced`
3401
+ - `runtime=unchanged|materialized|already-live|stopped`
3402
+ - `focus=unchanged|moved-current-client|attached-caller`
3403
+ - `cardinality=unchanged|exact-one`
3404
+ - `domain-effect=null`
3405
+
1565
3406
  ```
1566
3407
  projmux switch [<project>]
1567
3408
  ```
1568
3409
 
1569
- Canonical spelling: `projmux focus project`
3410
+ Canonical spelling: `projmux create project`, `projmux open project`
3411
+
3412
+ ## `projmux unregister`
3413
+
3414
+ Unregister Projects from the Registry while preserving runtime and files
3415
+
3416
+ Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
3417
+
3418
+ Allowed effects:
3419
+
3420
+ - `identity=unchanged`
3421
+ - `address=unchanged`
3422
+ - `topology=unchanged`
3423
+ - `desired-state=unchanged`
3424
+ - `runtime=unchanged`
3425
+ - `focus=unchanged`
3426
+ - `cardinality=unchanged`
3427
+ - `domain-effect=null`
3428
+
3429
+ ```
3430
+ projmux unregister project [<ref>...] [--selector key=value]... [--all] [--dry-run] [--yes]
3431
+ ```
3432
+
3433
+ Subcommands:
3434
+
3435
+ | Route | Summary |
3436
+ | --- | --- |
3437
+ | [`projmux unregister project`](#projmux-unregister-project) | Unregister Projects and their Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime |
3438
+
3439
+ Canonical spelling: `projmux unregister project`
3440
+
3441
+ ### `projmux unregister project`
3442
+
3443
+ Unregister Projects and their Registry descendants while preserving roots, Git/worktrees, snapshots, and runtime
3444
+
3445
+ Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
3446
+
3447
+ Allowed effects:
3448
+
3449
+ - `identity=removed`
3450
+ - `address=released`
3451
+ - `topology=removed`
3452
+ - `desired-state=removed`
3453
+ - `runtime=preserved`
3454
+ - `focus=unchanged`
3455
+ - `cardinality=one-or-more`
3456
+ - `domain-effect=null`
3457
+
3458
+ ```
3459
+ projmux unregister project [<ref>...] [--selector key=value]... [--all] [--dry-run] [--yes]
3460
+ ```
3461
+
3462
+ Aliases: `projects`
1570
3463
 
1571
3464
  ## `projmux update`
1572
3465
 
@@ -1574,6 +3467,17 @@ Check installer-aware release update status
1574
3467
 
1575
3468
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1576
3469
 
3470
+ Allowed effects:
3471
+
3472
+ - `identity=unchanged`
3473
+ - `address=unchanged`
3474
+ - `topology=unchanged`
3475
+ - `desired-state=unchanged`
3476
+ - `runtime=unchanged`
3477
+ - `focus=unchanged`
3478
+ - `cardinality=unchanged`
3479
+ - `domain-effect=null`
3480
+
1577
3481
  ```
1578
3482
  projmux update status|check|apply
1579
3483
  ```
@@ -1594,6 +3498,17 @@ Show read-only update status
1594
3498
 
1595
3499
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1596
3500
 
3501
+ Allowed effects:
3502
+
3503
+ - `identity=unchanged`
3504
+ - `address=unchanged`
3505
+ - `topology=unchanged`
3506
+ - `desired-state=unchanged`
3507
+ - `runtime=unchanged`
3508
+ - `focus=unchanged`
3509
+ - `cardinality=unchanged`
3510
+ - `domain-effect=null`
3511
+
1597
3512
  ```
1598
3513
  projmux update status
1599
3514
  ```
@@ -1604,6 +3519,17 @@ Check for a newer release and refresh the cache
1604
3519
 
1605
3520
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1606
3521
 
3522
+ Allowed effects:
3523
+
3524
+ - `identity=unchanged`
3525
+ - `address=unchanged`
3526
+ - `topology=unchanged`
3527
+ - `desired-state=unchanged`
3528
+ - `runtime=unchanged`
3529
+ - `focus=unchanged`
3530
+ - `cardinality=unchanged`
3531
+ - `domain-effect=null`
3532
+
1607
3533
  ```
1608
3534
  projmux update check
1609
3535
  ```
@@ -1614,6 +3540,17 @@ Apply an available update
1614
3540
 
1615
3541
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1616
3542
 
3543
+ Allowed effects:
3544
+
3545
+ - `identity=unchanged`
3546
+ - `address=unchanged`
3547
+ - `topology=unchanged`
3548
+ - `desired-state=unchanged`
3549
+ - `runtime=unchanged`
3550
+ - `focus=unchanged`
3551
+ - `cardinality=unchanged`
3552
+ - `domain-effect=null`
3553
+
1617
3554
  ```
1618
3555
  projmux update apply
1619
3556
  ```
@@ -1624,6 +3561,17 @@ Reprint the shell welcome guide
1624
3561
 
1625
3562
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1626
3563
 
3564
+ Allowed effects:
3565
+
3566
+ - `identity=unchanged`
3567
+ - `address=unchanged`
3568
+ - `topology=unchanged`
3569
+ - `desired-state=unchanged`
3570
+ - `runtime=unchanged`
3571
+ - `focus=unchanged`
3572
+ - `cardinality=unchanged`
3573
+ - `domain-effect=null`
3574
+
1627
3575
  ```
1628
3576
  projmux welcome [--popup [--force]]
1629
3577
  ```
@@ -1634,6 +3582,17 @@ Open recent window navigation surfaces
1634
3582
 
1635
3583
  Selectorless authority: `refusal` — there is no safe selectorless action; refuse before output or mutation.
1636
3584
 
3585
+ Allowed effects:
3586
+
3587
+ - `identity=unchanged`
3588
+ - `address=unchanged`
3589
+ - `topology=unchanged`
3590
+ - `desired-state=unchanged`
3591
+ - `runtime=unchanged`
3592
+ - `focus=unchanged`
3593
+ - `cardinality=unchanged`
3594
+ - `domain-effect=null`
3595
+
1637
3596
  ```
1638
3597
  projmux window record|recent
1639
3598
  ```
@@ -1653,6 +3612,17 @@ Record the current window into the MRU store
1653
3612
 
1654
3613
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1655
3614
 
3615
+ Allowed effects:
3616
+
3617
+ - `identity=unchanged`
3618
+ - `address=unchanged`
3619
+ - `topology=unchanged`
3620
+ - `desired-state=unchanged`
3621
+ - `runtime=unchanged`
3622
+ - `focus=unchanged`
3623
+ - `cardinality=unchanged`
3624
+ - `domain-effect=null`
3625
+
1656
3626
  ```
1657
3627
  projmux window record
1658
3628
  ```
@@ -1665,6 +3635,17 @@ Open the recent-window navigation picker
1665
3635
 
1666
3636
  Selectorless authority: `natural-omitted` — omission resolves one predictable current resource or documented contextual read/scope; any selector replaces it.
1667
3637
 
3638
+ Allowed effects:
3639
+
3640
+ - `identity=unchanged`
3641
+ - `address=unchanged`
3642
+ - `topology=unchanged`
3643
+ - `desired-state=unchanged`
3644
+ - `runtime=unchanged|materialized|already-live`
3645
+ - `focus=unchanged|moved-current-client|attached-caller`
3646
+ - `cardinality=unchanged|exact-one`
3647
+ - `domain-effect=null`
3648
+
1668
3649
  ```
1669
3650
  projmux window recent
1670
3651
  ```
@@ -1677,6 +3658,17 @@ Show bootstrap help
1677
3658
 
1678
3659
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1679
3660
 
3661
+ Allowed effects:
3662
+
3663
+ - `identity=unchanged`
3664
+ - `address=unchanged`
3665
+ - `topology=unchanged`
3666
+ - `desired-state=unchanged`
3667
+ - `runtime=unchanged`
3668
+ - `focus=unchanged`
3669
+ - `cardinality=unchanged`
3670
+ - `domain-effect=null`
3671
+
1680
3672
  ```
1681
3673
  projmux help
1682
3674
  projmux --help
@@ -1689,6 +3681,17 @@ Print the current version
1689
3681
 
1690
3682
  Selectorless authority: `explicit-fan-out` — the route spelling is an intentional global or whole-set opt-in.
1691
3683
 
3684
+ Allowed effects:
3685
+
3686
+ - `identity=unchanged`
3687
+ - `address=unchanged`
3688
+ - `topology=unchanged`
3689
+ - `desired-state=unchanged`
3690
+ - `runtime=unchanged`
3691
+ - `focus=unchanged`
3692
+ - `cardinality=unchanged`
3693
+ - `domain-effect=null`
3694
+
1692
3695
  ```
1693
3696
  projmux version
1694
3697
  projmux --version