SpecStrand Docs

Install the spec CLI

spec is a single static binary that drives the SpecStrand work loop over the REST API. It has no runtime dependencies: download it, put it on your PATH, and run it. New to SpecStrand? The getting-started guide walks install, auth, and your first task end to end.

Both installers download only from https://specstrand.com, the origin that serves them.

Install with one command

Linux or macOS. Install the latest release to your PATH:

curl -fsSL https://specstrand.com/install.sh | sh

Windows, in PowerShell:

irm https://specstrand.com/install.ps1 | iex

Confirm the install:

spec version

What the installer does

  • Fetches only from https://specstrand.com, never from a third party. Set SPEC_INSTALL_BASE to point it at a mirror.
  • Reads releases/latest.json from that origin to resolve the latest tag and the asset for your platform.
  • Verifies the download's SHA256 against the checksum recorded in that manifest before unpacking it. A tampered, truncated, or wrong-content download is rejected, not installed.
  • Extracts only the expected spec binary from the archive, so an unexpected archive cannot drop files elsewhere.
  • Never executes any downloaded content. The only thing that runs is the spec binary you invoke yourself afterwards.
  • Warns, and tells you how to fix it, if the install directory is not on your PATH.

Piping a script to a shell deserves a look first. Open either URL in a browser, or pipe it to a pager (curl -fsSL https://specstrand.com/install.sh | less, irm https://specstrand.com/install.ps1), and read it before you run it.

Update the CLI

After the first install, spec update updates the CLI in place. It reads the same releases/latest.json from the same origin, and trusts it only when its Ed25519 signature verifies against a release key built into the CLI. It then verifies the archive's SHA256 against the manifest before it replaces the binary, and never follows a download URL off that origin. It changes your synced skills only when you ask with --include-skills, and it never overwrites a skill file you edited locally unless you add --force.

spec update --check            # report only: a newer CLI? skills out of date?
spec update                    # update the CLI; warn if skills are out of date
spec update --include-skills   # also re-sync skills to the targets you used last time
spec update --cli-only         # update the CLI; skip the skill check

Other commands print a one-line notice on stderr, at most once a day, when a newer release exists. Set SPEC_NO_UPDATE_CHECK=1 to turn it off.

Direct downloads

Direct downloads, with the checksum for each one, are listed here from this instance's release manifest.

Overrides

Both installers read the same two environment variables. spec update reads SPEC_INSTALL_BASE too, and it must be an https URL.

VariableDefaultPurpose
SPEC_INSTALL_BASEhttps://specstrand.comDownload from a mirror instead. Manifest and archives are both read from here.
SPEC_INSTALL_DIR$HOME/.local/bin (Linux, macOS), %LOCALAPPDATA%\SpecStrand\bin (Windows)Install somewhere else, for example a directory already on your PATH.

A system-wide install on Linux or macOS, which usually needs elevation:

curl -fsSL https://specstrand.com/install.sh | SPEC_INSTALL_DIR=/usr/local/bin sh

Install from source

With a Go toolchain and a source checkout, build the CLI yourself. This skips the release manifest entirely and builds whatever your checkout is at.

go install ./cmd/spec

Supported platforms

Every release publishes these five builds.

OSArchitectureAsset
Linuxamd64spec-<tag>-linux-amd64.tar.gz
Linuxarm64spec-<tag>-linux-arm64.tar.gz
macOSamd64 (Intel)spec-<tag>-darwin-amd64.tar.gz
macOSarm64 (Apple silicon)spec-<tag>-darwin-arm64.tar.gz
Windowsamd64spec-<tag>-windows-amd64.zip

There is no arm64 Windows build. install.ps1 installs the amd64 build on an arm64 machine, which Windows runs under emulation, and warns when it does.

Next

Authenticate and run your first task with the getting-started guide, or jump to the CLI command reference.