Install
Throughspec ships on two channels from a single source-of-truth template tree, so the trees never drift byte-for-byte.
Pick either channel - the Node and Python CLIs expose an identical command surface and ship the same template payload, verified byte-for-byte on every release. Use whichever runtime you already have.
npm (Node.js ≥ 18)
Distributed as ESM. The fastest path is npx, which downloads and runs the latest published version without a global install:
# one-off scaffold - no install, always the latest version npx spec-init my-app
Prefer a persistent command on your PATH? Install it globally instead:
# install globally, then call spec-init anywhere npm install -g spec-init spec-init my-app
PyPI (Python ≥ 3.10)
Distributed as a pure-Python wheel. pipx is recommended - it installs the CLI into its own isolated virtualenv so it never collides with your project dependencies:
# recommended: isolated install via pipx pipx install spec-init spec-init my-app
If you do not use pipx, a plain pip install into the active environment works too:
# alternative: install into the current environment pip install spec-init spec-init my-app
npm and pip side by side
Every command maps one-to-one across the two channels. If a snippet elsewhere in these docs shows only the npx form, the pip equivalent is exactly the same after the runner prefix.
Run without installingnpm: npx spec-init my-app · pip: (install first, pipx/pip have no npx-style runner)Global installnpm: npm install -g spec-init · pip: pipx install spec-initScaffold a projectBoth: spec-init my-app (create-app shorthand, new in 1.2.0)Check the versionBoth: spec-init --version → spec-init 1.2.0Update the CLInpm: npm update -g spec-init · pip: pipx upgrade spec-initFlags
--persona <name>vibe | student | engineer | team - pre-tunes CLAUDE.md and the learning map.--integrations <csv>graphify,obsidian - activates the relevant integration blocks and drops in their config files.--forceRequired to overwrite an existing project. init refuses otherwise.--dry-runPrints the file plan without writing anything.--versionPrints the installed CLI version (spec-init 1.2.0) and exits.Verify the install
Confirm the CLI is on your PATH and reports 1.2.0, then let doctor validate a scaffolded project has all required files, a template-version in CLAUDE.md, and a valid spec.config.js:
spec-init --version # → spec-init 1.2.0 cd my-app spec-init doctor # ✓ files, template-version, and spec.config.js present
Update the CLI
npx always fetches the latest release, so there is nothing to update on that path. For a global install, upgrade in place:
# npm global install npm update -g spec-init # pipx pipx upgrade spec-init
Uninstall
# npm global install npm uninstall -g spec-init # pipx pipx uninstall spec-init # plain pip pip uninstall spec-init