You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,6 +43,7 @@ src/
43
43
- Non-interactive panes hide the terminal cursor
44
44
- Set `errorMatcher: true` to detect ANSI red output, or a regex string to match custom patterns — shows a red indicator on the tab while the process keeps running
45
45
-`readyPattern` accepts `string` (simple match) or `RegExp` (match + capture groups). RegExp captures are expanded into dependent `command` and `env` values via `$dep.group` syntax (e.g. `$odoo.url`)
46
+
-`optional: true` makes a process visible as a tab but not auto-started (starts in `stopped` state). Alt+S starts it manually. Unlike `condition`, optional does not cascade to dependents
46
47
-`platform` restricts a process to specific OS(es) (e.g. `'darwin'`, `'linux'`). Non-matching processes are removed; their dependents still start with the dependency stripped (unlike `condition` which cascades)
Copy file name to clipboardExpand all lines: README.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -256,6 +256,7 @@ Each process accepts:
256
256
|`readyTimeout`|`number`| — | Milliseconds to wait for `readyPattern` before failing |
257
257
|`maxRestarts`|`number`|`0`| Max auto-restart attempts on non-zero exit (0 = no restarts) |
258
258
|`delay`|`number`| — | Milliseconds to wait before starting the process |
259
+
|`optional`|`boolean`|`false`| Process is visible as a tab but not started automatically. Use Alt+S to start manually |
259
260
|`condition`|`string`| — | Env var name; process skipped if falsy. Prefix with `!` to negate |
260
261
|`platform`|`string \| string[]`| — | OS(es) this process runs on (e.g. `'darwin'`, `'linux'`). Non-matching processes are removed; dependents still start |
261
262
|`stopSignal`|`string`|`SIGTERM`| Signal for graceful stop (`SIGTERM`, `SIGINT`, or `SIGHUP`) |
Falsy values: unset, empty string, `"0"`, `"false"`, `"no"`, `"off"` (case-insensitive). If a conditional process is skipped, its dependents are also skipped.
362
363
364
+
### Optional processes
365
+
366
+
Use `optional` for tools you want visible in tabs but not auto-started (e.g. Prisma Studio, debug servers):
367
+
368
+
```ts
369
+
exportdefaultdefineConfig({
370
+
processes: {
371
+
app: { command: 'bun run dev' },
372
+
studio: {
373
+
command: 'bunx prisma studio',
374
+
optional: true, // shows as stopped tab, start with Alt+S
375
+
},
376
+
},
377
+
})
378
+
```
379
+
380
+
Unlike `condition`, optional processes don't cascade — their dependents still start normally.
381
+
363
382
### Dependency orchestration
364
383
365
384
Each process starts as soon as its declared `dependsOn` dependencies are ready — it does not wait for unrelated processes. If a process fails, its dependents are skipped.
0 commit comments