Appearance
Installation
nubos-pilot ships through npx. The single binary is bin/install.js, exposed as the nubos-pilot command. There is no global install step — every invocation runs against the current working directory.
Prerequisites
- Node.js ≥ 22.
gitavailable on$PATH.- A host CLI: Claude Code, Codex, Gemini, or OpenCode.
First install
Run from the project root:
bash
npx nubos-pilotThe installer:
- Detects which runtime is active (config file, env var, finally a default of
codex). - Asks an eleven-question interview (runtime, model profile, branching strategy, parallelization toggle, response language, …).
- Writes the answers to
.nubos-pilot/config.json. - Stages the install payload in
.nubos-pilot/.staging.tmp/, manifests every file with a SHA-256, and atomically swaps it into.claude/nubos-pilot/. - If an
opencode/payloadsource exists, also installs.opencode/nubos-pilot/and writesopencode.jsonwhen missing. - Maintains a managed block in
CLAUDE.md,AGENTS.mdandGEMINI.mdpointing at the installed tool. - Repairs a known trapped
[features]table in~/.codex/config.tomlif present.
The end state is three trees (ADR-0005):
- Source — the
nubos-pilotgit repo (only contributors see this). - Install-Payload —
.claude/nubos-pilot/and optionally.opencode/nubos-pilot/on the user machine. - Project-State —
.nubos-pilot/next to the user's code, mutated only by workflows.
Re-install / update
bash
npx nubos-pilot updateRe-runs the install in update mode. The interview is skipped (config.json already exists). The manifest diff drives three operations:
- Added — file is new in the payload, written verbatim.
- Changed — if the file on disk differs from both the old and new manifest hashes (i.e. user-modified), it is backed up to a
.bak.<n>sidecar before being overwritten. - Stale — file present in the old manifest but missing in the new one is deleted.
Use npx nubos-pilot --dry-run to see the diff without touching the filesystem.
Doctor
bash
npx nubos-pilot doctorFive-check integrity scan: manifest hash check, runtime presence, config schema, gitignore guard, payload symlink check. Use --fix to apply auto-safe fixes.
Uninstall
bash
npx nubos-pilot uninstallWalks the manifest, unlinks every shipped file, removes the .claude/nubos-pilot/ and .opencode/nubos-pilot/ directories, and strips the managed block from CLAUDE.md / AGENTS.md / GEMINI.md. User-created backups (*.bak, *.bak.*) are preserved and listed.
The Project-State tree (.nubos-pilot/) is never touched by uninstall — your plans, ROADMAP and history survive.
What gets shipped
package.json declares the published files explicitly:
bin/install.jsbin/np-tools/lib/install/lib/askuser.cjs,lib/next.cjs,lib/progress.cjslib/runtime/templates/workflows/
Everything else in the repo (tests, ADRs, internal docs, .planning/) is contributor-only and never reaches an end-user install.
