You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ cd /path/to/your/repo
44
44
seven up
45
45
```
46
46
47
-
On first run, `seven up` will prompt you to run `sprite login`, then create the sprite, and finally clone your repo and handle basic git setup. If host `codex` is logged in using ChatGPT, `seven init` also copies `~/.codex/auth.json` into the sprite so Codex is authenticated there. After clone, `seven init` configures one-shot console bootstrap for both Bashand Zsh so the first `sprite console` opens in the cloned repo and starts `codex`. On each `seven up`, the host `sprite` CLI is checked for updates and auto-upgraded when a newer version is available. Subsequent runs skip `init` and are therefore instant.
47
+
On first run, `seven up` will prompt you to run `sprite login`, then create the sprite, and finally clone your repo and handle basic git setup. If host `codex` is logged in using ChatGPT, `seven init` also copies `~/.codex/auth.json` into the sprite so Codex is authenticated there. After clone, `seven init` configures one-shot console bootstrap for Bash, Zsh, and fish so the first `sprite console` opens in the cloned repo and suggests the selected assistant. Use `seven up --assistant codex` or `seven up --assistant claude` when both credentials exist and you want a deterministic choice. On each `seven up`, the host `sprite` CLI is checked for updates and auto-upgraded when a newer version is available. Subsequent runs skip `init` and are therefore instant.
48
48
49
49
Once inside the sprite, cd into your folder and start your favorite assistant. The following come pre-installed: `claude`, `codex`, `cursor-agent`, and `gemini-cli`.
Install is **idempotent**, exact-version verified, and fail-closed: every declared row is required, so a failed reconciliation blocks the console instead of presenting a partially provisioned Sprite. Archive rows require per-architecture SHA-256 checksums. A `gstack` row requires an immutable commit; Seven fetches it from the official origin into a fresh staging repository, atomically replaces the old checkout, and registers it for every supported assistant found in the Sprite. Repos without a manifest are unaffected. (Secrets are *not* handled here — tooling install only; credentials are a separate, project-owned concern.)
80
+
Install is **idempotent**, exact-version verified, and fail-closed: every declared row is required, so a failed reconciliation blocks the console instead of presenting a partially provisioned Sprite. Archive rows require per-architecture SHA-256 checksums and may select a safe nested member. URL templates use `{arch}` (`x86_64`/`arm64`) or `{gnuarch}` (`x86_64`/`aarch64`). A `gstack` row requires an immutable commit; Seven fetches it from the official origin into a fresh staging repository, atomically replaces the old checkout, and registers it for every supported assistant found in the Sprite. Repos without a manifest are unaffected. (Secrets are *not* handled here — tooling install only; credentials are a separate, project-owned concern.)
80
81
81
82
### Assistant authentication
82
83
Host assistant credentials are copied into the sprite **once, at creation**, mirroring how `gh` auth is bootstrapped. Subsequent `seven up`s do not re-sync — re-running config + auth uploads for both assistants on every reconnect added noticeable latency without changing the result for a working sprite.
@@ -86,6 +87,8 @@ What's synced on the initial `seven up`:
86
87
-**Claude Code:** seven syncs the real OAuth credential store, not just `~/.claude.json`. On Linux that's `~/.claude/.credentials.json`; on macOS the tokens live in the login Keychain (service `claude-code` / `Claude Code-credentials`), which seven extracts and writes into the sprite. (The Keychain read may show a one-time access prompt.) `~/.claude/settings.json` and `~/.claude.json` are deep-merged so sprite-only keys are preserved.
87
88
-**Codex:**`~/.codex/auth.json` and `~/.codex/config.toml` are copied in.
88
89
90
+
Seven copies both assistants' available credentials regardless of which one is selected. Without an explicit `--assistant`, it preserves the existing auto-detection behavior; pass `--assistant codex` or `--assistant claude` to choose the console hint deterministically.
91
+
89
92
If a host token rotates and the sprite copy goes stale, run `claude` (or `codex login`) **inside the sprite** to re-auth — the same recovery path used for `gh`. Note that the host and a sprite share one refresh token, so a refresh on one side can occasionally invalidate the other ("token has already been used"); the fix is the same in-sprite re-login.
90
93
91
94
### Uninstall
@@ -137,6 +140,8 @@ seven up --gstack
137
140
138
141
The Sprite image must already provide Bun; Seven never bootstraps it with a remote shell script. Seven fetches and verifies an immutable gstack commit, cleans ignored build/dependency artifacts, installs its frozen lockfile, then runs `./setup --host auto --no-team`. Disabling team mode is intentional: its auto-updater would defeat the manifest pin. The same checkout registers skills for Claude Code, Codex, and any other supported host found in the Sprite. Re-running `seven up` reconciles a project-required install, including the browser payload.
139
142
143
+
Sprite images newer than Playwright's recognized Ubuntu matrix use Playwright's supported Ubuntu 24.04 compatibility build during setup. The override is scoped to that setup process and leaves recognized operating systems untouched.
0 commit comments