@viraatdas/rudder 1.0.2 → 1.0.4
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 +119 -108
- package/dist/native/rudder-native +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,47 +9,39 @@
|
|
|
9
9
|
[](https://www.npmjs.com/package/@viraatdas/rudder)
|
|
10
10
|
[](https://www.npmjs.com/package/@viraatdas/rudder)
|
|
11
11
|
[](https://nodejs.org/)
|
|
12
|
-
[](#run)
|
|
13
12
|
[](https://rudder.viraat.dev)
|
|
14
13
|
|
|
15
|
-
Rudder is a
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Claude Code or Codex processes inside the worker pane.
|
|
14
|
+
Rudder is a terminal command center for running local coding agents. It opens a
|
|
15
|
+
native three-pane dashboard, creates an isolated git worktree for each task, and
|
|
16
|
+
runs real Claude Code or Codex processes in the worker pane.
|
|
19
17
|
|
|
20
|
-
##
|
|
18
|
+
## Install
|
|
21
19
|
|
|
22
20
|
```bash
|
|
23
21
|
npm install -g @viraatdas/rudder@latest
|
|
24
|
-
rudder onboard
|
|
25
22
|
rudder
|
|
26
23
|
```
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
```text
|
|
31
|
-
fix the failing tests
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Upgrade later with:
|
|
25
|
+
Upgrade with the same command:
|
|
35
26
|
|
|
36
27
|
```bash
|
|
37
28
|
npm install -g @viraatdas/rudder@latest
|
|
38
29
|
```
|
|
39
30
|
|
|
40
|
-
Run without
|
|
31
|
+
Run without a global install:
|
|
41
32
|
|
|
42
33
|
```bash
|
|
43
|
-
npx @viraatdas/rudder@latest
|
|
34
|
+
npx @viraatdas/rudder@latest
|
|
44
35
|
```
|
|
45
36
|
|
|
46
37
|
## Requirements
|
|
47
38
|
|
|
48
39
|
- Node.js 20 or newer
|
|
49
|
-
- Git
|
|
40
|
+
- Git
|
|
50
41
|
- Claude Code and/or Codex installed and logged in
|
|
42
|
+
- macOS, Linux, or another Unix-like terminal environment
|
|
51
43
|
|
|
52
|
-
Check
|
|
44
|
+
Check the local setup:
|
|
53
45
|
|
|
54
46
|
```bash
|
|
55
47
|
rudder doctor
|
|
@@ -61,120 +53,142 @@ rudder doctor
|
|
|
61
53
|
rudder onboard
|
|
62
54
|
```
|
|
63
55
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
`~/.rudder/config.json`.
|
|
67
|
-
|
|
68
|
-
Detected auth sources:
|
|
56
|
+
Onboarding checks for `claude`, `codex`, git, auth files, env vars, and acpx.
|
|
57
|
+
It uses the auth you already have whenever possible:
|
|
69
58
|
|
|
70
59
|
- Claude Code auth from macOS Keychain or `~/.claude/.credentials.json`
|
|
71
60
|
- Codex auth from `~/.codex/auth.json`
|
|
72
61
|
- `ANTHROPIC_API_KEY` and `OPENAI_API_KEY`
|
|
73
62
|
|
|
74
|
-
|
|
63
|
+
If auth is missing, Rudder lets you skip it and set up the backend later. It
|
|
64
|
+
does not require API keys when you already use Claude Code or Codex login.
|
|
75
65
|
|
|
76
|
-
|
|
66
|
+
Config is written to `~/.rudder/config.json`. Mirrored auth metadata is written
|
|
67
|
+
to `~/.rudder/auth-profiles.json`.
|
|
68
|
+
|
|
69
|
+
## Dashboard
|
|
70
|
+
|
|
71
|
+
Start the native dashboard:
|
|
77
72
|
|
|
78
73
|
```bash
|
|
79
74
|
rudder
|
|
80
75
|
```
|
|
81
76
|
|
|
82
|
-
The
|
|
77
|
+
The dashboard has three panes:
|
|
78
|
+
|
|
79
|
+
- `agents`: the left pane with one row per task, its backend, model, effort, and
|
|
80
|
+
completion status
|
|
81
|
+
- `worker`: the right pane with the actual Claude Code or Codex terminal
|
|
82
|
+
- `task`: the bottom input for starting a new agent
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
Type a task in the task pane and press `Enter`. Rudder creates a worktree,
|
|
85
|
+
writes the current agent context to `RUDDER.md`, and starts the selected backend
|
|
86
|
+
inside the worker pane.
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
slash commands,
|
|
90
|
-
terminal UI.
|
|
88
|
+
When the worker pane is focused, your keystrokes go directly to Claude Code or
|
|
89
|
+
Codex. Their slash commands, cursor movement, copy/paste, interrupts, and
|
|
90
|
+
terminal UI continue to work normally.
|
|
91
|
+
|
|
92
|
+
## Keys
|
|
91
93
|
|
|
92
94
|
| Key | Action |
|
|
93
95
|
| --- | --- |
|
|
94
|
-
| `Enter` | Start
|
|
95
|
-
| `Tab` |
|
|
96
|
-
| `
|
|
97
|
-
|
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
| `
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
96
|
+
| `Enter` | Start the typed task, or focus the selected worker when the task input is empty |
|
|
97
|
+
| `Tab` / `Shift+Tab` | Cycle focus across agents, worker, and task panes |
|
|
98
|
+
| `Alt-1` / `Alt-2` / `Alt-3` | Focus agents, worker, or task directly |
|
|
99
|
+
| `Ctrl-G` | Toggle Rudder nav mode while focused inside a worker |
|
|
100
|
+
| `j` / `k` or arrows | Move through agents when the agents pane is focused |
|
|
101
|
+
| `/model` | Open the provider-first model picker |
|
|
102
|
+
| `/help` | Show the short command hint |
|
|
103
|
+
| `v` | Open the selected agent's Hunk review view |
|
|
104
|
+
| `m` | Merge the selected completed worktree |
|
|
105
|
+
| `M` | Merge all completed worktrees |
|
|
106
|
+
| `d` | Delete the selected agent; if its worktree has changes, Rudder asks you to merge or confirm discard |
|
|
107
|
+
| `q` | Quit when the worker is not consuming input |
|
|
108
|
+
|
|
109
|
+
Use `Ctrl-G` before a Rudder shortcut if the worker pane is focused and you want
|
|
110
|
+
the key handled by Rudder instead of by Claude Code or Codex.
|
|
111
|
+
|
|
112
|
+
## Models
|
|
113
|
+
|
|
114
|
+
Run `/model` in the task pane. Rudder first asks for the provider, then the
|
|
115
|
+
model, then the effort level supported by that model.
|
|
116
|
+
|
|
117
|
+
- Claude models include Claude Code aliases such as `sonnet`, `sonnet[1m]`,
|
|
118
|
+
`opus`, `opus[1m]`, and `haiku`, plus explicit Claude model IDs when
|
|
119
|
+
discovered.
|
|
120
|
+
- Codex models include Codex-relevant OpenAI model IDs such as `gpt-5.5`,
|
|
121
|
+
`gpt-5.4-codex`, and other discovered GPT-5/Codex models.
|
|
122
|
+
- `auto` effort means Rudder does not pass an effort override.
|
|
123
|
+
|
|
124
|
+
Rudder refreshes model metadata from `https://models.dev/api.json` before the
|
|
125
|
+
dashboard starts and caches it in `~/.rudder/models-dev.json`. If the network is
|
|
126
|
+
unavailable, it falls back to local Claude session history and Codex's local
|
|
127
|
+
model cache.
|
|
128
|
+
|
|
129
|
+
## Agent Launch
|
|
130
|
+
|
|
131
|
+
Native dashboard workers launch the official CLIs directly.
|
|
132
|
+
|
|
133
|
+
Claude Code:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
claude --permission-mode bypassPermissions --model <model> --effort <effort> "<task>"
|
|
116
137
|
```
|
|
117
138
|
|
|
118
|
-
|
|
119
|
-
`RUDDER_LEGACY_TMUX=1 rudder`.
|
|
139
|
+
Codex:
|
|
120
140
|
|
|
121
|
-
|
|
141
|
+
```bash
|
|
142
|
+
codex --ask-for-approval never --sandbox danger-full-access \
|
|
143
|
+
-c model_reasoning_summary="detailed" \
|
|
144
|
+
-c model_supports_reasoning_summaries=true \
|
|
145
|
+
-c model_reasoning_effort="<effort>" \
|
|
146
|
+
-m <model> "<task>"
|
|
147
|
+
```
|
|
122
148
|
|
|
123
|
-
|
|
124
|
-
model, then pick the effort level supported by that model. `auto` means Rudder
|
|
125
|
-
does not pass an effort override and lets the selected backend/model choose its
|
|
126
|
-
own default. If you pick one, Rudder passes it through: Claude uses `claude
|
|
127
|
-
--model <value> --effort <value>`, and Codex uses `codex --model <value> -c
|
|
128
|
-
model_reasoning_effort="<value>"`.
|
|
129
|
-
|
|
130
|
-
- Claude is alias-first like Claude Code itself: `sonnet`, `sonnet[1m]`,
|
|
131
|
-
`opus`, `opus[1m]`, and `haiku` appear before explicit model IDs.
|
|
132
|
-
- Codex shows Codex-relevant OpenAI model IDs.
|
|
133
|
-
- Explicit Claude and Codex model IDs are fetched from
|
|
134
|
-
`https://models.dev/api.json`, the same public model registry used by
|
|
135
|
-
opencode.
|
|
136
|
-
- The fetched registry is cached in `~/.rudder/models-dev.json`.
|
|
137
|
-
- If the network is unavailable, Rudder falls back to local Claude session
|
|
138
|
-
history and Codex's `~/.codex/models_cache.json`.
|
|
139
|
-
- `/model <model-id>` still accepts any custom model id.
|
|
149
|
+
The exact model and effort flags are omitted when set to `auto`.
|
|
140
150
|
|
|
141
151
|
## Worktrees And Merging
|
|
142
152
|
|
|
143
|
-
|
|
144
|
-
parallel agents do not edit the same checkout.
|
|
153
|
+
Every dashboard task runs in its own git worktree under
|
|
154
|
+
`~/.rudder-worktrees/...`, so parallel agents do not edit the same checkout.
|
|
155
|
+
|
|
156
|
+
Press `m` to merge the selected completed agent back into the original branch.
|
|
157
|
+
Press `M` to merge all completed agents. Rudder uses normal git merge semantics;
|
|
158
|
+
clean merges become merge commits, and conflicts are left in git's standard
|
|
159
|
+
conflict state for you to resolve.
|
|
160
|
+
|
|
161
|
+
Command-line equivalents:
|
|
145
162
|
|
|
146
163
|
```bash
|
|
147
|
-
rudder run --worktree "try the alternate implementation"
|
|
148
164
|
rudder merge <runId>
|
|
149
165
|
rudder cleanup
|
|
150
166
|
```
|
|
151
167
|
|
|
152
|
-
|
|
153
|
-
commits. Conflicts are left in the standard git conflict state for you to
|
|
154
|
-
resolve.
|
|
168
|
+
## Steering
|
|
155
169
|
|
|
156
|
-
|
|
170
|
+
Before a task starts, Rudder writes `RUDDER.md` into the worktree and adds it to
|
|
171
|
+
`.gitignore` once. The file lists active agents, their worktrees, and what they
|
|
172
|
+
are doing. The worker prompt tells Claude Code or Codex to read it first.
|
|
157
173
|
|
|
158
|
-
|
|
174
|
+
After a worker appears to finish, Rudder can wait briefly and send a focused
|
|
175
|
+
follow-up asking the same agent to verify what remains. When an agent finishes
|
|
176
|
+
or fails, Rudder plays the bundled completion sound.
|
|
159
177
|
|
|
160
|
-
|
|
161
|
-
- active-agent context from `RUDDER.md`
|
|
162
|
-
- acceptance criteria for the task
|
|
163
|
-
- suggested verification commands
|
|
178
|
+
## Review
|
|
164
179
|
|
|
165
|
-
|
|
166
|
-
`.gitignore` once. The file lists active agents, their worktrees, and what they
|
|
167
|
-
are working on, so new Claude Code or Codex workers can avoid stepping on the
|
|
168
|
-
same work.
|
|
180
|
+
Press `v` on an agent to open Hunk against that agent's worktree:
|
|
169
181
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
182
|
+
```bash
|
|
183
|
+
hunk diff --watch
|
|
184
|
+
```
|
|
173
185
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
186
|
+
Hunk provides the multi-file review UI, sidebar navigation, mouse support,
|
|
187
|
+
watch mode, and untracked-file handling. If `hunk` is not installed, Rudder
|
|
188
|
+
installs it with `npm install -g hunkdiff@latest` before opening the review.
|
|
189
|
+
|
|
190
|
+
While focused in the review pane, keys go to Hunk. Press `Ctrl-G`, then `v`, to
|
|
191
|
+
return to the live Claude Code or Codex worker.
|
|
178
192
|
|
|
179
193
|
## One-Shot Commands
|
|
180
194
|
|
|
@@ -182,8 +196,7 @@ steering loop.
|
|
|
182
196
|
rudder "fix the failing tests"
|
|
183
197
|
rudder claude "fix the auth redirect bug"
|
|
184
198
|
rudder codex --model gpt-5.5 "refactor the parser"
|
|
185
|
-
rudder run
|
|
186
|
-
rudder tui
|
|
199
|
+
rudder run --worktree "try the alternate implementation"
|
|
187
200
|
```
|
|
188
201
|
|
|
189
202
|
## Run Management
|
|
@@ -199,25 +212,23 @@ rudder merge <runId>
|
|
|
199
212
|
rudder cleanup
|
|
200
213
|
```
|
|
201
214
|
|
|
202
|
-
##
|
|
215
|
+
## Legacy Interfaces
|
|
216
|
+
|
|
217
|
+
The native dashboard is the default. Older interfaces are still available:
|
|
203
218
|
|
|
204
219
|
```bash
|
|
205
|
-
rudder
|
|
206
|
-
rudder
|
|
207
|
-
|
|
220
|
+
rudder tmux
|
|
221
|
+
rudder tui
|
|
222
|
+
rudder --no-native
|
|
208
223
|
```
|
|
209
224
|
|
|
210
|
-
If Codex models look stale, open Codex once or refresh its login, then reopen
|
|
211
|
-
Rudder. If Claude models look stale, run a Claude Code session once; Rudder reads
|
|
212
|
-
local Claude session history to populate explicit Claude model ids.
|
|
213
|
-
|
|
214
225
|
## Development
|
|
215
226
|
|
|
216
227
|
```bash
|
|
217
228
|
git clone https://github.com/viraatdas/rudder.git
|
|
218
229
|
cd rudder
|
|
219
230
|
npm install
|
|
231
|
+
cargo test --manifest-path native/Cargo.toml
|
|
220
232
|
npm run check
|
|
221
233
|
npm run build
|
|
222
|
-
npm link
|
|
223
234
|
```
|
|
Binary file
|
package/package.json
CHANGED