projmux 0.10.0 → 0.11.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.
@@ -1,337 +1,122 @@
1
1
  # AI Agent Shortcut Registration
2
2
 
3
- `projmux ai split` is intentionally tool-general: user-level shortcuts,
4
- skills, slash commands, terminal actions, and editor commands can all map to
5
- the same split contract.
3
+ Use the canonical resource-create routes for user-level shortcuts, skills,
4
+ slash commands, terminal actions, and editor commands:
6
5
 
7
6
  ```sh
8
- projmux ai split --agent <agent> <right|down>
9
- projmux ai split --agent <agent> [--force-agent] <right|down> -- <extra args...>
10
- projmux ai split --agent <agent> --print-pane-id <right|down> [-- <extra args...>]
7
+ projmux create agent --provider <codex|claude|antigravity> [--placement right|down]
8
+ projmux create agent --provider <provider> [--placement right|down] -- <extra args...>
9
+ projmux create agent --provider <provider> [--placement right|down] -o pane-id [-- <extra args...>]
10
+ projmux create pane [--placement right|down] [-o pane-id]
11
11
  ```
12
12
 
13
- Use this page for shareable registration patterns. Keep machine-local policy,
14
- private prompt text, and personal workflow recipes in your own dotfiles or
15
- local tool configuration, not in tracked repo docs.
13
+ Provider shortcuts (`projmux create codex|claude|antigravity`) normalize to the
14
+ same Agent route. Keep machine-local policy, private prompt text, and personal
15
+ workflow recipes in user config or dotfiles rather than tracked project docs.
16
16
 
17
- ## Command Contract
17
+ ## Command contract
18
18
 
19
- Choose a direct agent when a shortcut should always open that agent:
19
+ Choose a direct provider when a shortcut must always open that provider:
20
20
 
21
21
  ```sh
22
- projmux ai split --agent codex right
23
- projmux ai split --agent claude down
22
+ projmux create codex --placement right
23
+ projmux create claude --placement down
24
24
  ```
25
25
 
26
- Every direct AI split invocation creates a new managed AI pane for the selected
27
- agent. Existing Codex, Claude, or Antigravity panes in the same project/session
28
- are left in place and are not selected by the shortcut. `right` and `down`
29
- choose where the new pane is created.
30
-
31
- Add the separator only when you have extra arguments for the selected agent:
26
+ Each invocation creates a new managed Agent and Pane. Existing Agent panes are
27
+ left in place. `--placement right|down` selects the tmux split axis; right is
28
+ the default. Use `--` only when forwarding extra provider arguments:
32
29
 
33
30
  ```sh
34
- projmux ai split --agent codex right -- --model <model>
35
- projmux ai split --agent claude down -- <agent flags>
31
+ projmux create codex --placement right -- --model <model>
32
+ projmux create claude --placement down -- <agent flags>
36
33
  ```
37
34
 
38
- The `--` separates projmux arguments from agent arguments. Everything after
39
- that separator is passed to the resolved selected agent executable. It is not
40
- an executable override. In the examples above, projmux still chooses the
41
- configured `codex` or `claude` executable, creates the tmux split, sets pane
42
- metadata, applies the title watcher, and appends the tail arguments to the
43
- agent command.
44
-
45
- Model, permission, and other agent flags are examples to customize privately in
46
- your user-level config. Avoid treating placeholder flags in this guide as
47
- project defaults or current recommendations. If there are no private extra
48
- arguments, omit the separator entirely; do not leave a trailing bare `--`.
49
-
50
- Settings > AI Settings > Enabled agents is the source of truth for whether
51
- Claude, Codex, and Antigravity may be launched. Disabled agents do not appear in the
52
- selective picker, and direct shortcut commands such as
53
- `projmux ai split --agent codex right` fail clearly instead of launching. This
54
- is intentional: shortcuts are thin direct CLI wrappers and must respect the
55
- same disabled state as hand-written commands.
56
-
57
- `--force-agent` is the only override, and it is explicit CLI policy for direct
58
- `--agent claude|codex|antigravity` launches. Do not put it in shared picker,
59
- default-mode, or general shortcut registrations. Use it only in a private
60
- one-shot command when you deliberately want to launch a disabled agent without
61
- changing Settings. If every AI agent is disabled, `--agent selective` still
62
- offers a plain `shell` split and guidance to re-enable Claude/Codex/Antigravity.
63
-
64
- `shell` and `selective` are not targets for extra agent arguments. Use them
65
- without a tail:
35
+ Everything after `--` reaches the configured provider executable. Placeholder
36
+ model, permission, and agent flags are private customization examples, not
37
+ project defaults. Omit the separator when there is no payload.
66
38
 
