@viraatdas/rudder 0.3.10 → 0.4.1

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/README.md CHANGED
@@ -5,10 +5,10 @@
5
5
  [![Node >=20](https://img.shields.io/badge/node-%3E%3D20-43853d.svg)](https://nodejs.org/)
6
6
  [![CLI](https://img.shields.io/badge/interface-terminal-111827.svg)](#run)
7
7
 
8
- Rudder is a Claude Code-style terminal app for running coding agents without
9
- letting parallel tasks fight over the same checkout. It gives you a focused TUI,
10
- OpenClaw-style credential detection, background runs, saved transcripts,
11
- worktree isolation, model picking, agent steering, and one-command merging.
8
+ Rudder is a Claude Code-style terminal command center for running coding agents
9
+ without letting parallel tasks fight over the same checkout. It opens a tmux
10
+ dashboard, creates one git worktree per task, and launches real Claude Code or
11
+ Codex terminal panes so you keep the full native agent experience.
12
12
 
13
13
  ## Quick Start
14
14
 
@@ -40,6 +40,7 @@ npx @viraatdas/rudder@latest --help
40
40
 
41
41
  - Node.js 20 or newer
42
42
  - Git, for run tracking and worktree isolation
43
+ - tmux, for the native multi-pane dashboard
43
44
  - Claude Code and/or Codex installed and logged in
44
45
 
45
46
  Check your setup:
@@ -66,44 +67,33 @@ Detected auth sources:
66
67
 
67
68
  ## Run
68
69
 
69
- Open the full-screen UI:
70
+ Open the tmux dashboard:
70
71
 
71
72
  ```bash
72
73
  rudder
73
74
  ```
74
75
 
75
- The UI has three focus panes. The focused pane has a double cyan border and a
76
- focus badge so it is clear where input goes.
76
+ The dashboard stays in one pane. Every task opens a separate native worker pane
77
+ running `claude` or `codex` in its own git worktree. Focus a worker pane to use
78
+ Claude Code or Codex directly, including their slash commands, interrupts,
79
+ copy/paste, model controls, resume behavior, and terminal UI.
77
80
 
78
81
  | Key | Action |
79
82
  | --- | --- |
80
- | `Tab` | Switch focus between agents, worker, and task panes |
81
- | `Enter` | Submit the current input |
83
+ | `Enter` | Start a task, or focus the selected worker if the task box is empty |
84
+ | `Tab` | Move focus to the next tmux pane |
82
85
  | `j` / `k` or arrows | Select an agent run |
83
- | `c` or `Esc` | Focus the selected worker |
84
- | `n` | Return to new-task mode |
86
+ | `f` | Focus the selected native worker pane |
85
87
  | `o` or `/model` | Open the model picker |
86
- | `/` | Open searchable slash commands |
87
- | `x` | Expand/collapse selected run |
88
- | `l` | Expand/collapse transcript |
89
88
  | `s` | Stop selected run |
90
- | `d` | Delete selected run, with an offer to merge completed work first |
91
- | `y` | Copy the selected worker transcript to the clipboard |
89
+ | `d` | Delete selected run, with an offer to merge first when there are changes |
92
90
  | `m` | Merge selected completed worktree run |
93
- | `M` | Merge all completed worktree runs |
94
91
  | `Cmd+Backspace` / `Ctrl+U` | Clear the input line |
95
- | `?` | Help |
96
- | `q` | Quit |
92
+ | `q` or `Ctrl+C` | Detach from the tmux session |
97
93
 
98
- Worker focus is intentionally direct: the input moves into the selected worker
99
- pane, so a completed run feels like a resumable standalone session. Type there
100
- and press `Enter` to continue that agent. If the agent is still running, `Enter`
101
- interrupts and redirects it. Press `Esc` from an empty worker input to return to
102
- new-task mode.
103
-
104
- Paste works directly in the task and worker input. For long pasted prompts,
105
- Rudder normalizes line breaks into spaces so the prompt stays inside the input
106
- box.
94
+ Inside a worker pane, Rudder is out of the way. You are in the real Claude Code
95
+ or Codex process. Use tmux mouse support, your terminal copy mode, or native
96
+ agent keybindings normally.
107
97
 
108
98
  Slash commands:
109
99
 
@@ -111,27 +101,16 @@ Slash commands:
111
101
  /backend claude|codex
112
102
  /model
113
103
  /model <model-id>
114
- /agent [runId]
115
- /interrupt [runId]
116
- /new
117
- /worktree auto|always
118
- /stop [runId]
119
- /delete [runId]
120
- /copy [runId]
121
- /merge [runId] [--allow-dirty]
122
- /merge-all [--allow-dirty]
123
- /clear
124
- /exit
125
104
  ```
126
105
 
127
- Typing `/` opens command search. Use arrows to move, then press `Enter` to run
128
- or complete the selected command.
106
+ If tmux is not installed, or you pass `--no-tmux`, Rudder falls back to the
107
+ legacy full-screen stream TUI.
129
108
 
130
109
  ## Models
131
110
 
132
111
  `/model` opens a bounded picker for the active backend. Rudder passes the
133
112
  selected value straight through to the underlying CLI: Claude uses
134
- `claude --model <value>`, and Codex uses `codex exec --model <value>`.
113
+ `claude --model <value>`, and Codex uses `codex --model <value>`.
135
114
 
136
115
  - Claude is alias-first like Claude Code itself: `sonnet`, `sonnet[1m]`,
137
116
  `opus`, `opus[1m]`, and `haiku` appear before explicit model IDs.
@@ -168,9 +147,10 @@ Each run gets a lightweight Rudder contract with:
168
147
  - acceptance criteria for the task
169
148
  - suggested verification commands
170
149
 
171
- After an agent finishes, Rudder verifies basic completion signals. If there are
172
- clear gaps, it can send a follow-up steering prompt. It does not auto-steer
173
- simple no-op greetings.
150
+ For tmux-launched agents, the contract is injected into the native process at
151
+ startup. The worker pane remains yours after the initial task, so you can keep
152
+ typing into Claude Code or Codex directly. Headless one-shot runs still use
153
+ Rudder's verifier and steering loop.
174
154
 
175
155
  ## One-Shot Commands
176
156
 
@@ -179,6 +159,7 @@ rudder "fix the failing tests"
179
159
  rudder claude "fix the auth redirect bug"
180
160
  rudder codex --model gpt-5.5 "refactor the parser"
181
161
  rudder run -d "rewrite this module"
162
+ rudder tui
182
163
  ```
183
164
 
184
165
  ## Run Management
package/dist/main.js CHANGED
@@ -2,10 +2,13 @@ import fsp from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { authStoreExists, runDoctor, runOnboard } from "./auth.js";
5
+ import { findRepoRoot } from "./git.js";
5
6
  import { cleanupRuns, deleteRun, listProjectRuns, mergeRun, printLogs, startRun, statusRuns, stopRun, watchRun, workerRun, } from "./run-manager.js";
6
7
  import { runInteractiveShell } from "./repl.js";
8
+ import { runTmuxDashboard } from "./tmux-dashboard.js";
7
9
  import { runInteractiveTui } from "./tui.js";
8
10
  import { isTty } from "./util.js";
11
+ import { attachTmuxSession, ensureTmuxDashboardSession, hasTmux, repoTmuxSessionName, shellCommand } from "./tmux.js";
9
12
  export async function main() {
10
13
  const parsed = parseArgs(process.argv.slice(2));
11
14
  if (parsed.flags.version || parsed.command === "version") {
@@ -32,6 +35,10 @@ export async function main() {
32
35
  }
33
36
  if (!parsed.command && isTty() && !parsed.flags.help) {
34
37
  await maybeOnboard();
38
+ if (!parsed.flags.noTmux && !parsed.flags.headless && hasTmux()) {
39
+ await openTmuxDashboard(parsed);
40
+ return;
41
+ }
35
42
  await runInteractiveTui({
36
43
  backend: parsed.flags.backend,
37
44
  model: parsed.flags.model,
@@ -44,6 +51,25 @@ export async function main() {
44
51
  return;
45
52
  }
46
53
  switch (parsed.command) {
54
+ case "__dashboard": {
55
+ const repo = parsed.flags.repo;
56
+ const tmuxSessionName = parsed.flags.tmuxSession;
57
+ if (!repo || !tmuxSessionName) {
58
+ throw new Error("__dashboard requires --repo and --tmux-session");
59
+ }
60
+ process.chdir(repo);
61
+ await runTmuxDashboard({
62
+ tmuxSessionName,
63
+ backend: parsed.flags.backend,
64
+ model: parsed.flags.model,
65
+ });
66
+ return;
67
+ }
68
+ case "tmux":
69
+ case "dashboard":
70
+ await maybeOnboard();
71
+ await openTmuxDashboard(parsed);
72
+ return;
47
73
  case "tui":
48
74
  await maybeOnboard();
49
75
  await runInteractiveTui({
@@ -256,6 +282,14 @@ function parseArgs(argv) {
256
282
  parsed.flags.nonInteractive = true;
257
283
  continue;
258
284
  }
285
+ if (arg === "--no-tmux") {
286
+ parsed.flags.noTmux = true;
287
+ continue;
288
+ }
289
+ if (arg === "--headless") {
290
+ parsed.flags.headless = true;
291
+ continue;
292
+ }
259
293
  if (takesValue(arg, "--model", "-m")) {
260
294
  parsed.flags.model = readValue(argv, ++i, arg);
261
295
  continue;
@@ -276,6 +310,10 @@ function parseArgs(argv) {
276
310
  parsed.flags.run = readValue(argv, ++i, arg);
277
311
  continue;
278
312
  }
313
+ if (takesValue(arg, "--tmux-session")) {
314
+ parsed.flags.tmuxSession = readValue(argv, ++i, arg);
315
+ continue;
316
+ }
279
317
  if (arg.startsWith("--model=")) {
280
318
  parsed.flags.model = arg.slice("--model=".length);
281
319
  continue;
@@ -296,6 +334,10 @@ function parseArgs(argv) {
296
334
  parsed.flags.run = arg.slice("--run=".length);
297
335
  continue;
298
336
  }
337
+ if (arg.startsWith("--tmux-session=")) {
338
+ parsed.flags.tmuxSession = arg.slice("--tmux-session=".length);
339
+ continue;
340
+ }
299
341
  if (!parsed.command && !arg.startsWith("-")) {
300
342
  parsed.command = arg;
301
343
  continue;
@@ -330,6 +372,40 @@ async function maybeOnboard() {
330
372
  }
331
373
  await runOnboard();
332
374
  }
375
+ async function openTmuxDashboard(parsed) {
376
+ if (!hasTmux()) {
377
+ await runInteractiveTui({
378
+ backend: parsed.flags.backend,
379
+ model: parsed.flags.model,
380
+ worktree: parsed.flags.worktree,
381
+ detach: parsed.flags.detach,
382
+ });
383
+ return;
384
+ }
385
+ const repoRoot = findRepoRoot();
386
+ const sessionName = parsed.flags.tmuxSession ?? repoTmuxSessionName(repoRoot);
387
+ const entry = process.argv[1];
388
+ if (!entry) {
389
+ throw new Error("Cannot locate Rudder entrypoint.");
390
+ }
391
+ const args = [
392
+ entry,
393
+ "__dashboard",
394
+ "--repo",
395
+ repoRoot,
396
+ "--tmux-session",
397
+ sessionName,
398
+ ...(parsed.flags.backend ? ["--backend", parsed.flags.backend] : []),
399
+ ...(parsed.flags.model ? ["--model", parsed.flags.model] : []),
400
+ ];
401
+ await ensureTmuxDashboardSession({
402
+ repoRoot,
403
+ sessionName,
404
+ dashboardCommand: shellCommand(process.execPath, args),
405
+ });
406
+ const code = await attachTmuxSession(sessionName);
407
+ process.exitCode = code;
408
+ }
333
409
  async function packageVersion() {
334
410
  const packageFile = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "package.json");
335
411
  const raw = await fsp.readFile(packageFile, "utf8").catch(() => "");
@@ -343,8 +419,9 @@ function printHelp() {
343
419
  console.log(`rudder
344
420
 
345
421
  Usage:
346
- rudder Open full-screen interactive TUI
347
- rudder tui Open full-screen interactive TUI
422
+ rudder Open tmux dashboard with native agent panes
423
+ rudder tmux Open tmux dashboard with native agent panes
424
+ rudder tui Open legacy full-screen stream TUI
348
425
  rudder "task"
349
426
  rudder run [options] "task"
350
427
  rudder claude [options] "task"
@@ -371,6 +448,8 @@ Options:
371
448
  -m, --model <model> Backend model
372
449
  -b, --backend <backend> claude or codex
373
450
  -C, --cwd <dir> Run from another directory
451
+ --no-tmux Use the legacy TUI for bare rudder
452
+ --headless Alias for --no-tmux on bare rudder
374
453
  --json Machine-readable output
375
454
  -v, --version Print version
376
455
  --allow-dirty Allow merge into dirty target branch
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { RunRecord } from "./types.js";
2
+ export declare function nativeAgentCommand(params: {
3
+ run: RunRecord;
4
+ prompt: string;
5
+ contract: string;
6
+ }): string;
@@ -0,0 +1,60 @@
1
+ import { shellQuote } from "./util.js";
2
+ export function nativeAgentCommand(params) {
3
+ const args = params.run.backend === "codex"
4
+ ? codexArgs(params.run, params.prompt, params.contract)
5
+ : claudeArgs(params.run, params.prompt, params.contract);
6
+ return args.map(shellQuote).join(" ");
7
+ }
8
+ function claudeArgs(run, prompt, contract) {
9
+ const model = run.model || "sonnet";
10
+ const sessionId = run.session?.nativeSessionId;
11
+ return compact([
12
+ "claude",
13
+ "--model",
14
+ model,
15
+ "--effort",
16
+ "xhigh",
17
+ "--permission-mode",
18
+ "bypassPermissions",
19
+ "--dangerously-skip-permissions",
20
+ "--append-system-prompt",
21
+ contract,
22
+ "--name",
23
+ paneTitle(run),
24
+ sessionId ? "--session-id" : undefined,
25
+ sessionId,
26
+ prompt,
27
+ ]);
28
+ }
29
+ function codexArgs(run, prompt, contract) {
30
+ const model = run.model || "gpt-5.5";
31
+ return [
32
+ "codex",
33
+ "--model",
34
+ model,
35
+ "--sandbox",
36
+ "danger-full-access",
37
+ "--ask-for-approval",
38
+ "never",
39
+ "--dangerously-bypass-approvals-and-sandbox",
40
+ "--enable",
41
+ "goals",
42
+ "-c",
43
+ 'model_reasoning_effort="xhigh"',
44
+ "-c",
45
+ 'model_reasoning_summary="detailed"',
46
+ "-c",
47
+ "model_supports_reasoning_summaries=true",
48
+ "--cd",
49
+ run.worktree.path,
50
+ [contract, "", prompt].join("\n"),
51
+ ];
52
+ }
53
+ function paneTitle(run) {
54
+ const words = run.task.replace(/\s+/g, " ").trim().slice(0, 34);
55
+ return `${run.backend}:${words || run.id.slice(0, 12)}`;
56
+ }
57
+ function compact(values) {
58
+ return values.filter((value) => Boolean(value));
59
+ }
60
+ //# sourceMappingURL=native-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-agents.js","sourceRoot":"","sources":["../src/native-agents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,UAAU,kBAAkB,CAAC,MAIlC;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO;QACzC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACvD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,UAAU,CAAC,GAAc,EAAE,MAAc,EAAE,QAAgB;IAClE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC;IACpC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;IAC/C,OAAO,OAAO,CAAC;QACb,QAAQ;QACR,SAAS;QACT,KAAK;QACL,UAAU;QACV,OAAO;QACP,mBAAmB;QACnB,mBAAmB;QACnB,gCAAgC;QAChC,wBAAwB;QACxB,QAAQ;QACR,QAAQ;QACR,SAAS,CAAC,GAAG,CAAC;QACd,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACtC,SAAS;QACT,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,GAAc,EAAE,MAAc,EAAE,QAAgB;IACjE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;IACrC,OAAO;QACL,OAAO;QACP,SAAS;QACT,KAAK;QACL,WAAW;QACX,oBAAoB;QACpB,oBAAoB;QACpB,OAAO;QACP,4CAA4C;QAC5C,UAAU;QACV,OAAO;QACP,IAAI;QACJ,gCAAgC;QAChC,IAAI;QACJ,oCAAoC;QACpC,IAAI;QACJ,yCAAyC;QACzC,MAAM;QACN,GAAG,CAAC,QAAQ,CAAC,IAAI;QACjB,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAc;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,OAAO,CAAC,MAAiC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -13,6 +13,14 @@ export declare function startRun(params: {
13
13
  silent?: boolean;
14
14
  view?: "default" | "shell";
15
15
  }): Promise<RunRecord>;
16
+ export declare function startNativeRun(params: {
17
+ task: string;
18
+ tmuxSessionName: string;
19
+ backend?: Exclude<BackendId, "acpx">;
20
+ model?: string;
21
+ focus?: boolean;
22
+ silent?: boolean;
23
+ }): Promise<RunRecord>;
16
24
  export declare function continueRun(params: {
17
25
  runId: string;
18
26
  prompt: string;
@@ -20,6 +28,7 @@ export declare function continueRun(params: {
20
28
  silent?: boolean;
21
29
  }): Promise<RunRecord>;
22
30
  export declare function workerRun(repoRoot: string, runId: string): Promise<void>;
31
+ export declare function writeAgentContext(repoRoot: string): Promise<void>;
23
32
  export declare function statusRuns(options?: {
24
33
  json?: boolean;
25
34
  }): Promise<void>;
@@ -1,12 +1,15 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { randomUUID } from "node:crypto";
2
3
  import fsp from "node:fs/promises";
3
4
  import path from "node:path";
4
5
  import { createSpec, renderContract, verifyRun } from "./brain.js";
5
6
  import { getBackend } from "./backends.js";
7
+ import { nativeAgentCommand } from "./native-agents.js";
6
8
  import { createRunRecord, agentContextPath, eventsPath, listRuns, loadConfig, loadRunRecord, outputPath, resolveRun, runDir, saveConfig, saveRunRecord, } from "./state.js";
7
9
  import { appendEvent, } from "./state.js";
8
10
  import { activeRunsForCheckout, createRunWorktree, currentBranch, currentCommit, findRepoRoot, hasChanges, mergeRunIntoCurrentBranch, processAlive, removeWorktree, } from "./git.js";
9
11
  import { ensureDir, isTty, newRunId, nowIso, pathExists, shortenHome } from "./util.js";
12
+ import { createAgentPane, killPane, selectPane } from "./tmux.js";
10
13
  const AUTO_STEER_DELAY_MS = 10_000;
11
14
  export async function startRun(params) {
12
15
  const repoRoot = findRepoRoot();
@@ -95,6 +98,109 @@ export async function startRun(params) {
95
98
  });
96
99
  return run;
97
100
  }
101
+ export async function startNativeRun(params) {
102
+ const repoRoot = findRepoRoot();
103
+ const config = await loadConfig();
104
+ const backend = params.backend ?? toNativeBackend(config.lastUsedBackend ?? config.defaultBackend);
105
+ const model = params.model ??
106
+ (backend === "claude"
107
+ ? normalizeClaudeDefault(config.backends.claude?.model)
108
+ : config.backends.codex?.model);
109
+ const baseCommit = await currentCommit(repoRoot);
110
+ const targetBranch = await currentBranch(repoRoot);
111
+ const id = newRunId(params.task);
112
+ const worktreeInfo = await createRunWorktree({ repoRoot, runId: id, task: params.task, baseCommit });
113
+ const run = await createRunRecord({
114
+ id,
115
+ repoRoot,
116
+ task: params.task,
117
+ backend,
118
+ model,
119
+ targetBranch,
120
+ baseCommit,
121
+ useWorktree: true,
122
+ worktreeBranch: worktreeInfo.branch,
123
+ worktreePath: worktreeInfo.path,
124
+ });
125
+ run.session = {
126
+ ...(run.session ?? {}),
127
+ nativeSessionId: backend === "claude" ? randomUUID() : run.session?.nativeSessionId,
128
+ sessionName: params.tmuxSessionName,
129
+ };
130
+ run.status = "running";
131
+ await saveRunRecord(run);
132
+ await emit(run, {
133
+ ts: nowIso(),
134
+ runId: run.id,
135
+ type: "run.created",
136
+ message: `Created worktree ${shortenHome(worktreeInfo.path)}`,
137
+ });
138
+ await writeAgentContext(repoRoot);
139
+ config.lastUsedBackend = backend;
140
+ await saveConfig(config);
141
+ try {
142
+ const backendAdapter = getBackend(backend);
143
+ const health = await backendAdapter.verify();
144
+ if (!health.ok) {
145
+ throw new Error(health.message);
146
+ }
147
+ const spec = await createSpec(run);
148
+ await emit(run, {
149
+ ts: nowIso(),
150
+ runId: run.id,
151
+ type: "planner.spec",
152
+ message: "Planner contract created",
153
+ data: spec,
154
+ });
155
+ const contract = renderContract(spec);
156
+ const command = nativeAgentCommand({
157
+ run,
158
+ prompt: params.task,
159
+ contract,
160
+ });
161
+ await ensureDir(path.dirname(outputPath(repoRoot, run.id)));
162
+ const title = `${backend}:${shortTask(params.task)}`;
163
+ const paneId = await createAgentPane({
164
+ sessionName: params.tmuxSessionName,
165
+ cwd: worktreeInfo.path,
166
+ title,
167
+ command,
168
+ logPath: outputPath(repoRoot, run.id),
169
+ });
170
+ run.terminal = {
171
+ kind: "tmux",
172
+ sessionName: params.tmuxSessionName,
173
+ paneId,
174
+ paneTitle: title,
175
+ logPath: outputPath(repoRoot, run.id),
176
+ launchedAt: nowIso(),
177
+ };
178
+ await saveRunRecord(run);
179
+ await emit(run, {
180
+ ts: nowIso(),
181
+ runId: run.id,
182
+ type: "run.started",
183
+ message: `${backend} pane started`,
184
+ data: { paneId, worktree: worktreeInfo.path },
185
+ });
186
+ await writeAgentContext(repoRoot);
187
+ if (params.focus !== false && paneId) {
188
+ await selectPane(paneId);
189
+ }
190
+ if (!params.silent) {
191
+ console.log(`Started ${run.id}`);
192
+ }
193
+ return run;
194
+ }
195
+ catch (error) {
196
+ const message = error instanceof Error ? error.message : String(error);
197
+ run.status = "failed";
198
+ await saveRunRecord(run);
199
+ await emit(run, { ts: nowIso(), runId: run.id, type: "run.failed", message });
200
+ await writeAgentContext(repoRoot);
201
+ throw error;
202
+ }
203
+ }
98
204
  export async function continueRun(params) {
99
205
  const repoRoot = findRepoRoot();
100
206
  const run = await loadRunRecord(repoRoot, params.runId);
@@ -343,7 +449,7 @@ function buildSteeringPrompt(verification) {
343
449
  .filter(Boolean)
344
450
  .join("\n");
345
451
  }
346
- async function writeAgentContext(repoRoot) {
452
+ export async function writeAgentContext(repoRoot) {
347
453
  const runs = await listRuns(repoRoot);
348
454
  const active = runs.filter((run) => isActiveStatus(run.status));
349
455
  const lines = [
@@ -376,6 +482,12 @@ function delay(ms) {
376
482
  function normalizeClaudeDefault(model) {
377
483
  return model === "opus" ? "sonnet" : model;
378
484
  }
485
+ function toNativeBackend(backend) {
486
+ return backend === "codex" ? "codex" : "claude";
487
+ }
488
+ function shortTask(task) {
489
+ return task.replace(/\s+/g, " ").trim().slice(0, 34) || "agent";
490
+ }
379
491
  export async function statusRuns(options) {
380
492
  const repoRoot = findRepoRoot();
381
493
  const runs = await listRuns(repoRoot);
@@ -475,6 +587,9 @@ export async function stopRun(runId, options) {
475
587
  if (run.process?.pid && processAlive(run.process.pid)) {
476
588
  process.kill(run.process.pid, "SIGTERM");
477
589
  }
590
+ if (run.terminal?.kind === "tmux") {
591
+ await killPane(run.terminal.paneId).catch(() => undefined);
592
+ }
478
593
  run.status = "cancelled";
479
594
  run.process = {
480
595
  ...(run.process ?? {}),
@@ -535,6 +650,9 @@ export async function deleteRun(runId, options) {
535
650
  if (latest.process?.pid && processAlive(latest.process.pid)) {
536
651
  process.kill(latest.process.pid, "SIGTERM");
537
652
  }
653
+ if (latest.terminal?.kind === "tmux") {
654
+ await killPane(latest.terminal.paneId).catch(() => undefined);
655
+ }
538
656
  if (latest.worktree.enabled) {
539
657
  await removeWorktree(repoRoot, latest.worktree.path, options?.force ?? true).catch(() => undefined);
540
658
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../src/run-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../src/run-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { BackendId } from "./types.js";
2
+ type DashboardDefaults = {
3
+ tmuxSessionName: string;
4
+ backend?: BackendId;
5
+ model?: string;
6
+ };
7
+ export declare function runTmuxDashboard(defaults: DashboardDefaults): Promise<void>;
8
+ export {};
@@ -0,0 +1,319 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useState } from "react";
3
+ import { Box, Text, render, useApp, useInput, useWindowSize } from "ink";
4
+ import { currentBranch, findRepoRoot, hasChanges } from "./git.js";
5
+ import { discoverModelOptions, fallbackModelOptions } from "./models.js";
6
+ import { deleteRun, mergeRun, startNativeRun, stopRun, } from "./run-manager.js";
7
+ import { listRuns, loadConfig } from "./state.js";
8
+ import { detachClient, selectNextPane, selectPane } from "./tmux.js";
9
+ import { shortenHome } from "./util.js";
10
+ export async function runTmuxDashboard(defaults) {
11
+ const instance = render(_jsx(TmuxDashboard, { defaults: defaults }), {
12
+ exitOnCtrlC: false,
13
+ maxFps: 30,
14
+ });
15
+ await instance.waitUntilExit();
16
+ }
17
+ function TmuxDashboard({ defaults }) {
18
+ const app = useApp();
19
+ const size = useWindowSize();
20
+ const [repoRoot, setRepoRoot] = useState(() => findRepoRoot());
21
+ const [branch, setBranch] = useState("HEAD");
22
+ const [config, setConfig] = useState(null);
23
+ const [runs, setRuns] = useState([]);
24
+ const [selectedRunId, setSelectedRunId] = useState();
25
+ const [backend, setBackend] = useState(toNativeBackend(defaults.backend ?? "claude"));
26
+ const [model, setModel] = useState(defaults.model);
27
+ const [input, setInput] = useState("");
28
+ const [notice, setNotice] = useState("Type a task and press Enter. New agents open as real terminal panes.");
29
+ const [submitting, setSubmitting] = useState(false);
30
+ const [modelMenuOpen, setModelMenuOpen] = useState(false);
31
+ const [modelIndex, setModelIndex] = useState(0);
32
+ const [models, setModels] = useState([]);
33
+ const [deleteIntent, setDeleteIntent] = useState(null);
34
+ const [preferencesLoaded, setPreferencesLoaded] = useState(false);
35
+ const refresh = useCallback(async () => {
36
+ const root = findRepoRoot();
37
+ const [nextConfig, nextBranch, nextRuns] = await Promise.all([
38
+ loadConfig(),
39
+ currentBranch(root),
40
+ listRuns(root),
41
+ ]);
42
+ setRepoRoot(root);
43
+ setBranch(nextBranch);
44
+ setConfig(nextConfig);
45
+ setRuns(nextRuns);
46
+ if (!preferencesLoaded) {
47
+ setBackend(toNativeBackend(defaults.backend ?? nextConfig.lastUsedBackend ?? nextConfig.defaultBackend));
48
+ setModel(defaults.model);
49
+ setPreferencesLoaded(true);
50
+ }
51
+ setSelectedRunId((current) => current ?? nextRuns[0]?.id);
52
+ }, [defaults.backend, defaults.model, preferencesLoaded]);
53
+ useEffect(() => {
54
+ void refresh();
55
+ const timer = setInterval(() => void refresh(), 1000);
56
+ return () => clearInterval(timer);
57
+ }, [refresh]);
58
+ useEffect(() => {
59
+ let cancelled = false;
60
+ const configuredDefault = modelForBackend(backend, config);
61
+ void discoverModelOptions(backend, configuredDefault)
62
+ .then((options) => {
63
+ if (!cancelled) {
64
+ setModels(options);
65
+ setModelIndex(0);
66
+ }
67
+ })
68
+ .catch(() => {
69
+ if (!cancelled) {
70
+ setModels(fallbackModelOptions(backend, configuredDefault));
71
+ }
72
+ });
73
+ return () => {
74
+ cancelled = true;
75
+ };
76
+ }, [backend, config]);
77
+ const selectedIndex = Math.max(0, runs.findIndex((run) => run.id === selectedRunId));
78
+ const selectedRun = runs[selectedIndex];
79
+ const modelOptions = useMemo(() => models.length ? models : fallbackModelOptions(backend, modelForBackend(backend, config)), [backend, config, models]);
80
+ const submitTask = useCallback(async () => {
81
+ const task = input.trim();
82
+ if (!task || submitting) {
83
+ return;
84
+ }
85
+ if (task === "/model") {
86
+ setInput("");
87
+ setModelMenuOpen(true);
88
+ return;
89
+ }
90
+ if (task.startsWith("/model ")) {
91
+ setModel(task.slice("/model ".length).trim() || undefined);
92
+ setInput("");
93
+ return;
94
+ }
95
+ if (task === "/backend claude" || task === "/backend codex") {
96
+ const next = task.endsWith("codex") ? "codex" : "claude";
97
+ setBackend(next);
98
+ setModel(undefined);
99
+ setInput("");
100
+ setNotice(`Backend ${next}`);
101
+ return;
102
+ }
103
+ setSubmitting(true);
104
+ setNotice(`Starting ${backend}...`);
105
+ try {
106
+ const run = await startNativeRun({
107
+ task,
108
+ backend,
109
+ model,
110
+ tmuxSessionName: defaults.tmuxSessionName,
111
+ focus: true,
112
+ silent: true,
113
+ });
114
+ setInput("");
115
+ setSelectedRunId(run.id);
116
+ setNotice(`Started ${shortId(run.id)} in pane ${run.terminal?.paneId ?? ""}`);
117
+ await refresh();
118
+ }
119
+ catch (error) {
120
+ setNotice(error instanceof Error ? error.message : String(error));
121
+ }
122
+ finally {
123
+ setSubmitting(false);
124
+ }
125
+ }, [backend, defaults.tmuxSessionName, input, model, refresh, submitting]);
126
+ const focusSelected = useCallback(async () => {
127
+ if (!selectedRun?.terminal?.paneId) {
128
+ setNotice("Selected run has no live terminal pane.");
129
+ return;
130
+ }
131
+ await selectPane(selectedRun.terminal.paneId);
132
+ }, [selectedRun]);
133
+ const mergeSelected = useCallback(async (runOverride) => {
134
+ const run = runOverride ?? selectedRun;
135
+ if (!run) {
136
+ return;
137
+ }
138
+ try {
139
+ await mergeRun(run.id, false, { silent: true });
140
+ setNotice(`Merged ${shortId(run.id)}`);
141
+ await refresh();
142
+ }
143
+ catch (error) {
144
+ setNotice(error instanceof Error ? error.message : String(error));
145
+ }
146
+ }, [refresh, selectedRun]);
147
+ const requestDelete = useCallback(async () => {
148
+ if (!selectedRun) {
149
+ return;
150
+ }
151
+ setDeleteIntent({
152
+ runId: selectedRun.id,
153
+ canMerge: selectedRun.worktree.enabled && await hasChanges(selectedRun.worktree.path),
154
+ });
155
+ }, [selectedRun]);
156
+ const deleteSelected = useCallback(async (mergeFirst) => {
157
+ if (!deleteIntent) {
158
+ return;
159
+ }
160
+ try {
161
+ await deleteRun(deleteIntent.runId, { mergeFirst, force: true, silent: true });
162
+ setDeleteIntent(null);
163
+ setNotice(`Deleted ${shortId(deleteIntent.runId)}`);
164
+ await refresh();
165
+ }
166
+ catch (error) {
167
+ setNotice(error instanceof Error ? error.message : String(error));
168
+ }
169
+ }, [deleteIntent, refresh]);
170
+ useInput((chunk, key) => {
171
+ if (key.ctrl && chunk === "c") {
172
+ void detachClient(defaults.tmuxSessionName);
173
+ return;
174
+ }
175
+ if (deleteIntent) {
176
+ if (key.escape) {
177
+ setDeleteIntent(null);
178
+ return;
179
+ }
180
+ if (chunk === "m" && deleteIntent.canMerge) {
181
+ void deleteSelected(true);
182
+ return;
183
+ }
184
+ if (chunk === "d") {
185
+ void deleteSelected(false);
186
+ return;
187
+ }
188
+ return;
189
+ }
190
+ if (modelMenuOpen) {
191
+ if (key.escape) {
192
+ setModelMenuOpen(false);
193
+ return;
194
+ }
195
+ if (key.upArrow || chunk === "k") {
196
+ setModelIndex((current) => Math.max(0, current - 1));
197
+ return;
198
+ }
199
+ if (key.downArrow || chunk === "j") {
200
+ setModelIndex((current) => Math.min(modelOptions.length - 1, current + 1));
201
+ return;
202
+ }
203
+ if (key.return) {
204
+ const option = modelOptions[modelIndex];
205
+ setModel(option?.value);
206
+ setModelMenuOpen(false);
207
+ setNotice(option?.value ? `Model ${option.value}` : "Using CLI default model");
208
+ return;
209
+ }
210
+ return;
211
+ }
212
+ if (key.tab) {
213
+ void selectNextPane(defaults.tmuxSessionName);
214
+ return;
215
+ }
216
+ if (key.upArrow || (chunk === "k" && !input)) {
217
+ const next = Math.max(0, selectedIndex - 1);
218
+ setSelectedRunId(runs[next]?.id);
219
+ return;
220
+ }
221
+ if (key.downArrow || (chunk === "j" && !input)) {
222
+ const next = Math.min(runs.length - 1, selectedIndex + 1);
223
+ setSelectedRunId(runs[next]?.id);
224
+ return;
225
+ }
226
+ if (!input && chunk === "o") {
227
+ setModelMenuOpen(true);
228
+ return;
229
+ }
230
+ if (!input && chunk === "f") {
231
+ void focusSelected();
232
+ return;
233
+ }
234
+ if (!input && chunk === "m") {
235
+ void mergeSelected();
236
+ return;
237
+ }
238
+ if (!input && chunk === "d") {
239
+ void requestDelete();
240
+ return;
241
+ }
242
+ if (!input && chunk === "s" && selectedRun) {
243
+ void stopRun(selectedRun.id, { silent: true }).then(refresh);
244
+ return;
245
+ }
246
+ if (!input && chunk === "q") {
247
+ void detachClient(defaults.tmuxSessionName);
248
+ app.exit();
249
+ return;
250
+ }
251
+ if (key.return) {
252
+ if (input.trim()) {
253
+ void submitTask();
254
+ }
255
+ else {
256
+ void focusSelected();
257
+ }
258
+ return;
259
+ }
260
+ if (key.backspace || key.delete) {
261
+ setInput((current) => current.slice(0, -1));
262
+ return;
263
+ }
264
+ if ((key.ctrl && chunk === "u") || chunk === "\u0015") {
265
+ setInput("");
266
+ return;
267
+ }
268
+ if ((key.ctrl && chunk === "w") || chunk === "\u0017" || (key.meta && (key.backspace || key.delete))) {
269
+ setInput((current) => current.trimEnd().replace(/\s*\S+$/, ""));
270
+ return;
271
+ }
272
+ if (chunk === "/" && !input) {
273
+ setNotice("/model opens model picker. /backend claude|codex switches backend.");
274
+ setInput("/");
275
+ return;
276
+ }
277
+ if (chunk && !key.ctrl && !key.meta) {
278
+ setInput((current) => current + chunk);
279
+ }
280
+ });
281
+ const width = Math.max(80, size.columns);
282
+ const height = Math.max(24, size.rows);
283
+ const leftWidth = Math.max(30, Math.min(42, Math.floor(width * 0.28)));
284
+ const rightWidth = Math.max(42, width - leftWidth - 3);
285
+ const visibleRuns = runs.slice(0, Math.max(1, height - 9));
286
+ const header = summarize(`rudder ${shortenHome(repoRoot)} ${branch} | ${backend} ${model || "default"} | tmux ${defaults.tmuxSessionName}`, width - 4);
287
+ return (_jsxs(Box, { flexDirection: "column", height: height, children: [_jsx(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, children: _jsx(Text, { bold: true, children: header }) }), _jsxs(Box, { flexGrow: 1, children: [_jsxs(Box, { width: leftWidth, borderStyle: "round", borderColor: "gray", flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, children: ["agents ", _jsxs(Text, { color: "gray", children: [runs.length, " runs"] })] }), visibleRuns.length === 0 ? _jsx(Text, { color: "gray", children: "No agents yet." }) : visibleRuns.map((run) => (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: run.id === selectedRun?.id ? "cyan" : undefined, children: [run.id === selectedRun?.id ? "> " : " ", statusMark(run), " ", run.backend, " ", summarize(run.task, leftWidth - 14)] }), _jsxs(Text, { color: "gray", children: [" ", run.terminal?.paneId ? `pane ${run.terminal.paneId}` : run.status] })] }, run.id)))] }), _jsx(Box, { width: rightWidth, borderStyle: "round", borderColor: selectedRun ? "cyan" : "gray", flexDirection: "column", paddingX: 1, children: selectedRun ? (_jsxs(_Fragment, { children: [_jsxs(Text, { bold: true, children: [selectedRun.backend, " ", shortId(selectedRun.id), " ", _jsx(Text, { color: "gray", children: selectedRun.status })] }), _jsx(Text, { color: "gray", children: shortenHome(selectedRun.worktree.path) }), _jsx(Text, { children: selectedRun.task }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "Enter/f focus pane m merge d delete s stop pane" }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "The selected worker is a native terminal pane. Focus it to use Claude Code or Codex directly, including slash commands, interrupting, copy/paste, resume, and model-native controls." }) })] })) : (_jsx(Text, { color: "gray", children: "Start an agent to create a native worker pane." })) })] }), deleteIntent ? (_jsxs(Box, { borderStyle: "round", borderColor: "red", paddingX: 1, children: [_jsxs(Text, { children: ["Delete ", shortId(deleteIntent.runId), "? "] }), deleteIntent.canMerge ? _jsx(Text, { color: "green", children: "m merge then delete " }) : null, _jsx(Text, { color: "red", children: "d delete " }), _jsx(Text, { color: "gray", children: "Esc cancel" })] })) : modelMenuOpen ? (_jsx(ModelMenu, { options: modelOptions, selected: modelIndex, backend: backend })) : null, _jsxs(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "TASK" }), _jsxs(Text, { children: [" ", input] }), _jsx(Text, { color: "cyan", children: "_" }), _jsxs(Text, { color: "gray", children: [" ", submitting ? "starting..." : notice] })] }), _jsx(Box, { children: _jsx(Text, { color: "gray", children: "Enter start/focus Tab focus pane o model /backend switch j/k select m merge d delete q detach" }) })] }));
288
+ }
289
+ function ModelMenu({ options, selected, backend }) {
290
+ return (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, children: ["Pick a ", backend, " model"] }), options.slice(0, 10).map((option, index) => (_jsxs(Text, { color: index === selected ? "cyan" : undefined, children: [index === selected ? "> " : " ", option.label, option.detail ? _jsxs(Text, { color: "gray", children: [" ", option.detail] }) : null] }, `${option.value ?? "default"}-${index}`))), _jsx(Text, { color: "gray", children: "Enter selects, Esc cancels. Type /model <id> for a custom model." })] }));
291
+ }
292
+ function modelForBackend(backend, config) {
293
+ return backend === "claude" ? config?.backends.claude?.model : config?.backends.codex?.model;
294
+ }
295
+ function toNativeBackend(backend) {
296
+ return backend === "codex" ? "codex" : "claude";
297
+ }
298
+ function shortId(id) {
299
+ return id.slice(0, 14);
300
+ }
301
+ function summarize(value, width) {
302
+ const clean = value.replace(/\s+/g, " ").trim();
303
+ if (clean.length <= width) {
304
+ return clean;
305
+ }
306
+ return `${clean.slice(0, Math.max(0, width - 1))}…`;
307
+ }
308
+ function statusMark(run) {
309
+ if (run.status === "merged")
310
+ return "ok";
311
+ if (run.status === "failed" || run.status === "merge-conflict")
312
+ return "!!";
313
+ if (run.status === "cancelled")
314
+ return "--";
315
+ if (run.terminal?.paneId)
316
+ return "tm";
317
+ return "..";
318
+ }
319
+ //# sourceMappingURL=tmux-dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmux-dashboard.js","sourceRoot":"","sources":["../src/tmux-dashboard.tsx"],"names":[],"mappings":"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"}
package/dist/tmux.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ export declare function hasTmux(): boolean;
2
+ export declare function repoTmuxSessionName(repoRoot: string): string;
3
+ export declare function shellCommand(command: string, args?: string[]): string;
4
+ export declare function ensureTmuxDashboardSession(params: {
5
+ repoRoot: string;
6
+ sessionName: string;
7
+ dashboardCommand: string;
8
+ }): Promise<void>;
9
+ export declare function attachTmuxSession(sessionName: string): Promise<number>;
10
+ export declare function createAgentPane(params: {
11
+ sessionName: string;
12
+ cwd: string;
13
+ title: string;
14
+ command: string;
15
+ logPath?: string;
16
+ }): Promise<string>;
17
+ export declare function selectPane(paneId: string): Promise<void>;
18
+ export declare function selectNextPane(sessionName: string): Promise<void>;
19
+ export declare function killPane(paneId: string): Promise<void>;
20
+ export declare function paneAlive(paneId: string): Promise<boolean>;
21
+ export declare function detachClient(sessionName: string): Promise<void>;
package/dist/tmux.js ADDED
@@ -0,0 +1,93 @@
1
+ import { spawn } from "node:child_process";
2
+ import path from "node:path";
3
+ import { commandExists, runCommand, shellQuote, shortHash, slugify } from "./util.js";
4
+ export function hasTmux() {
5
+ return commandExists("tmux");
6
+ }
7
+ export function repoTmuxSessionName(repoRoot) {
8
+ const repo = slugify(path.basename(repoRoot), "repo").replace(/-/g, "_");
9
+ return `rudder_${repo}_${shortHash(repoRoot).slice(0, 8)}`;
10
+ }
11
+ export function shellCommand(command, args = []) {
12
+ return [command, ...args].map(shellQuote).join(" ");
13
+ }
14
+ export async function ensureTmuxDashboardSession(params) {
15
+ if (await tmuxSessionExists(params.sessionName)) {
16
+ return;
17
+ }
18
+ await runTmux([
19
+ "new-session",
20
+ "-d",
21
+ "-s",
22
+ params.sessionName,
23
+ "-c",
24
+ params.repoRoot,
25
+ "-n",
26
+ "rudder",
27
+ params.dashboardCommand,
28
+ ]);
29
+ await runTmux(["set-option", "-t", params.sessionName, "mouse", "on"], true);
30
+ await runTmux(["set-option", "-t", params.sessionName, "pane-border-status", "top"], true);
31
+ await runTmux(["set-option", "-t", params.sessionName, "pane-border-format", " #{pane_title} "], true);
32
+ await runTmux(["select-pane", "-t", `${params.sessionName}:0.0`, "-T", "rudder dashboard"], true);
33
+ }
34
+ export async function attachTmuxSession(sessionName) {
35
+ return await new Promise((resolve, reject) => {
36
+ const args = process.env.TMUX
37
+ ? ["switch-client", "-t", sessionName]
38
+ : ["attach-session", "-t", sessionName];
39
+ const child = spawn("tmux", args, {
40
+ stdio: "inherit",
41
+ });
42
+ child.on("error", reject);
43
+ child.on("close", (code) => resolve(code ?? 0));
44
+ });
45
+ }
46
+ export async function createAgentPane(params) {
47
+ const result = await runTmux([
48
+ "split-window",
49
+ "-h",
50
+ "-t",
51
+ `${params.sessionName}:0`,
52
+ "-c",
53
+ params.cwd,
54
+ "-P",
55
+ "-F",
56
+ "#{pane_id}",
57
+ params.command,
58
+ ]);
59
+ const paneId = result.stdout.trim();
60
+ if (paneId) {
61
+ await runTmux(["select-pane", "-t", paneId, "-T", params.title], true);
62
+ if (params.logPath) {
63
+ await runTmux(["pipe-pane", "-o", "-t", paneId, `cat >> ${shellQuote(params.logPath)}`], true);
64
+ }
65
+ await runTmux(["select-layout", "-t", `${params.sessionName}:0`, "tiled"], true);
66
+ await selectPane(paneId);
67
+ }
68
+ return paneId;
69
+ }
70
+ export async function selectPane(paneId) {
71
+ await runTmux(["select-pane", "-t", paneId], true);
72
+ }
73
+ export async function selectNextPane(sessionName) {
74
+ await runTmux(["select-pane", "-t", `${sessionName}:0.+`], true);
75
+ }
76
+ export async function killPane(paneId) {
77
+ await runTmux(["kill-pane", "-t", paneId], true);
78
+ }
79
+ export async function paneAlive(paneId) {
80
+ const result = await runTmux(["display-message", "-p", "-t", paneId, "#{pane_id}"], true);
81
+ return result.code === 0 && result.stdout.trim() === paneId;
82
+ }
83
+ export async function detachClient(sessionName) {
84
+ await runTmux(["detach-client", "-s", sessionName], true);
85
+ }
86
+ async function tmuxSessionExists(sessionName) {
87
+ const result = await runTmux(["has-session", "-t", sessionName], true);
88
+ return result.code === 0;
89
+ }
90
+ async function runTmux(args, allowFailure = false) {
91
+ return await runCommand("tmux", args, { allowFailure });
92
+ }
93
+ //# sourceMappingURL=tmux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../src/tmux.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -117,6 +117,14 @@ export type RunRecord = {
117
117
  acpxSessionId?: string;
118
118
  sessionName?: string;
119
119
  };
120
+ terminal?: {
121
+ kind: "tmux";
122
+ sessionName: string;
123
+ paneId: string;
124
+ paneTitle?: string;
125
+ logPath?: string;
126
+ launchedAt: string;
127
+ };
120
128
  verification?: VerificationResult;
121
129
  merge?: MergeState;
122
130
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viraatdas/rudder",
3
- "version": "0.3.10",
3
+ "version": "0.4.1",
4
4
  "description": "A Claude Code-style terminal app for running coding agents with worktree-isolated runs.",
5
5
  "type": "module",
6
6
  "bin": {