claude-mux 0.8.0 → 0.9.0
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/CLAUDE.md +26 -0
- package/README.md +52 -2
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/service.d.ts +3 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +154 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/utils/version.d.ts +1 -1
- package/dist/utils/version.js +1 -1
- package/{web/.svelte-kit/output/client/_app/immutable/chunks/DtqyE18S.js → dist/web/client/_app/immutable/chunks/Bj8d0LuM.js} +1 -1
- package/dist/web/client/_app/immutable/chunks/ClwveEwa.js +3 -0
- package/dist/web/client/_app/immutable/chunks/{BH3SFRWG.js → Cq1Dbx4Z.js} +1 -1
- package/{web/.svelte-kit/output/client/_app/immutable/chunks/BkAy2L0f.js → dist/web/client/_app/immutable/chunks/DJ24Tldm.js} +1 -1
- package/dist/web/client/_app/immutable/entry/{app.r0-ETIJN.js → app.--CjzkSO.js} +2 -2
- package/dist/web/client/_app/immutable/entry/start.D4AuhR4O.js +1 -0
- package/dist/web/client/_app/immutable/nodes/{0.NP7v5jwY.js → 0.BA0ffjuI.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/{1.CmX900J8.js → 1.0vn7u2tx.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/{2.BQA6OZIp.js → 2.BdBKTxl6.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/{3.bY9l1t_h.js → 3.DqYZlAWl.js} +1 -1
- package/dist/web/client/_app/version.json +1 -1
- package/dist/web/server/chunks/{0-1j1Fe_oa.js → 0-DjVZUt8p.js} +6 -6
- package/dist/web/server/chunks/{0-1j1Fe_oa.js.map → 0-DjVZUt8p.js.map} +1 -1
- package/dist/web/server/chunks/{1-D1dSc_vl.js → 1-DAqMo8Wb.js} +3 -3
- package/dist/web/server/chunks/{1-D1dSc_vl.js.map → 1-DAqMo8Wb.js.map} +1 -1
- package/dist/web/server/chunks/{2-CCOk5pX2.js → 2-CR4pAIvi.js} +5 -5
- package/dist/web/server/chunks/{2-CCOk5pX2.js.map → 2-CR4pAIvi.js.map} +1 -1
- package/dist/web/server/chunks/{3-DFcJIcL4.js → 3-Bkv2-jfN.js} +5 -5
- package/dist/web/server/chunks/{3-DFcJIcL4.js.map → 3-Bkv2-jfN.js.map} +1 -1
- package/dist/web/server/index.js +1 -1
- package/dist/web/server/index.js.map +1 -1
- package/dist/web/server/manifest.js +9 -9
- package/dist/web/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +2 -0
- package/src/commands/index.ts +1 -0
- package/src/commands/service.ts +180 -0
- package/src/utils/version.ts +1 -1
- package/web/.svelte-kit/adapter-bun/chunks/internal.js +1 -1
- package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
- package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/0.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/3.js +1 -1
- package/web/.svelte-kit/generated/server/internal.js +1 -1
- package/web/.svelte-kit/output/client/.vite/manifest.json +47 -47
- package/{dist/web/client/_app/immutable/chunks/DtqyE18S.js → web/.svelte-kit/output/client/_app/immutable/chunks/Bj8d0LuM.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/ClwveEwa.js +3 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/{BH3SFRWG.js → Cq1Dbx4Z.js} +1 -1
- package/{dist/web/client/_app/immutable/chunks/BkAy2L0f.js → web/.svelte-kit/output/client/_app/immutable/chunks/DJ24Tldm.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/entry/{app.r0-ETIJN.js → app.--CjzkSO.js} +2 -2
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.D4AuhR4O.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.NP7v5jwY.js → 0.BA0ffjuI.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.CmX900J8.js → 1.0vn7u2tx.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.BQA6OZIp.js → 2.BdBKTxl6.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{3.bY9l1t_h.js → 3.DqYZlAWl.js} +1 -1
- package/web/.svelte-kit/output/client/_app/version.json +1 -1
- package/web/.svelte-kit/output/server/chunks/internal.js +1 -1
- package/web/.svelte-kit/output/server/manifest-full.js +1 -1
- package/web/.svelte-kit/output/server/manifest.js +1 -1
- package/web/.svelte-kit/output/server/nodes/0.js +1 -1
- package/web/.svelte-kit/output/server/nodes/1.js +1 -1
- package/web/.svelte-kit/output/server/nodes/2.js +1 -1
- package/web/.svelte-kit/output/server/nodes/3.js +1 -1
- package/dist/web/client/_app/immutable/chunks/e3neaX0M.js +0 -3
- package/dist/web/client/_app/immutable/entry/start.C4mVhUwG.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/e3neaX0M.js +0 -3
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.C4mVhUwG.js +0 -1
package/CLAUDE.md
CHANGED
|
@@ -37,6 +37,32 @@ Run a single test file:
|
|
|
37
37
|
bun vitest run tests/db/sessions.test.ts
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
## Releasing
|
|
41
|
+
|
|
42
|
+
Releases are fully automated. **Do not `npm publish` manually.**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm version minor # bumps package.json + src/utils/version.ts, commits, tags vX.Y.Z
|
|
46
|
+
git push origin main
|
|
47
|
+
git push origin vX.Y.Z # tag push triggers .github/workflows/release.yml
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The workflow builds CLI + web, publishes to npm via **OIDC trusted publishing** (no token, no MFA — the trust anchor is `christinoleo/claude-mux` + `release.yml` registered on npmjs.com), and creates a GitHub release. Publish runs as `npx -y npm@latest publish --access public --provenance` because the runner's bundled npm is too old for OIDC.
|
|
51
|
+
|
|
52
|
+
After release, other machines update with: `claude-mux update`.
|
|
53
|
+
|
|
54
|
+
## Service management on remote hosts
|
|
55
|
+
|
|
56
|
+
For machines that should run claude-mux as a long-lived service (e.g. `engage`):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
claude-mux service install # ~/.config/systemd/user/claude-mux.service, enabled + started
|
|
60
|
+
sudo loginctl enable-linger $USER # one-time: survive logout, start on boot
|
|
61
|
+
journalctl --user -u claude-mux -f # logs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`update` restarts a `nohup`-launched server it finds on :3456, but it does **not** restart a systemd-managed instance. On systemd hosts, after `claude-mux update` run `systemctl --user restart claude-mux.service` (or use `--skip-restart` on update and restart explicitly).
|
|
65
|
+
|
|
40
66
|
## Architecture
|
|
41
67
|
|
|
42
68
|
claude-mux has three main components:
|
package/README.md
CHANGED
|
@@ -66,9 +66,28 @@
|
|
|
66
66
|
|
|
67
67
|
## Installation
|
|
68
68
|
|
|
69
|
+
**One-liner (recommended)** — installs bun, claude-mux, hooks, and starts the server on `127.0.0.1:3456`:
|
|
70
|
+
|
|
69
71
|
```bash
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
curl -fsSL https://raw.githubusercontent.com/christinoleo/claude-mux/main/scripts/install.sh | bash
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Override defaults with env vars: `CLAUDE_MUX_VERSION`, `CLAUDE_MUX_PORT`, `CLAUDE_MUX_NO_SETUP=1`, `CLAUDE_MUX_NO_SERVE=1`.
|
|
76
|
+
|
|
77
|
+
**Manual** — if you already have a Node/Bun toolchain:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm install -g claude-mux # or: bun install -g claude-mux
|
|
81
|
+
claude-mux setup # install Claude Code hooks
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
If `npm install -g` fails with `EACCES`, your npm prefix is a system path. Switch to a user prefix (one-time):
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
mkdir -p ~/.npm-global
|
|
88
|
+
npm config set prefix ~/.npm-global
|
|
89
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
|
|
90
|
+
exec $SHELL -l
|
|
72
91
|
```
|
|
73
92
|
|
|
74
93
|
<details>
|
|
@@ -84,6 +103,33 @@ bun link # makes 'claude-mux' available globally
|
|
|
84
103
|
|
|
85
104
|
---
|
|
86
105
|
|
|
106
|
+
## Updating
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
claude-mux update # npm i -g latest, re-syncs hooks, restarts prod server if running
|
|
110
|
+
claude-mux update --force # reinstall even when already on latest
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`update` stops the prod server before reinstalling so live module files aren't clobbered, then re-runs `setup --yes` so hook paths stay current.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Running as a service (boot autostart)
|
|
118
|
+
|
|
119
|
+
`claude-mux service install` writes a **systemd user unit** (no root needed for install):
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
claude-mux service install # writes ~/.config/systemd/user/claude-mux.service, enables + starts
|
|
123
|
+
claude-mux service status # systemctl --user status …
|
|
124
|
+
claude-mux service uninstall --purge # disable + remove unit
|
|
125
|
+
|
|
126
|
+
sudo loginctl enable-linger $USER # ONE-TIME sudo: keeps service running after logout / starts on boot
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Logs: `journalctl --user -u claude-mux.service -f`
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
87
133
|
## Quick Start
|
|
88
134
|
|
|
89
135
|
```bash
|
|
@@ -105,6 +151,10 @@ claude-mux serve --port 3456 --host 0.0.0.0
|
|
|
105
151
|
|---------|-------------|
|
|
106
152
|
| `claude-mux serve` | Start web server (`--port`, `--host`, `--auth <password>`) |
|
|
107
153
|
| `claude-mux setup` | Install Claude Code hooks |
|
|
154
|
+
| `claude-mux update` | `npm i -g` latest, re-sync hooks, restart prod server |
|
|
155
|
+
| `claude-mux service install` | Install systemd user unit (boot autostart, no root) |
|
|
156
|
+
| `claude-mux service uninstall` | Disable systemd user unit (`--purge` removes the file) |
|
|
157
|
+
| `claude-mux service status` | Show systemd service status |
|
|
108
158
|
| `claude-mux uninstall` | Remove hooks and configuration |
|
|
109
159
|
| `claude-mux send <target> [text]` | Send text or `--keys` to a session |
|
|
110
160
|
| `claude-mux status <target>` | Get session state as JSON |
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import { program } from "commander";
|
|
3
|
-
import { createServeCommand, createSetupCommand, createUninstallCommand, createSendCommand, createWaitIdleCommand, createStatusCommand, createCaptureCommand, createNewSessionCommand, createUpdateCommand, runTui, runServe, } from "./commands/index.js";
|
|
3
|
+
import { createServeCommand, createSetupCommand, createUninstallCommand, createSendCommand, createWaitIdleCommand, createStatusCommand, createCaptureCommand, createNewSessionCommand, createUpdateCommand, createServiceCommand, runTui, runServe, } from "./commands/index.js";
|
|
4
4
|
import { runSetup, runCleanup } from "./setup/index.js";
|
|
5
5
|
import { DEFAULT_SERVER_PORT, migrateLegacyDataDir } from "./utils/paths.js";
|
|
6
6
|
import { VERSION } from "./utils/version.js";
|
|
@@ -24,6 +24,7 @@ program.addCommand(createStatusCommand());
|
|
|
24
24
|
program.addCommand(createCaptureCommand());
|
|
25
25
|
program.addCommand(createNewSessionCommand());
|
|
26
26
|
program.addCommand(createUpdateCommand());
|
|
27
|
+
program.addCommand(createServiceCommand());
|
|
27
28
|
// BACKWARD COMPATIBILITY: Support old flags on root command
|
|
28
29
|
program
|
|
29
30
|
.option("--setup", "Run interactive setup wizard (deprecated: use 'setup' command)")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,MAAM,EACN,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,oBAAoB,EAAE,CAAC;AAEvB,6BAA6B;AAC7B,SAAS,kBAAkB,CAAC,OAAe,EAAE,UAAkB;IAC7D,OAAO,CAAC,IAAI,CACV,wBAAwB,OAAO,mCAAmC,UAAU,mBAAmB,CAChG,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,uBAAuB;AACvB,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC9C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export { createStatusCommand } from "./status.js";
|
|
|
9
9
|
export { createCaptureCommand } from "./capture.js";
|
|
10
10
|
export { createNewSessionCommand } from "./new-session.js";
|
|
11
11
|
export { createUpdateCommand, runUpdate } from "./update.js";
|
|
12
|
+
export { createServiceCommand } from "./service.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -9,4 +9,5 @@ export { createStatusCommand } from "./status.js";
|
|
|
9
9
|
export { createCaptureCommand } from "./capture.js";
|
|
10
10
|
export { createNewSessionCommand } from "./new-session.js";
|
|
11
11
|
export { createUpdateCommand, runUpdate } from "./update.js";
|
|
12
|
+
export { createServiceCommand } from "./service.js";
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmJpC,wBAAgB,oBAAoB,IAAI,OAAO,CAgC9C"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { execSync, spawnSync } from "child_process";
|
|
3
|
+
import { existsSync, mkdirSync, writeFileSync, unlinkSync } from "fs";
|
|
4
|
+
import { join, dirname } from "path";
|
|
5
|
+
import { homedir } from "os";
|
|
6
|
+
import { DEFAULT_SERVER_PORT } from "../utils/paths.js";
|
|
7
|
+
const SERVICE_NAME = "claude-mux.service";
|
|
8
|
+
const USER_UNIT_DIR = join(homedir(), ".config", "systemd", "user");
|
|
9
|
+
const UNIT_PATH = join(USER_UNIT_DIR, SERVICE_NAME);
|
|
10
|
+
function which(cmd) {
|
|
11
|
+
try {
|
|
12
|
+
const out = execSync(`command -v ${cmd}`, {
|
|
13
|
+
encoding: "utf-8",
|
|
14
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
15
|
+
}).trim();
|
|
16
|
+
return out || null;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function hasSystemd() {
|
|
23
|
+
return which("systemctl") !== null;
|
|
24
|
+
}
|
|
25
|
+
function buildUnit(port, host) {
|
|
26
|
+
const claudeMuxBin = which("claude-mux");
|
|
27
|
+
if (!claudeMuxBin) {
|
|
28
|
+
throw new Error("`claude-mux` not on PATH; install it first.");
|
|
29
|
+
}
|
|
30
|
+
const bunBin = which("bun");
|
|
31
|
+
const extraPath = bunBin ? `${dirname(bunBin)}:` : "";
|
|
32
|
+
return `[Unit]
|
|
33
|
+
Description=claude-mux serve (web dashboard + WebSocket)
|
|
34
|
+
After=network-online.target
|
|
35
|
+
Wants=network-online.target
|
|
36
|
+
|
|
37
|
+
[Service]
|
|
38
|
+
Type=simple
|
|
39
|
+
Environment=PATH=${extraPath}%h/.npm-global/bin:/usr/local/bin:/usr/bin:/bin
|
|
40
|
+
ExecStart=${claudeMuxBin} serve --port ${port} --host ${host}
|
|
41
|
+
Restart=on-failure
|
|
42
|
+
RestartSec=3
|
|
43
|
+
StandardOutput=journal
|
|
44
|
+
StandardError=journal
|
|
45
|
+
|
|
46
|
+
[Install]
|
|
47
|
+
WantedBy=default.target
|
|
48
|
+
`;
|
|
49
|
+
}
|
|
50
|
+
function systemctlUser(...args) {
|
|
51
|
+
const r = spawnSync("systemctl", ["--user", ...args], { stdio: "inherit" });
|
|
52
|
+
return r.status ?? 1;
|
|
53
|
+
}
|
|
54
|
+
function lingerEnabled() {
|
|
55
|
+
try {
|
|
56
|
+
const user = process.env.USER ?? execSync("whoami", { encoding: "utf-8" }).trim();
|
|
57
|
+
const out = execSync(`loginctl show-user ${user} -p Linger --value 2>/dev/null || true`, {
|
|
58
|
+
encoding: "utf-8",
|
|
59
|
+
}).trim();
|
|
60
|
+
return out === "yes";
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function runInstall(opts) {
|
|
67
|
+
if (!hasSystemd()) {
|
|
68
|
+
console.error("systemctl not found. This command requires systemd (Linux).");
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
const port = Number(opts.port ?? DEFAULT_SERVER_PORT);
|
|
72
|
+
const host = opts.host ?? "127.0.0.1";
|
|
73
|
+
if (!existsSync(USER_UNIT_DIR))
|
|
74
|
+
mkdirSync(USER_UNIT_DIR, { recursive: true });
|
|
75
|
+
const unit = buildUnit(port, host);
|
|
76
|
+
writeFileSync(UNIT_PATH, unit, "utf-8");
|
|
77
|
+
console.log(`Wrote ${UNIT_PATH}`);
|
|
78
|
+
if (systemctlUser("daemon-reload") !== 0) {
|
|
79
|
+
console.error("systemctl --user daemon-reload failed.");
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
const cmd = opts.noStart ? ["enable"] : ["enable", "--now"];
|
|
83
|
+
if (systemctlUser(...cmd, SERVICE_NAME) !== 0) {
|
|
84
|
+
console.error("Failed to enable service.");
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
console.log(`\nService installed. Listening on ${host}:${port}.`);
|
|
88
|
+
console.log("Logs: journalctl --user -u claude-mux.service -f");
|
|
89
|
+
console.log("Status: systemctl --user status claude-mux.service");
|
|
90
|
+
if (!lingerEnabled()) {
|
|
91
|
+
const user = process.env.USER ?? "$USER";
|
|
92
|
+
console.log("");
|
|
93
|
+
console.log("⚠ Linger is OFF — service stops when you log out and does NOT start on boot.");
|
|
94
|
+
console.log(" To survive reboot/logout, run ONCE (requires sudo):");
|
|
95
|
+
console.log(` sudo loginctl enable-linger ${user}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function runUninstall(opts) {
|
|
99
|
+
if (!hasSystemd()) {
|
|
100
|
+
console.error("systemctl not found.");
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
if (existsSync(UNIT_PATH)) {
|
|
104
|
+
systemctlUser("disable", "--now", SERVICE_NAME);
|
|
105
|
+
if (opts.purge) {
|
|
106
|
+
unlinkSync(UNIT_PATH);
|
|
107
|
+
console.log(`Removed ${UNIT_PATH}`);
|
|
108
|
+
systemctlUser("daemon-reload");
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(`Disabled ${SERVICE_NAME}. Unit file kept at ${UNIT_PATH} (use --purge to remove).`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
console.log(`No unit file at ${UNIT_PATH}; nothing to uninstall.`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async function runStatus() {
|
|
119
|
+
if (!hasSystemd()) {
|
|
120
|
+
console.error("systemctl not found.");
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
systemctlUser("status", SERVICE_NAME, "--no-pager");
|
|
124
|
+
}
|
|
125
|
+
export function createServiceCommand() {
|
|
126
|
+
const svc = new Command("service").description("Manage claude-mux as a systemd user service");
|
|
127
|
+
svc
|
|
128
|
+
.command("install")
|
|
129
|
+
.description("Install systemd user unit and enable it (does not require sudo)")
|
|
130
|
+
.option("--port <number>", "Listen port", String(DEFAULT_SERVER_PORT))
|
|
131
|
+
.option("--host <address>", "Listen host", "127.0.0.1")
|
|
132
|
+
.option("--no-start", "Enable for boot but do not start now")
|
|
133
|
+
.action(async (opts) => {
|
|
134
|
+
await runInstall(opts);
|
|
135
|
+
process.exit(0);
|
|
136
|
+
});
|
|
137
|
+
svc
|
|
138
|
+
.command("uninstall")
|
|
139
|
+
.description("Disable the systemd user service")
|
|
140
|
+
.option("--purge", "Also remove the unit file")
|
|
141
|
+
.action(async (opts) => {
|
|
142
|
+
await runUninstall(opts);
|
|
143
|
+
process.exit(0);
|
|
144
|
+
});
|
|
145
|
+
svc
|
|
146
|
+
.command("status")
|
|
147
|
+
.description("Show systemd service status")
|
|
148
|
+
.action(async () => {
|
|
149
|
+
await runStatus();
|
|
150
|
+
process.exit(0);
|
|
151
|
+
});
|
|
152
|
+
return svc;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/version.d.ts
CHANGED
package/dist/utils/version.js
CHANGED