67
- ```sh
68
- projmux ai split --agent shell right
69
- projmux ai split --agent selective down
70
- projmux ai split --agent resume right
71
- ```
39
+ Settings > AI Settings > Enabled providers controls whether Claude, Codex, and
40
+ Antigravity may launch. Canonical create routes respect that setting. There is
41
+ no shared command-line override for a disabled provider; change Settings when
42
+ the provider should become available. For a plain shell split use `projmux
43
+ create pane`, not an Agent provider.
72
44
 
73
- `shell` opens a plain shell split. `selective` opens the existing picker, where
74
- the user chooses the launch mode interactively. `resume` opens the current
75
- project's resume-session picker; when no sessions exist it delegates to the
76
- same selective picker.
45
+ Interactive provider and resume selection belong to the app's picker surfaces.
46
+ CLI automation should choose an explicit provider or use `projmux agent resume
47
+ <ref>` for an exact existing Agent.
77
48
 
78
- ### Automation Pane Handle
49
+ ### Automation pane handle
79
50
 
80
- Use `--print-pane-id` only when an automation wrapper needs the new pane as a
81
- handle for later orchestration:
51
+ Use `-o pane-id` only when an automation wrapper needs the newly created Pane
52
+ as a stable follow-up handle:
82
53
 
83
54
  ```sh
84
- pane_id="$(projmux ai split --agent codex --print-pane-id right -- "prompt")"
85
- ```
86
-
87
- Successful explicit `claude`, `codex`, `antigravity`, and `shell` launches
88
- print exactly one `%N` pane id line. The flag does not change how arguments
89
- after `--` reach the selected agent. Without the flag, stdout remains empty so
90
- existing manual shortcuts and Settings actions retain their behavior.
91
-
92
- The pane id is the existing tmux `split-window` return value. If tmux does not
93
- return a valid id, the command produces a non-zero, actionable error instead of
94
- a false success. Do not combine the flag with the saved default,
95
- `--agent selective`, or `--agent resume`; picker-backed paths are rejected
96
- before a picker or pane is opened. This is a one-line handle contract, not a
97
- JSON launch-result schema or a pane status/wait API.
98
-
99
- ## Naming Pattern
100
-
101
- Pick names that encode the target agent and split direction, then keep the
102
- body as a small command wrapper.
103
-
104
- For Codex-style skill surfaces, names can follow:
105
-
106
- ```text
107
- $projmux-<agent>-right
108
- $projmux-<agent>-down
109
- ```
110
-
111
- Concrete examples:
112
-
113
- ```text
114
- $projmux-codex-right
115
- $projmux-claude-down
116
- $projmux-resume-right
117
- $projmux-resume-down
55
+ pane_id="$(projmux create codex --placement right -o pane-id -- "prompt")"
118
56
  ```
119
57
 
120
- For Claude-style slash-command surfaces, names can follow:
58
+ Success prints exactly one `%N` Pane id. Without `-o pane-id`, the direct
59
+ current-Window form defaults to no output. Failure to obtain a valid tmux Pane
60
+ id is nonzero rather than a false success.
121
61
 
122
- ```text
123
- /projmux:<agent>-right
124
- /projmux:<agent>-down
125
- ```
62
+ ## Naming pattern
126
63
 
127
- Concrete examples:
64
+ Encode the provider and placement in the registered name. A bare provider name
65
+ may be a thin alias of its right-placement variant:
128
66
 
129
67
  ```text
130
- /projmux:codex-right
131
- /projmux:claude-down
132
- /projmux:resume-right
133
- /projmux:resume-down
68
+ $projmux-codex -> projmux create codex --placement right
69
+ $projmux-codex-down -> projmux create codex --placement down
70
+ /projmux:claude -> projmux create claude --placement right
71
+ /projmux:claude-down -> projmux create claude --placement down
134
72
  ```
