@mmmbuto/nexuscrew 0.8.3 → 0.8.5
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 +41 -20
- package/frontend/dist/assets/index-UAVxf6SE.js +90 -0
- package/frontend/dist/assets/{index-COsoJxXQ.css → index-U_e8auCM.css} +2 -2
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/version.json +1 -1
- package/lib/fleet/builtin.js +7 -1
- package/lib/fleet/managed.js +48 -28
- package/lib/fleet/routes.js +10 -3
- package/lib/nodes/health.js +89 -0
- package/lib/nodes/store.js +78 -1
- package/lib/proxy/federation.js +66 -1
- package/lib/pty/provider.js +7 -7
- package/lib/server.js +26 -9
- package/lib/settings/routes.js +60 -5
- package/package.json +4 -8
- package/frontend/dist/assets/index-BFyPeZsL.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.5 "Clean Fleet")
|
|
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,13 +27,15 @@ 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
|
-
already control and see
|
|
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
|
-
|
|
36
|
+
- **Cell lifecycle from the UI**: the primary `+` creates a managed Fleet cell at Local or
|
|
37
|
+
any reachable node. Cards expose direct power and settings controls; deletion lives in
|
|
38
|
+
Settings → Fleet. Unmanaged tmux sessions remain attachable and can be terminated there.
|
|
37
39
|
- **Rich cards**: last activity, current command, a sanitized one-line preview per session.
|
|
38
40
|
- **Fleet control**: a built-in schema-driven fleet manager handles cells, engines, model
|
|
39
41
|
selection, and boot persistence; an existing external `fleet` CLI can take ownership through
|
|
@@ -41,6 +43,8 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
41
43
|
- **i18n**: English, Italian, Spanish — follows your browser language, switchable in the UI.
|
|
42
44
|
- **localhost-only**: the server binds `127.0.0.1` and refuses any non-loopback bind.
|
|
43
45
|
- **Stateless**: tmux *is* the persistence. No database, no accounts.
|
|
46
|
+
- **Mobile terminal controls**: long-press begins local text selection, drag extends it, and
|
|
47
|
+
the composer send button keeps the software keyboard open for the next message.
|
|
44
48
|
- **Universal**: a PTY is a PTY — a coding agent, a REPL, a plain shell, anything tmux holds.
|
|
45
49
|
|
|
46
50
|
## Screenshots
|
|
@@ -62,13 +66,25 @@ over a real PTY. On the right, a `codex-vl` session running inside the browser c
|
|
|
62
66
|
## Fleet integration
|
|
63
67
|
|
|
64
68
|
A clean install includes the built-in, schema-driven fleet manager. Its safe defaults contain
|
|
65
|
-
|
|
66
|
-
API keys, or machine-specific paths.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
four CLI adapters — **Claude Code**, **Codex**, **Codex-VL**, and **Pi** — and no cells,
|
|
70
|
+
prompts, API keys, or machine-specific paths. Engine, provider, credential-variable name,
|
|
71
|
+
model and permission policy are configured only in Settings → Fleet; the power sheet only
|
|
72
|
+
starts or stops the already configured cell and controls boot persistence.
|
|
73
|
+
|
|
74
|
+
The concise provider catalog is scoped per CLI:
|
|
75
|
+
|
|
76
|
+
- **Claude Code:** Anthropic account, Amazon Bedrock, Google Vertex AI, Microsoft Foundry,
|
|
77
|
+
Ollama Cloud, local Ollama, Z.AI, and a renameable Anthropic-compatible endpoint.
|
|
78
|
+
- **Codex / Codex-VL:** OpenAI/ChatGPT account, OpenAI API, Ollama Cloud, local Ollama,
|
|
79
|
+
LM Studio, and a renameable custom endpoint using the real Responses wire API only.
|
|
80
|
+
- **Pi:** its configured default, Anthropic, OpenAI API, OpenAI Codex OAuth, Google Gemini,
|
|
81
|
+
GitHub Copilot, OpenRouter, local Ollama, DeepSeek, Z.AI, and a custom provider.
|
|
82
|
+
|
|
83
|
+
Provider credentials are resolved from the selected CLI's native login or from an environment
|
|
84
|
+
variable named in the PWA; NexusCrew never stores a new secret value. Legacy Z.AI A/P engines
|
|
85
|
+
remain launch-compatible for existing fleets but are not provider choices for new engines.
|
|
86
|
+
Model discovery is used where the CLI/provider documents it, with a manual model field as the
|
|
87
|
+
portable fallback.
|
|
72
88
|
|
|
73
89
|
Managed engines expose a permission selector. New Claude engines (native, Z.AI, Ollama, or
|
|
74
90
|
custom) default to **Bypass permissions** and launch with
|
|
@@ -92,9 +108,10 @@ trusted executable (default `~/.local/bin/fleet`, configurable via `fleet.bin` i
|
|
|
92
108
|
"engines":[{"id":"native","label":"Claude","rc":true},{"id":"my-engine","label":"My Engine"}]}
|
|
93
109
|
```
|
|
94
110
|
|
|
95
|
-
`engines` is optional: it declares the engine
|
|
96
|
-
|
|
97
|
-
|
|
111
|
+
`engines` is optional: it declares the configured engine inventory — `id` is the stable
|
|
112
|
+
identifier, `label` is what the UI displays, and `rc: true` marks engines that support your
|
|
113
|
+
remote-control path. In external mode the external CLI owns its engine list and configuration;
|
|
114
|
+
the NexusCrew power control starts or stops the cell without changing that configuration.
|
|
98
115
|
|
|
99
116
|
and accepts `up <Cell> [--engine E] [--boot]`, `down <Cell> [--boot]`, `engine <Cell> <E>`,
|
|
100
117
|
`boot|noboot <Cell>`. The binary is trust-checked (regular file, not a symlink, not
|
|
@@ -107,8 +124,7 @@ off. Set `NEXUSCREW_FLEET=0` to disable it entirely.
|
|
|
107
124
|
- **tmux** on the host (3.4+; the non-destructive `ignore-size` attach is honored on 3.4 and
|
|
108
125
|
later)
|
|
109
126
|
- A PTY backend is resolved automatically per platform: Darwin ARM64/x64 and Linux ARM64/x64
|
|
110
|
-
prebuilds, the native Android ARM64 provider on Termux
|
|
111
|
-
build-from-source fallback.
|
|
127
|
+
scriptless prebuilds, including the native Android ARM64 provider on Termux.
|
|
112
128
|
|
|
113
129
|
## Access model — read this
|
|
114
130
|
|
|
@@ -160,7 +176,8 @@ nexuscrew
|
|
|
160
176
|
|
|
161
177
|
The first run creates a loopback-only configuration and starts a detached process. Run
|
|
162
178
|
`nexuscrew boot` only if you want a persistent `systemd --user` service. Linux x64 and ARM64
|
|
163
|
-
use platform PTY prebuilds
|
|
179
|
+
use platform PTY prebuilds only, so global installs do not compile native code or
|
|
180
|
+
require install-script approval.
|
|
164
181
|
|
|
165
182
|
### macOS (Apple Silicon or Intel)
|
|
166
183
|
|
|
@@ -263,6 +280,10 @@ args = ["mcp"]
|
|
|
263
280
|
The awkward tmux gestures, as buttons: **scroll** (enters copy-mode; then PgUp/↑/↓, `q` to
|
|
264
281
|
exit), **window** prev/next, **pane** left/right, **esc**, **Ctrl-C**, **detach**.
|
|
265
282
|
|
|
283
|
+
Long-press terminal text to enter local selection mode, then drag and use **Copy**. The
|
|
284
|
+
composer send button writes the text followed by a real Enter while retaining textarea focus,
|
|
285
|
+
so the mobile keyboard stays open between messages.
|
|
286
|
+
|
|
266
287
|
Window and pane navigation run as **server-side, allowlisted tmux commands** on the active
|
|
267
288
|
session — they are *not* emulated with client-side prefix keys, which are fragile and depend
|
|
268
289
|
on each host's key bindings.
|
|
@@ -285,7 +306,7 @@ node bin/nexuscrew.js serve
|
|
|
285
306
|
|
|
286
307
|
## Status
|
|
287
308
|
|
|
288
|
-
The current stable release is **v0.8.
|
|
309
|
+
The current stable release is **v0.8.5**, published on npm under the **`latest`** dist-tag.
|
|
289
310
|
|
|
290
311
|
## License
|
|
291
312
|
|