skydive-cli 0.2.0 → 0.3.0-beta.764
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/CHANGELOG.md +42 -0
- package/README.md +114 -22
- package/dist/js/bin.mjs +1261 -128
- package/dist/js/{boot-CGaXUEer.mjs → boot-Bs-IF23f.mjs} +2573 -199
- package/dist/js/chat/tui/chunks/grammars/assets/bash.highlights.scm +56 -0
- package/dist/js/chat/tui/chunks/grammars/assets/bash.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/c.highlights.scm +81 -0
- package/dist/js/chat/tui/chunks/grammars/assets/c.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/cpp.highlights.scm +70 -0
- package/dist/js/chat/tui/chunks/grammars/assets/cpp.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/css.highlights.scm +76 -0
- package/dist/js/chat/tui/chunks/grammars/assets/css.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/go.highlights.scm +123 -0
- package/dist/js/chat/tui/chunks/grammars/assets/go.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/html.highlights.scm +13 -0
- package/dist/js/chat/tui/chunks/grammars/assets/html.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/java.highlights.scm +149 -0
- package/dist/js/chat/tui/chunks/grammars/assets/java.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/json.highlights.scm +16 -0
- package/dist/js/chat/tui/chunks/grammars/assets/json.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/lua.highlights.scm +201 -0
- package/dist/js/chat/tui/chunks/grammars/assets/lua.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/python.highlights.scm +137 -0
- package/dist/js/chat/tui/chunks/grammars/assets/python.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/ruby.highlights.scm +154 -0
- package/dist/js/chat/tui/chunks/grammars/assets/ruby.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/rust.highlights.scm +161 -0
- package/dist/js/chat/tui/chunks/grammars/assets/rust.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/toml.highlights.scm +53 -0
- package/dist/js/chat/tui/chunks/grammars/assets/toml.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/assets/yaml.highlights.scm +79 -0
- package/dist/js/chat/tui/chunks/grammars/assets/yaml.wasm +0 -0
- package/dist/js/chat/tui/chunks/grammars/grammars.ts +146 -0
- package/dist/js/{client-B3ZhhF7e.mjs → client-Dc7GZ3PG.mjs} +148 -8
- package/dist/js/client-DuwxEDG4.mjs +5 -0
- package/dist/js/daemon-Ch_MSDmQ.mjs +6 -0
- package/dist/js/daemon-Co4CtpXZ.mjs +607 -0
- package/dist/js/{theme-CuQhvqzN.mjs → install-DEZmJLGH.mjs} +256 -186
- package/dist/js/{print-BZH0b3KB.mjs → print-CPCFci60.mjs} +2 -2
- package/dist/js/{print-Bin4u16d.mjs → print-Cd-bVSEJ.mjs} +224 -10
- package/dist/js/{print-share-D7OSxvE2.mjs → print-share-7qfpQtWK.mjs} +3 -3
- package/dist/js/{raw-pty-GAvxm2ol.mjs → raw-pty-BcjbTjHJ.mjs} +1 -1
- package/dist/js/raw-pty-ChUHav4d.mjs +5 -0
- package/dist/js/{rest-CamHVOce.mjs → rest-BlN_uWmL.mjs} +150 -19
- package/dist/js/rest-CDTXCmUb.mjs +4 -0
- package/package.json +3 -1
- package/dist/js/api-CDTKq_5Q.mjs +0 -145
- package/dist/js/client-D6NAkL9e.mjs +0 -6
- package/dist/js/raw-pty-2_VA1kw_.mjs +0 -5
- package/dist/js/rest-COkLEZOB.mjs +0 -4
- package/dist/js/util-CeisaZVY.mjs +0 -15
- /package/dist/js/{client-CpEvH2Pq.mjs → client-DfcJFEbh.mjs} +0 -0
- /package/dist/js/{output-B4cW10Ph.mjs → output-DYzzdXYV.mjs} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,48 @@ All notable changes to the Skydive CLI are documented here.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.3.0] - 2026-08-04
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
**Chat TUI**
|
|
15
|
+
|
|
16
|
+
- `/fork` slash command to fork a conversation at any point and continue in a new thread.
|
|
17
|
+
- `/conversation` switches threads from inside a live session.
|
|
18
|
+
- `/compact` triggers manual conversation compaction.
|
|
19
|
+
- `/portal` and `/copy` slash commands.
|
|
20
|
+
- Archive the current conversation from the chat TUI.
|
|
21
|
+
- `--new` flag on `skydive chat` to start a fresh conversation.
|
|
22
|
+
- Debounced server-side conversation search in the picker, with title matches ranked first.
|
|
23
|
+
- File review pane orientation toggle, and review comments in the file pane.
|
|
24
|
+
- Pinned plan card controls and a jump-to-latest hint.
|
|
25
|
+
- Terminal title (OSC) follows the live conversation title on every screen; inside cmux the workspace is renamed too, and linked PRs are pushed to the cmux sidebar.
|
|
26
|
+
- Every participating agent shows in the conversation list; connect cards each have their own identity, and ctrl+r asks which connect card to act on.
|
|
27
|
+
- Colored Skydive splash art in `skydive --help` and the TUI pickers.
|
|
28
|
+
- New-agent name prefilled from the server's suggestion.
|
|
29
|
+
|
|
30
|
+
**CLI & platform**
|
|
31
|
+
|
|
32
|
+
- `skydive update` self-updater, with an update notice when a new version is available.
|
|
33
|
+
- Shell completions for bash, zsh, and fish via `completion install`.
|
|
34
|
+
- Portal daemon: one connection per host with per-conversation working directories.
|
|
35
|
+
- Agent-led coding-agent import (`skydive import`).
|
|
36
|
+
- Per-workspace scoping on the REST client, and cross-org `--agent <uuid>` auto-switches workspace.
|
|
37
|
+
- `skydive-beta` wrapper for the canary channel.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- `skydive update` no longer claims an update is available on every npm install.
|
|
42
|
+
- Chat memory is bounded (payload clamps + windowed rows) with a memory watchdog and OOM diagnostic report; transcript rows are memoized so streaming stops re-rendering the whole chat.
|
|
43
|
+
- Chat-send failures map to real error messages.
|
|
44
|
+
- Notification and sidebar previews use the last text block of the reply and strip inline markdown.
|
|
45
|
+
- Picker rows no longer overlap when a conversation title contains a newline, tab, or control character.
|
|
46
|
+
- Sending to non-web channel conversations is blocked in the TUI.
|
|
47
|
+
- GitHub bot connect opens on the web front door, not api.skydive.com.
|
|
48
|
+
- TUI activity counter times from the run, not the screen.
|
|
49
|
+
|
|
8
50
|
## [0.2.0] - 2026-07-29
|
|
9
51
|
|
|
10
52
|
### Added
|
package/README.md
CHANGED
|
@@ -6,6 +6,53 @@ The Skydive CLI — manage agents and chat with them from the terminal.
|
|
|
6
6
|
npx skydive-cli --help
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
+
## Installing
|
|
10
|
+
|
|
11
|
+
Two ways to install, depending on whether you have a Node toolchain:
|
|
12
|
+
|
|
13
|
+
**npm (needs Node ≥ 20):**
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
npm install -g skydive-cli # then: skydive --help
|
|
17
|
+
# or run without installing:
|
|
18
|
+
npx skydive-cli --help
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Standalone binary (no Node required):**
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
curl -fsSL https://skydive.com/api/v1/cli/install.sh | sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Installs a self-contained `skydive` to `~/.local/bin`. The installer detects
|
|
28
|
+
your OS/arch, downloads the matching binary from the release CDN, verifies its
|
|
29
|
+
sha256, and installs it. Options via env vars: `SKYDIVE_CHANNEL=canary` for the
|
|
30
|
+
canary line, `SKYDIVE_VERSION=X.Y.Z` to pin a version, `SKYDIVE_INSTALL_DIR` to
|
|
31
|
+
choose the directory.
|
|
32
|
+
|
|
33
|
+
## Updating
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
skydive update # update to the latest release
|
|
37
|
+
skydive update --check # just report whether an update is available
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
A **binary** install self-updates in place (download → verify sha256 → atomic
|
|
41
|
+
replace). An **npm/yarn/pnpm/bun** install is owned by your package manager, so
|
|
42
|
+
`skydive update` offers to run the right upgrade command for it and relaunches
|
|
43
|
+
the CLI on the new version.
|
|
44
|
+
|
|
45
|
+
The CLI also checks for updates in the background (at most once a day, never
|
|
46
|
+
blocking a command) and prints a one-line notice when a newer version exists.
|
|
47
|
+
Control this in `config.json` or via env vars:
|
|
48
|
+
|
|
49
|
+
- `autoupdate`: `"patch"` (default — silently self-apply a stable **patch**
|
|
50
|
+
release of a binary install; notify for minor/major, canary, and
|
|
51
|
+
package-manager installs), `"notify"` (only ever print the notice), or
|
|
52
|
+
`false` (no auto-update and no notice). Env override: `SKYDIVE_AUTOUPDATE`.
|
|
53
|
+
- `updateCheck: false` (or `SKYDIVE_NO_UPDATE_CHECK` / `NO_UPDATE_NOTIFIER`)
|
|
54
|
+
turns the background check off entirely.
|
|
55
|
+
|
|
9
56
|
## Authentication
|
|
10
57
|
|
|
11
58
|
Sign in once via the browser — the same shape as `doppler login`: the CLI
|
|
@@ -84,10 +131,45 @@ skydive portal open # open the portal to this machine, headless
|
|
|
84
131
|
skydive portal grant --agent <id|name>
|
|
85
132
|
skydive portal revoke --agent <id|name>
|
|
86
133
|
skydive portal status
|
|
134
|
+
|
|
135
|
+
skydive completion install # set up TAB completion for your shell
|
|
87
136
|
```
|
|
88
137
|
|
|
89
138
|
Global flags: `--json`, `--quiet`, `--api-url <url>`.
|
|
90
139
|
|
|
140
|
+
## Shell completions
|
|
141
|
+
|
|
142
|
+
bash, zsh, and fish. One command sets them up for the shell you're in:
|
|
143
|
+
|
|
144
|
+
```sh
|
|
145
|
+
skydive completion install
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
It writes to `~/.bashrc` (or `~/.bash_profile` on macOS), `~/.zshrc`, or
|
|
149
|
+
`~/.config/fish/completions/skydive.fish`, respecting `ZDOTDIR` and
|
|
150
|
+
`XDG_CONFIG_HOME`, and picking whichever bash startup file you already have.
|
|
151
|
+
Open a new shell to pick them up. Re-running it — after an upgrade, say —
|
|
152
|
+
refreshes the block it wrote instead of appending a second copy, and leaves
|
|
153
|
+
the rest of the file alone. Pass a shell explicitly to set up one you're not
|
|
154
|
+
currently in: `skydive completion install fish`.
|
|
155
|
+
|
|
156
|
+
To see the script instead of installing it, or to source it from somewhere of
|
|
157
|
+
your own choosing:
|
|
158
|
+
|
|
159
|
+
```sh
|
|
160
|
+
skydive completion zsh # print it
|
|
161
|
+
eval "$(skydive completion bash)" # this shell only
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The script doesn't contain the command list — it asks the CLI for candidates
|
|
165
|
+
on each TAB, so completions never drift from the installed version. That
|
|
166
|
+
covers commands, subcommands, flags, and the values of flags with a fixed set
|
|
167
|
+
(`skydive agents list --scope <TAB>` → `mine org`). One TAB costs one short
|
|
168
|
+
CLI invocation (~150 ms).
|
|
169
|
+
|
|
170
|
+
zsh and fish show each command's description alongside it; bash lists names
|
|
171
|
+
only.
|
|
172
|
+
|
|
91
173
|
## `skydive import`
|
|
92
174
|
|
|
93
175
|
Migrating from Claude Code, Cursor, or OpenCode? `skydive import` opens a
|
|
@@ -176,6 +258,13 @@ internal API. On launch it walks you through:
|
|
|
176
258
|
formatting, collapsed reasoning, and rich rendering of tool calls
|
|
177
259
|
(`bash`, `edit`/`write` diffs, `read`, `grep`/`glob`).
|
|
178
260
|
|
|
261
|
+
You can change conversation without leaving chat. `/conversation` (aliases
|
|
262
|
+
`/conversations`, `/conv`) reopens the conversation list, and
|
|
263
|
+
`/conversation <id>` — an id, its `/c/<id>` link, or a pasted
|
|
264
|
+
`skydive chat --resume <id>` line — jumps straight into that thread, including
|
|
265
|
+
one belonging to a **different** agent. Either way the run you leave behind
|
|
266
|
+
keeps going server-side; reopening it reattaches to the stream.
|
|
267
|
+
|
|
179
268
|
Runs under **Node** like every other command. The TUI renders through
|
|
180
269
|
OpenTUI, whose native core needs the [Bun](https://bun.sh) runtime, so the
|
|
181
270
|
first `chat` run downloads a private, pinned Bun and re-execs under it
|
|
@@ -237,28 +326,31 @@ management API used by `agents`/`keys`.
|
|
|
237
326
|
|
|
238
327
|
### Keybindings
|
|
239
328
|
|
|
240
|
-
| Context | Key | Action
|
|
241
|
-
| ------------------- | ------------- |
|
|
242
|
-
| Pickers | _type_ | filter the list
|
|
243
|
-
| Pickers | `↑` / `↓` | move selection
|
|
244
|
-
| Pickers | `↵` | open / select
|
|
245
|
-
| Pickers | `esc` | back
|
|
246
|
-
| Agent picker | `ctrl+n` | create an agent
|
|
247
|
-
| Agent picker | `ctrl+w` | switch workspace
|
|
248
|
-
| Agent picker | `tab` | toggle mine / whole-org agents
|
|
249
|
-
| Conversation picker | `ctrl+
|
|
250
|
-
|
|
|
251
|
-
|
|
|
252
|
-
| Chat |
|
|
253
|
-
| Chat | `
|
|
254
|
-
| Chat | `ctrl+
|
|
255
|
-
| Chat | `
|
|
256
|
-
| Chat | `ctrl+
|
|
257
|
-
| Chat | `ctrl+
|
|
258
|
-
| Chat | `ctrl+
|
|
259
|
-
| Chat | `ctrl+
|
|
260
|
-
| Chat | `ctrl+
|
|
261
|
-
| Chat |
|
|
329
|
+
| Context | Key | Action |
|
|
330
|
+
| ------------------- | ------------- | ------------------------------------------ |
|
|
331
|
+
| Pickers | _type_ | filter the list |
|
|
332
|
+
| Pickers | `↑` / `↓` | move selection |
|
|
333
|
+
| Pickers | `↵` | open / select |
|
|
334
|
+
| Pickers | `esc` | back |
|
|
335
|
+
| Agent picker | `ctrl+n` | create an agent |
|
|
336
|
+
| Agent picker | `ctrl+w` | switch workspace |
|
|
337
|
+
| Agent picker | `tab` | toggle mine / whole-org agents |
|
|
338
|
+
| Conversation picker | `ctrl+a` | archive / restore it for you only |
|
|
339
|
+
| Conversation picker | `ctrl+d` | delete the highlighted conversation |
|
|
340
|
+
| Conversation picker | `shift+tab` | show / hide the ones you archived |
|
|
341
|
+
| Chat | `↵` | send (or queue, while streaming) |
|
|
342
|
+
| Chat | `pgup`/`pgdn` | scroll the transcript |
|
|
343
|
+
| Chat | `ctrl+c` | cancel the active run; again to quit |
|
|
344
|
+
| Chat | `esc` | back to the conversation picker |
|
|
345
|
+
| Chat | `ctrl+a` | archive this conversation (empty composer) |
|
|
346
|
+
| Chat | `ctrl+p` | switch model |
|
|
347
|
+
| Chat | `ctrl+o` | switch theme |
|
|
348
|
+
| Chat | `ctrl+t` | grant / revoke local machine access |
|
|
349
|
+
| Chat | `ctrl+l` | open this conversation in the browser |
|
|
350
|
+
| Chat | `ctrl+r` | run the newest pending connect card |
|
|
351
|
+
| Chat | `ctrl+v` | paste an image from the clipboard |
|
|
352
|
+
| Chat | `ctrl+x` | drop the most recently staged image |
|
|
353
|
+
| Chat | `?` | show the keybinding reference |
|
|
262
354
|
|
|
263
355
|
Messages typed while a response is streaming are **queued** and sent in
|
|
264
356
|
order as each run finishes; `ctrl+c` cancels the current run and clears the
|