Installation

Install speccoder with Homebrew, the installer or Cargo, verify what you downloaded, and what it needs: git, a Spec Kit or OpenSpec project, a model and your project's toolchain.

Requirements

You needWhy
gitspeccoder works in a git worktree and records every attempt in git.
A spec projectA GitHub Spec Kit project (Spec Kit 0.13 to 1.2) or an OpenSpec project (OpenSpec 1.0 or newer). Kiro specs are recognised and refused.
A modelAn Anthropic or OpenAI API key in the environment, AWS credentials for Amazon Bedrock (a Bedrock API key or an aws login session), or a local OpenAI-compatible server such as Ollama or vLLM.
Your toolchainWhatever your checks run: cargo (ideally with cargo-nextest), pytest, and so on.
macOS or LinuxThe OS sandbox uses Seatbelt on macOS and Landlock on Linux 6.2 or newer (Landlock ABI 3).

Install

Release builds exist for macOS on Apple silicon and Linux (glibc) on x86_64 and arm64. On an Intel Mac, build from source; musl-based Linux and Windows are not supported.

brew install hupe1980/tap/speccoder                     # Homebrew (macOS, Linux)
curl -LsSf https://github.com/hupe1980/speccoder/releases/latest/download/speccoder-installer.sh | sh
cargo binstall speccoder                                # the release archive
cargo install speccoder --locked                        # build it (Rust 1.99 or newer)

The installer checks the archive’s SHA-256 and installs to ~/.local/bin (no sudo):

OptionEnvironmentMeaning
--version VSPECCODER_VERSIONA given release (default: the latest)
--to DIRSPECCODER_INSTALL_DIRAnother directory
--verify-attestationAlso check the build provenance with the GitHub CLI

Its exit status: 0 installed, 1 a download or a tool is missing, 2 unsupported platform, 3 checksum mismatch, 4 attestation failed.

From source: git clone https://github.com/hupe1980/speccoder, then cargo install --locked --path speccoder/crates/speccoder. Check it with speccoder --version.

The desktop window

speccoder ui --window opens the web interface in its own window. On macOS it is part of every build. On Linux it needs WebKitGTK and a build with the app feature:

sudo apt install libwebkit2gtk-4.1-dev   # Debian, Ubuntu
cargo install speccoder --locked --features app

Without it, speccoder ui serves the same page to your browser.

Verify a download

Every release lists SHA256SUMS and carries a build-provenance attestation for each archive, naming the repository, .github/workflows/release.yml, the tag and the commit:

shasum -a 256 -c SHA256SUMS --ignore-missing
gh attestation verify speccoder-0.6.1-aarch64-apple-darwin.tar.gz --repo hupe1980/speccoder

The branch check

speccoder attest verify --branch is part of speccoder. It needs git, and ssh-keygen, gpg or cosign for the signatures it meets; no model key. On GitHub, the evidence action downloads the speccoder archive for the runner and checks its provenance and sha256 before it runs it.

API keys

speccoder reads keys only from the environment (ANTHROPIC_API_KEY or OPENAI_API_KEY; for Bedrock the AWS credential chain: AWS_BEARER_TOKEN_BEDROCK or a profile) and never writes them to its journal or output. To use a gitignored .env file, load it into the shell first:

set -a; . ./.env; set +a

Use a key with a spending limit. A local model needs no key; see [model].

Optional tools

ToolEnables
cargo-nextestPer-test results and regression detection for Rust (speccoder init configures it).
cargo-mutantsMutation evidence.
ghThe installer’s --verify-attestation and gh attestation verify (speccoder pr does not need it; see GitHub).
specify (Spec Kit CLI)Creating projects and running Spec Kit workflows.
copilot, opencode, npxAn agent as the executor (npx starts Claude Code, Codex and Gemini CLI).

Edit this page