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 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 at `http://127.0.0.1:3742` (or given port). Opens browser automatically. |
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
- The server binds to `127.0.0.1` only not reachable from other machines. Use `web <port>` to use a custom port.
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
 
@@ -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] Start web dashboard (default port 3742)
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://127.0.0.1:${webServer.port}`);
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://127.0.0.1:${port}`;
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, '127.0.0.1');
164
+ this.server.listen(this.port, this.host);
164
165
  return this.port;
165
166
  }
166
167
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-remote-pilot",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "Interactive Claude Code supervisor — spawn and monitor multiple Claude sessions from a single terminal.",
5
5
  "type": "commonjs",
6
6
  "bin": {