@cabane/cli 0.1.3 → 0.1.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.
Files changed (2) hide show
  1. package/README.md +64 -39
  2. package/package.json +3 -4
package/README.md CHANGED
@@ -1,34 +1,68 @@
1
1
  # cabane CLI
2
2
 
3
- Run a self-hosted Cabane on your own machine — **no docker, no repo**. `@cabane/cli`
4
- is a thin public supervisor/installer (no product source): it fetches the built
5
- server artifact, runs the whole stack, and keeps it updated.
3
+ Run a self-hosted [Cabane](https://cabane.ai) on your own machine. `@cabane/cli`
4
+ installs the Cabane server, runs the whole stack server, embedded Postgres,
5
+ and the house bridge and keeps it updated.
6
+
7
+ Two terms you'll see throughout:
8
+
9
+ - The **house bridge** is what makes your agents answer: it runs each agent
10
+ turn on your machine, through an executor.
11
+ - An **executor** is a coding-agent harness installed on your machine —
12
+ **Claude Code**, **Codex**, or **opencode**. Cabane ships no model of its own
13
+ and requires no particular provider; the house bridge runs whichever executor
14
+ (and credentials) you have.
15
+
16
+ The short version:
6
17
 
7
18
  ```sh
8
19
  npm i -g @cabane/cli # install the CLI (bin: `cabane`)
9
- cabane init # first-run wizard: data location, port, executor key
10
- cabane install --token cabdist_… # fetch + sha256-verify + unpack the gated server artifact
11
- cabane up --daemon # supervise Postgres + server + house bridge (no flags — uses your config)
20
+ cabane init # first-run wizard
21
+ cabane install --token cabdist_… # fetch + verify + unpack the server
22
+ cabane up --daemon # run the stack
12
23
  # open http://localhost:3000, sign up
13
- cabane setup-agent # register the house bridge + put your agent on it (prompts for a cab_… token)
24
+ cabane setup-agent # connect your agent to the house bridge
14
25
  ```
15
26
 
16
- `cabane init` is the interactive first-run wizard: it asks where your data lives
17
- (and **shows the resolved paths** — `data/storage` for uploads, `data/pg` for the
18
- database), the port, an optional public URL, and your executor credential entered
19
- **password-style**. It persists everything to config, so a later `cabane up` needs
20
- no flags. Re-run it any time to reconfigure. You can still skip it and pass flags
21
- directly if you prefer.
27
+ Each step, in order, below.
28
+
29
+ ## Requirements
30
+
31
+ - **Node 22.**
32
+ - **An executor the house bridge can run** — Claude Code, Codex, or opencode —
33
+ with its credentials reachable (see [Credentials](#credentials)).
34
+
35
+ ## Getting started
36
+
37
+ 1. **Install the CLI.** `npm i -g @cabane/cli` — installs the `cabane` binary.
22
38
 
23
- Every secret is entered at a hidden prompt, never on the command line — the
24
- `cabdist_…` distribution grant (`cabane install`), the executor key (`cabane init`
25
- / `cabane set-env KEY`), and the `cab_…` access token (`cabane setup-agent`) so
26
- none of them land in your shell history or on screen.
39
+ 2. **Run `cabane init`** the interactive first-run wizard. It asks where your
40
+ data lives (and shows the resolved paths `data/storage` for uploads,
41
+ `data/pg` for the database), the port, an optional public URL, and your
42
+ executor credential if you use API-key billing (on a Claude subscription
43
+ login there's nothing to enter — see [Credentials](#credentials)). Everything
44
+ persists to config, so a later `cabane up` needs no flags. Re-run it any time
45
+ to reconfigure, or skip it and pass flags directly if you prefer.
27
46
 
28
- The house bridge runs whatever executor you have (Claude Code, or another
29
- supported harness) see [Credentials](#credentials) for making its login
30
- reachable. On a Claude subscription there's nothing to do; on API-key billing,
31
- export or persist your key.
47
+ 3. **Run `cabane install --token cabdist_…`** fetches the server artifact with
48
+ your distribution token, verifies its sha256, and unpacks it. (Have a local
49
+ tarball instead? `cabane install --from <artifact.tgz>` works offline.)
50
+
51
+ 4. **Run `cabane up --daemon`** — starts and supervises the stack: embedded
52
+ Postgres, the server, and the house bridge. Leave off `--daemon` to run it in
53
+ the foreground.
54
+
55
+ 5. **Sign up.** Open <http://localhost:3000> and create your account and first
56
+ workspace.
57
+
58
+ 6. **Run `cabane setup-agent`** — the step that connects your agent to your
59
+ executor. Mint an access token in the app (**Settings → Developer**), then
60
+ run `cabane setup-agent` and paste the `cab_…` token at the prompt. That
61
+ registers the house bridge and puts your agent on it — your agent now
62
+ answers in chat.
63
+
64
+ For the fuller picture of what you just stood up — agents, bridges, workspaces,
65
+ files — see the [Cabane docs](https://app.cabane.ai/docs).
32
66
 
33
67
  ## What it supervises
34
68
 
@@ -98,13 +132,13 @@ When something won't start, run `cabane doctor` **first**. It's a standalone
98
132
  preflight (no server needed — it's what you reach for precisely when things are
99
133
  broken) that checks the common self-host failure classes and prints a legible
100
134
  pass/fail/warn report, each with a one-line fix, then exits non-zero if any hard
101
- check fails. It's strictly local — nothing phones home. v1 checks:
135
+ check fails. It's strictly local — nothing phones home. Checks:
102
136
 
103
137
  - **Node** ≥ the required version.
104
- - **Executor** — Claude Code present on PATH, and a credential reachable by the
105
- house bridge (subscription login, an `ANTHROPIC_*` env/persisted key, or a
106
- managed-policy that would refuse your key named specifically). Reachability
107
- only; it never calls the provider.
138
+ - **Executor** — your executor's binary on PATH (`claude` by default), and a
139
+ credential reachable by the house bridge (a subscription login, or an
140
+ `ANTHROPIC_*` env/persisted key). Reachability only; it never calls the
141
+ provider.
108
142
  - **Port** free (or held by a running cabane).
109
143
  - **Embedded Postgres** — platform binaries present + data dir healthy.
110
144
  - **Storage root** — writable, and where it is.
@@ -114,14 +148,6 @@ check fails. It's strictly local — nothing phones home. v1 checks:
114
148
  - **Disk space** for the data dir.
115
149
  - **macOS Gatekeeper** — quarantine on the Postgres binaries (macOS only).
116
150
 
117
- ## Requirements
118
-
119
- - **Node ≥ 22.**
120
- - **An executor the house bridge can run** — e.g. Claude Code, or another
121
- supported harness — with its credentials reachable (see [Credentials](#credentials)).
122
- Cabane ships no model of its own and requires no particular provider; the house
123
- bridge runs whatever executor you have.
124
-
125
151
  ## Credentials
126
152
 
127
153
  The house bridge inherits the environment `cabane up` runs under, so your
@@ -149,7 +175,7 @@ executor's credentials reach it — no provider is special-cased:
149
175
 
150
176
  `set-env` stores generic `KEY=VALUE` pairs in `<CABANE_HOME>/config.json` and composes
151
177
  them into the bridge on every `up`, so it serves any executor's credentials (a
152
- proxy `ANTHROPIC_BASE_URL`, an `ANTHROPIC_AUTH_TOKEN`, a future harness's key) —
178
+ proxy `ANTHROPIC_BASE_URL`, an `ANTHROPIC_AUTH_TOKEN`, another harness's key) —
153
179
  not just Anthropic. A bare `cabane set-env KEY` (no `=value`) prompts for the value
154
180
  without echoing, so a secret never lands on the command line. Inspect with `cabane
155
181
  set-env --list` (values masked), remove with `cabane set-env --unset KEY`. A live shell export takes precedence over a
@@ -159,7 +185,6 @@ class) always win over both. Apply a change to an already-running stack with
159
185
 
160
186
  ## Notes
161
187
 
162
- - **macOS Gatekeeper** on the unsigned Postgres binaries is a known open question
163
- (CT453) — documented, not yet solved. If pg fails to exec on first run, clear
164
- the quarantine xattr and retry.
165
- - **Install the _server_ artifact from a local build** with `cabane install --from <artifact.tgz>` instead of a distribution token — handy for an offline or air-gapped install.
188
+ - **macOS Gatekeeper** may quarantine the unsigned Postgres binaries. If pg
189
+ fails to exec on first run, clear the quarantine xattr and retry —
190
+ `cabane doctor` detects this and prints the fix.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@cabane/cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "type": "module",
5
- "description": "The cabane CLI — install, supervise (server + embedded Postgres + house bridge), and update a self-hosted Cabane on your own machine. No docker, no repo.",
5
+ "description": "The cabane CLI — install, run, and update a self-hosted Cabane on your own machine (server + embedded Postgres + house bridge).",
6
6
  "license": "UNLICENSED",
7
7
  "homepage": "https://cabane.ai",
8
8
  "repository": {
@@ -13,8 +13,7 @@
13
13
  "keywords": [
14
14
  "cabane",
15
15
  "self-host",
16
- "cli",
17
- "supervisor"
16
+ "cli"
18
17
  ],
19
18
  "bin": {
20
19
  "cabane": "dist/cli.js"