@linzumi/cli 0.0.11-beta → 0.0.13-beta
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 +208 -229
- package/package.json +2 -2
- package/src/agentBootstrap.ts +806 -0
- package/src/channelSession.ts +630 -31
- package/src/channelSessionSupport.ts +54 -1
- package/src/forwardTunnel.ts +32 -7
- package/src/index.ts +373 -55
- package/src/kandanQueue.ts +11 -0
- package/src/localCapabilities.ts +14 -1
- package/src/localConfig.ts +99 -0
- package/src/localEditor.ts +1 -1
- package/src/localForwarding.ts +31 -8
- package/src/protocol.ts +16 -0
- package/src/runner.ts +49 -15
package/README.md
CHANGED
|
@@ -1,288 +1,267 @@
|
|
|
1
1
|
# Linzumi CLI
|
|
2
2
|
|
|
3
|
-
Run an AI coding session on the code that is already on your computer, then
|
|
4
|
-
open the editor and app preview from a shared browser workspace.
|
|
5
|
-
|
|
6
|
-
Linzumi is for the common team workflow that is still too painful:
|
|
7
|
-
|
|
8
|
-
- your branch is only on your laptop
|
|
9
|
-
- your app only runs with your local setup, secrets, database, or devices
|
|
10
|
-
- you want an AI agent to read, edit, run, and explain that code
|
|
11
|
-
- you want a teammate to see the editor or preview without cloning the repo
|
|
12
|
-
- you do not want to move the project into a cloud VM just to collaborate
|
|
13
|
-
|
|
14
|
-
The CLI connects your machine to Kandan, Linzumi's shared browser workspace.
|
|
15
|
-
Your code, terminal commands, dev servers, and editor runtime stay local. Kandan
|
|
16
|
-
handles sign-in, sharing, HTTPS browser access, and permission checks.
|
|
17
|
-
|
|
18
|
-
## Try It
|
|
19
|
-
|
|
20
|
-
Use Chrome, Edge, Arc, Brave, or another Chromium-based browser.
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
npm install -g @linzumi/cli@beta
|
|
24
|
-
linzumi start ~/code/my-app
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Then in the browser:
|
|
28
|
-
|
|
29
3
|
```text
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
4
|
+
▓▓╗ ▓▓╗▓▓▓╗ ▓▓╗▓▓▓▓▓▓▓╗▓▓╗ ▓▓╗▓▓▓╗ ▓▓▓╗▓▓╗
|
|
5
|
+
▓▓║ ▓▓║▓▓▓▓╗ ▓▓║╚══▓▓▓╔╝▓▓║ ▓▓║▓▓▓▓╗ ▓▓▓▓║▓▓║
|
|
6
|
+
▓▓║ ▓▓║▓▓╔▓▓╗ ▓▓║ ▓▓▓╔╝ ▓▓║ ▓▓║▓▓╔▓▓▓▓╔▓▓║▓▓║
|
|
7
|
+
▓▓║ ▓▓║▓▓║╚▓▓╗▓▓║ ▓▓▓╔╝ ▓▓║ ▓▓║▓▓║╚▓▓╔╝▓▓║▓▓║
|
|
8
|
+
▓▓▓▓▓▓▓░░░░░░░░╚▓▓▓▓║▓▓▓▓▓▓▓╗╚▓▓▓▓▓▓╔╝░░░░░░░░▓▓║▓▓║
|
|
9
|
+
╚═══▒▒▒@@@@@@@@▒▒═══╝╚══════╝ ╚════▒▒▒@@@@@@@@▒▒╝╚═╝
|
|
10
|
+
▒@@@@@@@@@@@@@@@@▒ ▒@@@@@@@@@@@@@@@@▒
|
|
11
|
+
@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@
|
|
12
|
+
@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@
|
|
13
|
+
║║ ║║
|
|
14
|
+
║║ ║║
|
|
15
|
+
║║ ()-().----. ║║
|
|
16
|
+
║║ \"/` ___ ;_________║║_.'
|
|
17
|
+
║║ ` ^^ ^^ ║║
|
|
18
|
+
──────────╨╨─────────────··────··────────╨╨──────────────
|
|
19
|
+
your agent, your laptop, PRs in minutes
|
|
37
20
|
```
|
|
38
21
|
|
|
39
|
-
|
|
40
|
-
you can share with an approved teammate, without exposing a raw `localhost`
|
|
41
|
-
address.
|
|
42
|
-
|
|
43
|
-
To pin this exact beta:
|
|
22
|
+
Today, your AI coding agent has two homes, both bad.
|
|
44
23
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
```
|
|
24
|
+
It can run **alone in your terminal**, where nobody — your teammate,
|
|
25
|
+
your eng lead, your future self at 2am — can see what it's doing or
|
|
26
|
+
help when it gets stuck.
|
|
49
27
|
|
|
50
|
-
|
|
28
|
+
Or it can run in **someone else's sandbox VM**, where "works for the
|
|
29
|
+
agent" rarely means "works on your laptop." You merge, pull, run the
|
|
30
|
+
test suite, and find out at 4pm.
|
|
51
31
|
|
|
52
|
-
Linzumi
|
|
32
|
+
Linzumi gives it a third home: **your real laptop, in a thread your
|
|
33
|
+
team can watch live**. Real env vars, real branches, real dotfiles,
|
|
34
|
+
real teamwork. Diffs land in chat as the agent makes them. Your
|
|
35
|
+
reviewer opens a browser VS Code pointed at *your folder* and has an
|
|
36
|
+
opinion before the agent's even finished. You approve from your phone
|
|
37
|
+
on the way to lunch.
|
|
53
38
|
|
|
54
|
-
|
|
55
|
-
2. You can open a browser editor for that local folder.
|
|
56
|
-
3. Local app previews are reachable through Kandan HTTPS URLs.
|
|
57
|
-
4. Approved teammates can join the editor or preview.
|
|
58
|
-
5. Kandan enforces auth, sharing grants, and allowed-port policy.
|
|
39
|
+
In three minutes from now you'll have it.
|
|
59
40
|
|
|
60
|
-
|
|
61
|
-
to work.
|
|
41
|
+
## What you'll have in three minutes
|
|
62
42
|
|
|
63
|
-
|
|
43
|
+
- **An AI coding agent running on your real laptop**, in a thread
|
|
44
|
+
your team can read along with.
|
|
45
|
+
- **A browser VS Code editor** pointed at the same folder, share-able
|
|
46
|
+
by link — no clone, no deploy, no "let me push a branch real
|
|
47
|
+
quick."
|
|
48
|
+
- **A private support channel with the Linzumi team**, in case
|
|
49
|
+
anything goes sideways.
|
|
64
50
|
|
|
65
|
-
|
|
51
|
+
Two commands. No cloud VM. Your code, your terminal, and your dev
|
|
52
|
+
server stay on your laptop the whole time.
|
|
66
53
|
|
|
67
|
-
|
|
68
|
-
- download the Kandan-approved editor runtime
|
|
69
|
-
- start code-server for the folder you chose
|
|
70
|
-
- connect to explicitly approved local ports
|
|
71
|
-
- stream editor and preview traffic through Kandan
|
|
54
|
+
## Install + start
|
|
72
55
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- local-runner status
|
|
77
|
-
- editor and preview links
|
|
78
|
-
- sharing controls
|
|
79
|
-
- HTTPS termination
|
|
80
|
-
- access checks before traffic reaches your machine
|
|
81
|
-
|
|
82
|
-
When docs mention `127.0.0.1` or `localhost` on the local-service hop, that
|
|
83
|
-
means your computer, not the Kandan server.
|
|
84
|
-
|
|
85
|
-
## Requirements
|
|
86
|
-
|
|
87
|
-
Install these before running the beta:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
node --version
|
|
91
|
-
npm --version
|
|
92
|
-
bun --version
|
|
93
|
-
codex --version
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Expected:
|
|
97
|
-
|
|
98
|
-
- Node.js 20 or newer
|
|
99
|
-
- npm
|
|
100
|
-
- Bun 1.2 or newer
|
|
101
|
-
- Codex CLI
|
|
102
|
-
- Chrome, Edge, Arc, Brave, or another Chromium-based browser
|
|
103
|
-
|
|
104
|
-
Safari is semi-supported for now. Use Chromium for the best editor and
|
|
105
|
-
collaboration behavior.
|
|
106
|
-
|
|
107
|
-
## First Run
|
|
56
|
+
You'll need **Node.js 20+**, **Bun 1.2+**, the **Codex CLI**, and a
|
|
57
|
+
Chromium-based browser (Chrome, Edge, Arc, or Brave). Safari mostly
|
|
58
|
+
works; live collaboration is smoother in Chromium.
|
|
108
59
|
|
|
109
60
|
```bash
|
|
61
|
+
npm install -g @linzumi/cli@beta
|
|
110
62
|
linzumi start ~/code/my-app
|
|
111
63
|
```
|
|
112
64
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
1. The CLI opens Kandan.
|
|
116
|
-
2. You sign up or sign in.
|
|
117
|
-
3. Kandan asks permission to connect this computer.
|
|
118
|
-
4. The CLI stores a scoped local-runner token.
|
|
119
|
-
5. The CLI checks Bun, Codex, and the Kandan editor runtime.
|
|
120
|
-
6. Kandan shows the computer as connected.
|
|
65
|
+
Here's what the next 30 seconds look like:
|
|
121
66
|
|
|
122
|
-
|
|
123
|
-
|
|
67
|
+
1. Your browser opens to Linzumi.
|
|
68
|
+
2. Sign in (or sign up — one click).
|
|
69
|
+
3. Linzumi asks if it can connect to this computer. Click allow.
|
|
70
|
+
4. Your laptop appears as a runner in your workspace, and
|
|
71
|
+
`~/code/my-app` is added to your trusted-paths list automatically.
|
|
72
|
+
5. Type something in chat — *"Explain this project and tell me how
|
|
73
|
+
to run it"* — and Codex picks it up on your machine.
|
|
124
74
|
|
|
125
|
-
|
|
126
|
-
~/.linzumi/editor-runtimes
|
|
127
|
-
```
|
|
75
|
+
That's it. The rest of this README is detail.
|
|
128
76
|
|
|
129
|
-
|
|
130
|
-
publishes a checksummed runtime manifest, and the CLI only advertises editor
|
|
131
|
-
readiness after that runtime is verified locally.
|
|
77
|
+
## Agent-first launch path
|
|
132
78
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
Ask Codex to map the project:
|
|
79
|
+
Copy this into an agent running in the repo you want changed:
|
|
136
80
|
|
|
137
81
|
```text
|
|
138
|
-
|
|
82
|
+
Get me a working hello-world PR from https://linzumi.com/agents.md
|
|
139
83
|
```
|
|
140
84
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
85
|
+
That one prompt is the launch path. The canonical agent instructions are
|
|
86
|
+
hosted at `https://linzumi.com/agents.md`; `https://linzumi.com/skills.md`
|
|
87
|
+
stays available for compatibility. The agent will ask for your email,
|
|
88
|
+
ask for the emailed code, say hello to `@sean` in the shared support
|
|
89
|
+
channel, start the runner in the current folder, open Codex and the
|
|
90
|
+
browser editor, then post the PR or reviewable branch.
|
|
146
91
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
Start a local dev server:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
npm run dev
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
If a port is not auto-detected, restart with an explicit approved port:
|
|
92
|
+
Under the hood, the npm package exposes these commands:
|
|
156
93
|
|
|
157
94
|
```bash
|
|
158
|
-
|
|
95
|
+
npx -y @linzumi/cli@latest signup --email alice@example.com --agent-name BuildBot
|
|
96
|
+
npx -y @linzumi/cli@latest claim --pending <pending_id> --code <XXXX-XXXX>
|
|
97
|
+
npx -y @linzumi/cli@latest thread new "Hello world PR" --message "Starting now."
|
|
98
|
+
npx -y @linzumi/cli@latest agent runner "$PWD" --runner-id hello-world-agent
|
|
159
99
|
```
|
|
160
100
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
101
|
+
The agent-owned runner reads `~/.linzumi/agent-token.json`, uses the
|
|
102
|
+
workspace/channel scope from the approval flow, trusts only the selected
|
|
103
|
+
folder by default, and listens only to the approving human unless
|
|
104
|
+
`--listen-user` is explicitly passed.
|
|
164
105
|
|
|
165
|
-
|
|
106
|
+
`linzumi claim` also prints `support_channel_url`. That channel is the
|
|
107
|
+
shared onboarding room for the approving human, the claimed agent identity,
|
|
108
|
+
and Linzumi support. Keep repository work in task threads; use the support
|
|
109
|
+
channel when signup, runner, mobile, or browser-editor setup gets stuck.
|
|
166
110
|
|
|
167
|
-
|
|
111
|
+
Once the runner is online, the agent can ask Kandan to start Codex and
|
|
112
|
+
open the browser editor for the same thread and folder:
|
|
168
113
|
|
|
169
114
|
```bash
|
|
170
|
-
|
|
115
|
+
npx -y @linzumi/cli@latest codex start <thread_id> \
|
|
116
|
+
--runner hello-world-agent \
|
|
117
|
+
--cwd "$PWD" \
|
|
118
|
+
--work-description "Make the smallest hello-world change, run the relevant test, open a PR or clearly labeled local-review branch, and post the link."
|
|
119
|
+
|
|
120
|
+
npx -y @linzumi/cli@latest editor open <thread_id> \
|
|
121
|
+
--runner hello-world-agent \
|
|
122
|
+
--cwd "$PWD"
|
|
171
123
|
```
|
|
172
124
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
125
|
+
The launch target for this path is zero-to-hello-world-pr+editor in under
|
|
126
|
+
3 minutes, measured from `signup` through PR/reviewable change link plus
|
|
127
|
+
browser VS Code readiness.
|
|
128
|
+
|
|
129
|
+
## What just happened
|
|
130
|
+
|
|
131
|
+
You now have:
|
|
132
|
+
|
|
133
|
+
- **A runner.** Your laptop, listed in the workspace, advertising the
|
|
134
|
+
folder you started in (and any others you've added to your trusted
|
|
135
|
+
list).
|
|
136
|
+
- **A workspace** you can invite teammates into. They open the same
|
|
137
|
+
browser app, see the same threads, and can start their own runners
|
|
138
|
+
on their own machines.
|
|
139
|
+
- **A private Linzumi support channel.** We can see this channel; we
|
|
140
|
+
**cannot** see your repo contents, your tokens, your Codex
|
|
141
|
+
transcripts, your editor session, or your other threads. Stuck?
|
|
142
|
+
Post there — we read it.
|
|
143
|
+
- **A browser VS Code editor**, available on demand for any Codex
|
|
144
|
+
session, posted into the thread when ready.
|
|
145
|
+
|
|
146
|
+
## Three things to try first
|
|
147
|
+
|
|
148
|
+
1. **Onboard yourself to a new repo.** *"Explain this project and tell
|
|
149
|
+
me how to run it."* Codex maps the codebase before you've opened
|
|
150
|
+
a single file. Days saved on day one.
|
|
151
|
+
2. **Make a real change without context-switching.** Codex edits files
|
|
152
|
+
on your disk. Watch the diff land in chat, or jump into the
|
|
153
|
+
browser editor (it's VS Code in your browser, pointed at your
|
|
154
|
+
folder) and shape it yourself.
|
|
155
|
+
3. **Show a teammate something on your screen.** Open the browser
|
|
156
|
+
editor or share your local dev server through a normal HTTPS
|
|
157
|
+
link. No exposing localhost, no copy-pasting IPs, no "screenshare
|
|
158
|
+
real quick."
|
|
159
|
+
|
|
160
|
+
## Working as a team
|
|
161
|
+
|
|
162
|
+
This is what makes Linzumi different from running an AI coding agent
|
|
163
|
+
alone in a terminal.
|
|
164
|
+
|
|
165
|
+
- **Your laptops are always in sight.** Every machine you've run
|
|
166
|
+
`linzumi start` on shows up as a runner. From any channel, you can
|
|
167
|
+
see how many of your runners are reachable right now and which ones
|
|
168
|
+
are listening on that channel.
|
|
169
|
+
|
|
170
|
+
- **Put Codex on the job from the channel.** Pick an available runner
|
|
171
|
+
and a trusted folder from the channel menu, type what Codex should
|
|
172
|
+
work on, hit start. Linzumi attaches a fresh Codex to that runner
|
|
173
|
+
with the folder and settings you picked.
|
|
174
|
+
|
|
175
|
+
- **One Codex per thread.** Once a Codex picks up a thread, it owns
|
|
176
|
+
the thread — no second Codex can step in and trample the work. The
|
|
177
|
+
lock holds for the life of the thread.
|
|
178
|
+
|
|
179
|
+
- **Browse what your team's been up to.** Open the runners dropdown
|
|
180
|
+
to see, across every device, the most recently active threads with
|
|
181
|
+
short AI-written summaries. Jump in and keep working.
|
|
182
|
+
|
|
183
|
+
- **Chat with humans without waking Codex.** Start a message with `&`
|
|
184
|
+
and Codex won't see it. Side conversations live in the same thread
|
|
185
|
+
without nudging the agent.
|
|
186
|
+
|
|
187
|
+
## Trusted folders — the security model
|
|
188
|
+
|
|
189
|
+
Linzumi only runs Codex or opens the editor inside folders you've
|
|
190
|
+
explicitly trusted. The trust list lives at `~/.linzumi/config.json`.
|
|
178
191
|
|
|
179
192
|
```bash
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
linzumi paths list
|
|
194
|
+
linzumi paths add ~/code/my-app
|
|
195
|
+
linzumi paths remove ~/code/my-app
|
|
182
196
|
```
|
|
183
197
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
198
|
+
`linzumi start <path>` adds `<path>` to the trust list automatically
|
|
199
|
+
on first use. `linzumi connect` uses the list as-is — or pass
|
|
200
|
+
`--allowed-cwd <paths>` for a one-off comma-separated override.
|
|
201
|
+
|
|
202
|
+
There's no credential escalation: an agent attached to a trusted
|
|
203
|
+
folder can only read and write inside that folder, with the same
|
|
204
|
+
privileges as your shell. Every action is auditable from the thread.
|
|
205
|
+
|
|
206
|
+
## When something looks wrong
|
|
207
|
+
|
|
208
|
+
- **`linzumi: command not found`** — your global npm bin folder isn't
|
|
209
|
+
on `PATH`. Run `npm prefix -g`; add the printed path's `bin` folder
|
|
210
|
+
to your shell.
|
|
211
|
+
- **`bun: command not found`** — install Bun, then rerun
|
|
212
|
+
`linzumi start`. The `linzumi` binary is a node shim that delegates
|
|
213
|
+
to Bun for fast TypeScript startup.
|
|
214
|
+
- **`codex: command not found`** — install the Codex CLI, or pass
|
|
215
|
+
`--codex-bin <path>` to `linzumi start`.
|
|
216
|
+
- **Browser sign-in opens but never returns to the CLI.** Your browser
|
|
217
|
+
can't reach the address the CLI is listening on. Pass
|
|
218
|
+
`--oauth-callback-host <ip-or-host-your-browser-can-reach>`.
|
|
219
|
+
- **Browser editor never says it's ready.** Rerun `linzumi start` and
|
|
220
|
+
watch the console for the editor download step. The very first
|
|
221
|
+
launch on a slow network can take a minute or two.
|
|
222
|
+
- **Collaboration looks off in Safari.** Switch to Chromium for now.
|
|
223
|
+
- **Anything else.** Post in your Linzumi support channel — we read it.
|
|
224
|
+
|
|
225
|
+
## Pinning a version
|
|
187
226
|
|
|
188
227
|
```bash
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
--oauth-callback-host 100.71.192.98
|
|
228
|
+
npm install -g @linzumi/cli@0.0.13-beta
|
|
229
|
+
linzumi --version
|
|
192
230
|
```
|
|
193
231
|
|
|
194
|
-
|
|
232
|
+
## Advanced
|
|
195
233
|
|
|
196
|
-
|
|
234
|
+
Most people never need anything in this section.
|
|
197
235
|
|
|
198
|
-
|
|
199
|
-
linzumi
|
|
200
|
-
linzumi --help
|
|
201
|
-
linzumi --version
|
|
202
|
-
linzumi start <folder>
|
|
203
|
-
linzumi connect --help
|
|
204
|
-
linzumi connect [runner options]
|
|
205
|
-
linzumi auth [auth options]
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Most people should use `linzumi start`.
|
|
236
|
+
### Lower-level connect
|
|
209
237
|
|
|
210
|
-
`linzumi
|
|
211
|
-
workspace and channel:
|
|
238
|
+
`linzumi start` is what you want almost every time. The lower-level
|
|
239
|
+
form is useful when you already know your workspace and channel:
|
|
212
240
|
|
|
213
241
|
```bash
|
|
214
242
|
linzumi connect \
|
|
215
|
-
--
|
|
216
|
-
--
|
|
217
|
-
--channel general \
|
|
243
|
+
--workspace <your-workspace> \
|
|
244
|
+
--channel <your-channel> \
|
|
218
245
|
--cwd ~/code/my-app
|
|
219
246
|
```
|
|
220
247
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
--kandan-url <ws-url> Kandan websocket URL
|
|
225
|
-
--oauth-callback-host <ip> Callback host reachable by your browser
|
|
226
|
-
--runner-id <id> Stable id for this computer
|
|
227
|
-
--codex-bin <path> Codex executable, default codex
|
|
228
|
-
--model <name> Codex model metadata shown in Kandan
|
|
229
|
-
--reasoning-effort <value> Codex reasoning metadata shown in Kandan
|
|
230
|
-
--fast Mark this runner as low-latency
|
|
231
|
-
--forward-port <ports> Comma-separated local ports Kandan may expose
|
|
232
|
-
--allowed-cwd <paths> Comma-separated roots Kandan may use
|
|
233
|
-
--log-file <path> JSONL runner event log
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
`--code-server-bin` exists only as a development override. It is not the
|
|
237
|
-
supported production editor path.
|
|
238
|
-
|
|
239
|
-
## Troubleshooting
|
|
240
|
-
|
|
241
|
-
Check the CLI version:
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
linzumi --version
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Expected:
|
|
248
|
+
### All the flags
|
|
248
249
|
|
|
249
250
|
```text
|
|
250
|
-
linzumi
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
If OAuth opens but does not return to the CLI, pass an
|
|
261
|
-
`--oauth-callback-host` that your browser can reach.
|
|
262
|
-
|
|
263
|
-
If the editor does not become ready, do not install a local code-server package
|
|
264
|
-
as a workaround. The server-managed runtime must download and verify cleanly.
|
|
265
|
-
Rerun the CLI and check the runner log.
|
|
266
|
-
|
|
267
|
-
If collaboration behaves oddly in Safari, retry in Chromium. Safari is currently
|
|
268
|
-
semi-supported.
|
|
269
|
-
|
|
270
|
-
## For Kandan Release Engineers
|
|
271
|
-
|
|
272
|
-
The production contract is:
|
|
273
|
-
|
|
274
|
-
1. Build the server-approved editor runtime archive.
|
|
275
|
-
2. Publish the manifest and archive from Kandan.
|
|
276
|
-
3. Publish the CLI beta.
|
|
277
|
-
4. The CLI downloads only the approved runtime archive.
|
|
278
|
-
5. The CLI verifies the archive SHA before advertising editor readiness.
|
|
279
|
-
|
|
280
|
-
For local package verification:
|
|
281
|
-
|
|
282
|
-
```bash
|
|
283
|
-
bun test
|
|
284
|
-
npm pack --dry-run
|
|
251
|
+
--agent-token-file <path> Agent token cache for `linzumi agent runner`
|
|
252
|
+
--oauth-callback-host <ip> Sign-in callback host your browser can reach
|
|
253
|
+
--codex-bin <path> Codex executable, default `codex`
|
|
254
|
+
--model <name> Model requested for Codex sessions and labelled in Linzumi
|
|
255
|
+
--reasoning-effort <value> Reasoning effort requested for Codex sessions and labelled in Linzumi
|
|
256
|
+
--fast Advertise this runner as low-latency in the workspace
|
|
257
|
+
--forward-port <ports> Comma-separated local TCP ports Linzumi may share as authenticated previews
|
|
258
|
+
--allowed-cwd <paths> Override ~/.linzumi/config.json with comma-separated trusted roots
|
|
259
|
+
--log-file <path> JSONL runner event log
|
|
285
260
|
```
|
|
286
261
|
|
|
287
|
-
|
|
288
|
-
|
|
262
|
+
`--runner-id`, `--auth-file`, `--code-server-bin`, `--codex-url`,
|
|
263
|
+
`--launch-tui`, `--listen-user`, `--sandbox`, `--approval-policy`,
|
|
264
|
+
`--stream-flush-ms`, and `--token` are also accepted; `linzumi
|
|
265
|
+
--help` shows them all with brief descriptions. They exist for
|
|
266
|
+
multi-runner orchestration, custom Codex deployments, and CI
|
|
267
|
+
scenarios — not for everyday use.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linzumi/cli",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.13-beta",
|
|
4
|
+
"description": "Linzumi CLI — point a Codex agent at the real code on your laptop, with your team watching and steering from shared threads.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"linzumi": "bin/linzumi.js"
|