@viraatdas/rudder 1.0.2 → 1.0.3
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 +112 -110
- 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,133 @@ 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` | Toggle the selected agent's diff 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.
|
|
155
|
-
|
|
156
|
-
## Agent Steering
|
|
157
|
-
|
|
158
|
-
Each run gets a lightweight Rudder contract with:
|
|
159
|
-
|
|
160
|
-
- repository instructions from `AGENTS.md`, `CLAUDE.md`, and `README.md`
|
|
161
|
-
- active-agent context from `RUDDER.md`
|
|
162
|
-
- acceptance criteria for the task
|
|
163
|
-
- suggested verification commands
|
|
168
|
+
## Steering
|
|
164
169
|
|
|
165
|
-
Before a task starts, Rudder writes `RUDDER.md` into the
|
|
170
|
+
Before a task starts, Rudder writes `RUDDER.md` into the worktree and adds it to
|
|
166
171
|
`.gitignore` once. The file lists active agents, their worktrees, and what they
|
|
167
|
-
are
|
|
168
|
-
same work.
|
|
172
|
+
are doing. The worker prompt tells Claude Code or Codex to read it first.
|
|
169
173
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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.
|
|
173
177
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
+
## Diff Review
|
|
179
|
+
|
|
180
|
+
Press `v` on an agent to show the current worktree diff against `HEAD`. Scroll
|
|
181
|
+
with the keyboard or trackpad, then press `v` or `Esc` to return to the live
|
|
182
|
+
worker pane.
|
|
178
183
|
|
|
179
184
|
## One-Shot Commands
|
|
180
185
|
|
|
@@ -182,8 +187,7 @@ steering loop.
|
|
|
182
187
|
rudder "fix the failing tests"
|
|
183
188
|
rudder claude "fix the auth redirect bug"
|
|
184
189
|
rudder codex --model gpt-5.5 "refactor the parser"
|
|
185
|
-
rudder run
|
|
186
|
-
rudder tui
|
|
190
|
+
rudder run --worktree "try the alternate implementation"
|
|
187
191
|
```
|
|
188
192
|
|
|
189
193
|
## Run Management
|
|
@@ -199,25 +203,23 @@ rudder merge <runId>
|
|
|
199
203
|
rudder cleanup
|
|
200
204
|
```
|
|
201
205
|
|
|
202
|
-
##
|
|
206
|
+
## Legacy Interfaces
|
|
207
|
+
|
|
208
|
+
The native dashboard is the default. Older interfaces are still available:
|
|
203
209
|
|
|
204
210
|
```bash
|
|
205
|
-
rudder
|
|
206
|
-
rudder
|
|
207
|
-
|
|
211
|
+
rudder tmux
|
|
212
|
+
rudder tui
|
|
213
|
+
rudder --no-native
|
|
208
214
|
```
|
|
209
215
|
|
|
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
216
|
## Development
|
|
215
217
|
|
|
216
218
|
```bash
|
|
217
219
|
git clone https://github.com/viraatdas/rudder.git
|
|
218
220
|
cd rudder
|
|
219
221
|
npm install
|
|
222
|
+
cargo test --manifest-path native/Cargo.toml
|
|
220
223
|
npm run check
|
|
221
224
|
npm run build
|
|
222
|
-
npm link
|
|
223
225
|
```
|
|
Binary file
|
package/package.json
CHANGED