135
73
 
136
- The same pattern also works for editor commands, launcher actions, shell
137
- aliases, or terminal custom actions. The important part is that the registered
138
- surface calls `projmux ai split --agent <agent> <direction>` and passes only
139
- agent flags after `--`.
140
-
141
- ### Bare-Name Default
142
-
143
- When a surface registers a bare agent name without an explicit direction
144
- suffix, treat it as the `right` variant. `right` is the convention for the
145
- unqualified shortcut; `down` is always spelled out.
146
-
147
- For Codex-style skill surfaces:
74
+ The same pattern works for editor commands, launchers, shell aliases, and
75
+ terminal custom actions.
148
76
 
149
- ```text
150
- $projmux-codex → projmux ai split --agent codex right
151
- $projmux-claude → projmux ai split --agent claude right
152
- $projmux-resume → projmux ai split --agent resume right
153
- ```
154
-
155
- For Claude-style slash-command surfaces:
156
-
157
- ```text
158
- /projmux:codex → projmux ai split --agent codex right
159
- /projmux:claude → projmux ai split --agent claude right
160
- /projmux:resume → projmux ai split --agent resume right
161
- ```
77
+ ## Skill template
162
78
 
163
- Register the bare name as a thin alias of the `*-right` shortcut so that the
164
- two surfaces stay in lockstep. The `*-down` variant must be invoked by its
165
- full name; do not introduce a separate bare default for `down`.
166
-
167
- ## Skill Template
168
-
169
- Use this shape when a tool lets you define a user-level skill that tells an
170
- agent to run a shell command. Actual loader paths vary by installation; the
171
- intended home is user-level config or dotfiles, not this repository.
172
-
173
- Example Codex-style skill file:
174
-
175
- ```text
176
- ~/.codex/skills/projmux-codex-right/SKILL.md
177
- ```
79
+ Example user-level Codex-style skill body:
178
80
 
179
81
  ````markdown
180
82
  ---
181
83
  name: projmux-codex-right
182
- description: Open a projmux-managed Codex split to the right.
84
+ description: Open a projmux-managed Codex Pane to the right.
183
85
  ---
184
86
 
185
87
  Run this command:
186
88
 
187
89
  ```sh
188
- projmux ai split --agent codex right
189
- ```
190
-
191
- If you have private Codex flags, use the explicit extra-args form instead:
192
-
193
- ```sh
194
- projmux ai split --agent codex right -- --model <model>
90
+ projmux create codex --placement right
195
91
  ```
196
92
  ````
197
93
 
198
- Non-Codex target example:
199
-
200
- ```text
201
- ~/.codex/skills/projmux-claude-down/SKILL.md
202
- ```
203
-
204
- ````markdown
205
- ---
206
- name: projmux-claude-down
207
- description: Open a projmux-managed Claude split below.
208
- ---
209
-
210
- Run this command:
94
+ For a Claude-down variant, change only the description and command:
211
95
 
212
96
  ```sh
213
- projmux ai split --agent claude down
97
+ projmux create claude --placement down
214
98
  ```
215
99
 
216
- If you have private Claude flags, use the explicit extra-args form instead:
100
+ ## Slash-command template
217
101
 
