claude-code-remote-pilot 0.4.2 → 0.4.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/CHANGELOG.md +17 -0
- package/README.md +9 -2
- package/bin/claude-pilot.js +18 -5
- package/lib/WebServer.js +3 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.4 — 2026-05-06
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- Press `w` in watch mode to open (or reuse) the web dashboard in the browser. Starts the server on `127.0.0.1:3742` if not already running. Shown in the watch footer: `w: web ui`.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 0.4.3 — 2026-05-06
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `web [port] [host]` — web dashboard now accepts an optional bind host.
|
|
14
|
+
- `web` → `127.0.0.1:3742` (local only, default)
|
|
15
|
+
- `web 3742 0.0.0.0` → bind to all interfaces (accessible from other devices on the network)
|
|
16
|
+
- `web 8080 192.168.1.10` → bind to a specific interface
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
3
20
|
## 0.4.2 — 2026-05-06
|
|
4
21
|
|
|
5
22
|
### Fixed
|
package/README.md
CHANGED
|
@@ -104,7 +104,7 @@ sudo apt update && sudo apt install tmux
|
|
|
104
104
|
| `spawn <path> [name]` | Start Claude at a path. Name defaults to the directory name. |
|
|
105
105
|
| `list` | One-shot status of all sessions. |
|
|
106
106
|
| `watch` | Live dashboard with offline session history. Press a number to select, `q` to exit. |
|
|
107
|
-
| `web [port]` | Start the web dashboard
|
|
107
|
+
| `web [port] [host]` | Start the web dashboard. Defaults to `127.0.0.1:3742`. Use `0.0.0.0` to expose on the network. |
|
|
108
108
|
| `attach <name>` | Open a tmux session in the current terminal. |
|
|
109
109
|
| `kill <name>` | Stop a session. |
|
|
110
110
|
| `help` | Show command reference. |
|
|
@@ -129,7 +129,14 @@ The dashboard shows all sessions (live and offline), lets you:
|
|
|
129
129
|
- Kill sessions
|
|
130
130
|
- See a live activity log of status transitions
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
By default the server binds to `127.0.0.1` — local only. To access from other devices on your network:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
claude-pilot> web 3742 0.0.0.0
|
|
136
|
+
✓ Web dashboard started at http://0.0.0.0:3742
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
You can also bind to a specific interface IP: `web 3742 192.168.1.10`.
|
|
133
140
|
|
|
134
141
|
---
|
|
135
142
|
|
package/bin/claude-pilot.js
CHANGED
|
@@ -170,7 +170,7 @@ function renderWatchTable(allSessions, selectedIdx) {
|
|
|
170
170
|
footer = ` [t] terminal [k] kill Esc: back`;
|
|
171
171
|
}
|
|
172
172
|
} else {
|
|
173
|
-
footer = ` [1-${Math.min(allSessions.length, 9)}]: select session q: exit watch`;
|
|
173
|
+
footer = ` [1-${Math.min(allSessions.length, 9)}]: select session w: web ui q: exit watch`;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
return ['\n', ' Claude Code Remote Pilot', bar, header, bar, ...rows, bar, footer, ''].join('\n');
|
|
@@ -222,6 +222,18 @@ function startWatch(manager, rl) {
|
|
|
222
222
|
|
|
223
223
|
if (selectedIdx < 0) {
|
|
224
224
|
if (str === 'q' || str === 'Q') { exitWatch(); return; }
|
|
225
|
+
if (str === 'w' || str === 'W') {
|
|
226
|
+
let webServer = manager._webServer;
|
|
227
|
+
if (!webServer) {
|
|
228
|
+
webServer = new WebServer(manager, 3742, '127.0.0.1');
|
|
229
|
+
manager._webServer = webServer;
|
|
230
|
+
webServer.start();
|
|
231
|
+
}
|
|
232
|
+
const url = `http://${webServer.host}:${webServer.port}`;
|
|
233
|
+
const opener = process.platform === 'darwin' ? 'open' : 'xdg-open';
|
|
234
|
+
spawn(opener, [url], { stdio: 'ignore', detached: true }).unref();
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
225
237
|
const n = parseInt(str);
|
|
226
238
|
if (!isNaN(n) && n >= 1 && n <= Math.min(allSessions.length, 9)) {
|
|
227
239
|
selectedIdx = n - 1;
|
|
@@ -319,7 +331,7 @@ const HELP = `
|
|
|
319
331
|
spawn <path> [name] Start Claude at path (name defaults to dir name)
|
|
320
332
|
list Show all sessions
|
|
321
333
|
watch Live session monitor (q to exit)
|
|
322
|
-
web [port]
|
|
334
|
+
web [port] [host] Start web dashboard (default: 3742 127.0.0.1)
|
|
323
335
|
attach <name> Open tmux session in this terminal
|
|
324
336
|
kill <name> Stop a session
|
|
325
337
|
resume [message] Show or set the message sent after a limit resets
|
|
@@ -432,15 +444,16 @@ ${HELP}`);
|
|
|
432
444
|
}
|
|
433
445
|
case 'web': {
|
|
434
446
|
const port = parseInt(args[0]) || 3742;
|
|
447
|
+
const host = args[1] || '127.0.0.1';
|
|
435
448
|
let webServer = manager._webServer;
|
|
436
449
|
if (webServer) {
|
|
437
|
-
console.log(` Web dashboard already running at http
|
|
450
|
+
console.log(` Web dashboard already running at http://${webServer.host}:${webServer.port}`);
|
|
438
451
|
break;
|
|
439
452
|
}
|
|
440
|
-
webServer = new WebServer(manager, port);
|
|
453
|
+
webServer = new WebServer(manager, port, host);
|
|
441
454
|
manager._webServer = webServer;
|
|
442
455
|
webServer.start();
|
|
443
|
-
const url = `http
|
|
456
|
+
const url = `http://${host}:${port}`;
|
|
444
457
|
console.log(` ✓ Web dashboard started at ${url}`);
|
|
445
458
|
const opener = process.platform === 'darwin' ? 'open' : 'xdg-open';
|
|
446
459
|
spawn(opener, [url], { stdio: 'ignore', detached: true }).unref();
|
package/lib/WebServer.js
CHANGED
|
@@ -8,9 +8,10 @@ const config = require('./config');
|
|
|
8
8
|
const STRIP_ANSI = /\x1b\[[0-9;]*[mGKHFABCDJsuhl]|\x1b[()][AB012]/g;
|
|
9
9
|
|
|
10
10
|
class WebServer {
|
|
11
|
-
constructor(manager, port = 3742) {
|
|
11
|
+
constructor(manager, port = 3742, host = '127.0.0.1') {
|
|
12
12
|
this.manager = manager;
|
|
13
13
|
this.port = port;
|
|
14
|
+
this.host = host;
|
|
14
15
|
this.startedAt = new Date();
|
|
15
16
|
this.server = null;
|
|
16
17
|
this._clients = new Set();
|
|
@@ -160,7 +161,7 @@ class WebServer {
|
|
|
160
161
|
});
|
|
161
162
|
|
|
162
163
|
this._broadcastInterval = setInterval(() => this._broadcast(), 3000);
|
|
163
|
-
this.server.listen(this.port,
|
|
164
|
+
this.server.listen(this.port, this.host);
|
|
164
165
|
return this.port;
|
|
165
166
|
}
|
|
166
167
|
|
package/package.json
CHANGED