@mmmbuto/nexuscrew 0.8.2 → 0.8.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 +37 -16
- package/frontend/dist/assets/index-C1AFIaRR.js +90 -0
- package/frontend/dist/index.html +1 -1
- package/frontend/dist/version.json +1 -1
- package/lib/cli/commands.js +157 -28
- package/lib/cli/doctor.js +1 -1
- package/lib/cli/init.js +8 -3
- package/lib/cli/pidfile.js +2 -2
- package/lib/fleet/managed.js +3 -2
- package/lib/nodes/health.js +89 -0
- package/lib/nodes/store.js +78 -1
- package/lib/nodes/topology-cache.js +75 -0
- package/lib/proxy/federation.js +117 -6
- package/lib/pty/provider.js +7 -7
- package/lib/server.js +28 -10
- package/lib/settings/routes.js +65 -6
- package/package.json +4 -8
- package/frontend/dist/assets/index-Dey9rdY-.js +0 -90
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
## What it is (v0.8.
|
|
19
|
+
## What it is (v0.8.4 "Simple and Clean")
|
|
20
20
|
|
|
21
21
|
- Runs a small server on the host where your tmux sessions live.
|
|
22
22
|
- Each attach spawns a real PTY running `tmux attach` and bridges its bytes over a WebSocket
|
|
@@ -27,9 +27,10 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
27
27
|
- **Multi-window decks**: named workspaces at `/deck/<name>` — one browser window per
|
|
28
28
|
monitor, each with its own remembered tile layout. The focused tile is the size owner;
|
|
29
29
|
everything else attaches with `ignore-size`.
|
|
30
|
-
- **
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
- **Federated Hydra inventory**: connect existing NexusCrew installations through the SSH
|
|
31
|
+
configuration you already control and see local, direct, and relayed tmux fleets in one UI.
|
|
32
|
+
Route labels show where every session lives; creation, attach, files, lifecycle and Fleet
|
|
33
|
+
management use the selected location through a scoped single-origin route.
|
|
33
34
|
- **Settings and wizard**: manage roles, nodes, token rotation, and service regeneration
|
|
34
35
|
from the UI; a skippable first-run wizard guides initial setup.
|
|
35
36
|
- **Session lifecycle from the UI**: create sessions (name + cwd + an allowlisted preset)
|
|
@@ -41,6 +42,8 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
41
42
|
- **i18n**: English, Italian, Spanish — follows your browser language, switchable in the UI.
|
|
42
43
|
- **localhost-only**: the server binds `127.0.0.1` and refuses any non-loopback bind.
|
|
43
44
|
- **Stateless**: tmux *is* the persistence. No database, no accounts.
|
|
45
|
+
- **Mobile terminal controls**: long-press begins local text selection, drag extends it, and
|
|
46
|
+
the composer send button keeps the software keyboard open for the next message.
|
|
44
47
|
- **Universal**: a PTY is a PTY — a coding agent, a REPL, a plain shell, anything tmux holds.
|
|
45
48
|
|
|
46
49
|
## Screenshots
|
|
@@ -70,6 +73,12 @@ Responses-only. New custom credentials are read only from the environment variab
|
|
|
70
73
|
the PWA; NexusCrew never stores the secret value. Existing Z.AI A/P and Ollama Cloud profiles
|
|
71
74
|
retain their backwards-compatible credential loading.
|
|
72
75
|
|
|
76
|
+
Managed engines expose a permission selector. New Claude engines (native, Z.AI, Ollama, or
|
|
77
|
+
custom) default to **Bypass permissions** and launch with
|
|
78
|
+
`--dangerously-skip-permissions`; choose **Standard permissions** to disable it. New Codex and
|
|
79
|
+
Codex-VL engines default to Standard and offer an explicit opt-in for
|
|
80
|
+
`--dangerously-bypass-approvals-and-sandbox`. Pi keeps its native permission behavior.
|
|
81
|
+
|
|
73
82
|
Custom argv-based engines remain supported. Their command, environment, cwd, and prompt are
|
|
74
83
|
validated against a strict trust boundary and launched without a shell.
|
|
75
84
|
|
|
@@ -101,8 +110,7 @@ off. Set `NEXUSCREW_FLEET=0` to disable it entirely.
|
|
|
101
110
|
- **tmux** on the host (3.4+; the non-destructive `ignore-size` attach is honored on 3.4 and
|
|
102
111
|
later)
|
|
103
112
|
- A PTY backend is resolved automatically per platform: Darwin ARM64/x64 and Linux ARM64/x64
|
|
104
|
-
prebuilds, the native Android ARM64 provider on Termux
|
|
105
|
-
build-from-source fallback.
|
|
113
|
+
scriptless prebuilds, including the native Android ARM64 provider on Termux.
|
|
106
114
|
|
|
107
115
|
## Access model — read this
|
|
108
116
|
|
|
@@ -139,7 +147,8 @@ PWA token never crosses a peer link.
|
|
|
139
147
|
A relay controls what its peers can see. The default is the whole network; a peer can be reduced
|
|
140
148
|
to relay-only or a selected set. HTTP and WebSocket routing enforce that policy at every hop,
|
|
141
149
|
with stable instance IDs, cycle rejection and a four-hop ceiling. Session creation, terminal,
|
|
142
|
-
files and
|
|
150
|
+
files, termination, and Fleet editing work on Local or any reachable route. Previously seen
|
|
151
|
+
transitive nodes remain listed as offline with their last-seen time while a relay is down.
|
|
143
152
|
|
|
144
153
|
## Install & run
|
|
145
154
|
|
|
@@ -151,9 +160,10 @@ npm install -g @mmmbuto/nexuscrew
|
|
|
151
160
|
nexuscrew
|
|
152
161
|
```
|
|
153
162
|
|
|
154
|
-
The first run creates a loopback-only configuration and a
|
|
155
|
-
|
|
156
|
-
|
|
163
|
+
The first run creates a loopback-only configuration and starts a detached process. Run
|
|
164
|
+
`nexuscrew boot` only if you want a persistent `systemd --user` service. Linux x64 and ARM64
|
|
165
|
+
use platform PTY prebuilds only, so global installs do not compile native code or
|
|
166
|
+
require install-script approval.
|
|
157
167
|
|
|
158
168
|
### macOS (Apple Silicon or Intel)
|
|
159
169
|
|
|
@@ -163,9 +173,10 @@ npm install -g @mmmbuto/nexuscrew
|
|
|
163
173
|
nexuscrew
|
|
164
174
|
```
|
|
165
175
|
|
|
166
|
-
The first run
|
|
167
|
-
|
|
168
|
-
`.app`, `.pkg`, or standalone Mach-O
|
|
176
|
+
The first run starts a detached process. Run `nexuscrew boot` to install a user LaunchAgent
|
|
177
|
+
with an explicit Node/Homebrew PATH. The npm package selects the matching Darwin ARM64 or x64
|
|
178
|
+
PTY prebuild. NexusCrew is an npm/Node CLI, not an `.app`, `.pkg`, or standalone Mach-O
|
|
179
|
+
distribution, so it does not require Developer ID signing.
|
|
169
180
|
|
|
170
181
|
### Android / Termux (ARM64)
|
|
171
182
|
|
|
@@ -177,14 +188,18 @@ nexuscrew
|
|
|
177
188
|
```
|
|
178
189
|
|
|
179
190
|
Termux uses the Android ARM64 PTY provider. The normal command starts NexusCrew in the
|
|
180
|
-
background and exits
|
|
191
|
+
background and exits. `nexuscrew boot` installs the Termux:Boot script explicitly.
|
|
181
192
|
|
|
182
193
|
On every platform the first run starts the server in the background and opens the PWA wizard.
|
|
183
|
-
After onboarding, the same command starts or reuses
|
|
194
|
+
After onboarding, the same command starts or reuses it, prints a compact status and guide, and
|
|
195
|
+
exits:
|
|
184
196
|
|
|
185
197
|
```bash
|
|
186
198
|
nexuscrew # background start; opens only on first run
|
|
187
199
|
nexuscrew show # background start when needed + open the authenticated PWA
|
|
200
|
+
nexuscrew show token # print the clickable authenticated URL; do not open a browser
|
|
201
|
+
nexuscrew boot # opt in to startup persistence
|
|
202
|
+
nexuscrew boot off # disable startup persistence, keep the current run alive
|
|
188
203
|
```
|
|
189
204
|
|
|
190
205
|
The preferred port is `41820`. If it is occupied by another process, NexusCrew selects the
|
|
@@ -201,6 +216,8 @@ resolved PTY provider at startup.
|
|
|
201
216
|
```
|
|
202
217
|
nexuscrew background start; first run opens the PWA wizard
|
|
203
218
|
nexuscrew show start when needed and open the authenticated PWA
|
|
219
|
+
nexuscrew show token print the clickable authenticated URL without opening it
|
|
220
|
+
nexuscrew boot enable startup at boot (`boot off|status` are also available)
|
|
204
221
|
nexuscrew doctor local diagnostics (exit 1 when a required check fails)
|
|
205
222
|
nexuscrew help concise command help
|
|
206
223
|
nexuscrew version installed version
|
|
@@ -249,6 +266,10 @@ args = ["mcp"]
|
|
|
249
266
|
The awkward tmux gestures, as buttons: **scroll** (enters copy-mode; then PgUp/↑/↓, `q` to
|
|
250
267
|
exit), **window** prev/next, **pane** left/right, **esc**, **Ctrl-C**, **detach**.
|
|
251
268
|
|
|
269
|
+
Long-press terminal text to enter local selection mode, then drag and use **Copy**. The
|
|
270
|
+
composer send button writes the text followed by a real Enter while retaining textarea focus,
|
|
271
|
+
so the mobile keyboard stays open between messages.
|
|
272
|
+
|
|
252
273
|
Window and pane navigation run as **server-side, allowlisted tmux commands** on the active
|
|
253
274
|
session — they are *not* emulated with client-side prefix keys, which are fragile and depend
|
|
254
275
|
on each host's key bindings.
|
|
@@ -271,7 +292,7 @@ node bin/nexuscrew.js serve
|
|
|
271
292
|
|
|
272
293
|
## Status
|
|
273
294
|
|
|
274
|
-
The current stable release is **v0.8.
|
|
295
|
+
The current stable release is **v0.8.4**, published on npm under the **`latest`** dist-tag.
|
|
275
296
|
|
|
276
297
|
## License
|
|
277
298
|
|