218
- ```sh
219
- projmux ai split --agent claude down -- <agent flags>
220
- ```
221
- ````
222
-
223
- Resume picker examples:
224
-
225
- ```text
226
- ~/.codex/skills/projmux-resume-right/SKILL.md
227
- ~/.codex/skills/projmux-resume-down/SKILL.md
228
- ```
229
-
230
- ````markdown
231
- ---
232
- name: projmux-resume-right
233
- description: Open a projmux-managed AI resume-session picker to the right.
234
- ---
235
-
236
- Run this command:
237
-
238
- ```sh
239
- projmux ai split --agent resume right
240
- ```
241
- ````
242
-
243
- If your tool stores skills as JSON, TOML, or another format, keep the same
244
- fields conceptually:
245
-
246
- - Name: the user-facing shortcut, such as `$projmux-codex-right`.
247
- - Description: one sentence saying which agent and direction it opens.
248
- - Command: the `projmux ai split` invocation.
249
- - Arguments: optional agent arguments placed after `--`.
250
-
251
- ## Slash Command Template
252
-
253
- Use this shape when a tool lets you define user-level slash commands. Actual
254
- loader paths and interpolation variables can vary by installation; user-level
255
- config or dotfiles is the intended home.
256
-
257
- ```text
258
- ~/.claude/commands/projmux/codex-right.md
259
- ```
260
-
261
- This maps to a slash command named `/projmux:codex-right`:
262
-
263
- ````markdown
264
- Open a Codex split to the right in the current projmux session.
265
-
266
- Run this command:
267
-
268
- ```sh
269
- projmux ai split --agent codex right
270
- ```
271
- ````
272
-
273
- For an argument-aware wrapper, include the separator only when arguments are
274
- non-empty. Adapt this shell shape to the tool's command-file format:
102
+ A user-level `/projmux:codex-right` command can carry this executable body:
275
103
 
276
104
  ```sh
277
105
  if [ -n "$ARGUMENTS" ]; then
278
- projmux ai split --agent codex right -- $ARGUMENTS
106
+ projmux create codex --placement right -- $ARGUMENTS
279
107
  else
280
- projmux ai split --agent codex right
108
+ projmux create codex --placement right
281
109
  fi
282
110
  ```
283
111
 
284
- Then invoke it with private agent flags only when needed, such as
285
- `/projmux:codex-right --model <model>`.
286
-
287
- For a Claude target, use a sibling file such as:
288
-
289
- ```text
290
- ~/.claude/commands/projmux/claude-down.md
291
- ```
292
-
293
- This maps to `/projmux:claude-down`:
294
-
295
- ````markdown
296
- Open a Claude split below in the current projmux session.
297
-
298
- Run this command:
299
-
300
- ```sh
301
- projmux ai split --agent claude down
302
- ```
303
- ````
304
-
305
- For an argument-aware wrapper, use the same non-empty check:
306
-
307
- ```sh
308
- if [ -n "$ARGUMENTS" ]; then
309
- projmux ai split --agent claude down -- $ARGUMENTS
310
- else
311
- projmux ai split --agent claude down
312
- fi
313
- ```
314
-
315
- Then pass private Claude flags at invocation time only when needed, such as
316
- `/projmux:claude-down <agent flags>`.
317
-
318
- If the tool separates command metadata from the shell body, put only the
319
- `projmux ai split ...` line in the executable body. Avoid embedding
320
- machine-specific project roots, permission policies, or personal model choices
321
- in shared docs; put those in your private user-level command files.
112
+ Adapt argument interpolation to the owning tool. Do not embed machine-specific
113
+ project roots, permission policies, or model choices in shared docs.
322
114
 
323
115
  ## Checklist
324
116
 
325
- - Register shortcuts at user level in the AI tool, editor, launcher, or
326
- terminal that owns the surface.
327
- - Use `--agent codex` or `--agent claude` when passing extra agent arguments.
328
- - Put agent flags after the separator, for example `-- --model <model>`.
329
- - Omit the separator entirely when there are no extra agent arguments.
330
- - Use `--agent shell` with no tail for a plain shell split.
331
- - Use `--agent selective` with no tail for the picker.
332
- - Use `--print-pane-id` only with an explicit direct
333
- `claude|codex|antigravity|shell` target when an automation caller needs the
334
- returned `%N` handle.
335
- - Treat a bare agent name (`/projmux:codex`, `$projmux-claude`) as the
336
- `right` variant; spell out `*-down` shortcuts in full.
337
- - Keep tracked project docs and `AGENTS.md` free of private shortcut policy.
117
+ - Register the shortcut in the user-level surface that owns it.
118
+ - Use a canonical provider shortcut or `create agent --provider ...`.
119
+ - Put provider arguments after `--`; omit it when the payload is empty.
120
+ - Use `create pane` for a shell Pane.
121
+ - Use `-o pane-id` only when automation consumes the returned `%N` handle.
122
+ - Keep private workflow policy outside tracked project docs.