Skip to content

Getting Started with GSD

GSD is an AI coding agent that handles planning, execution, verification, and shipping so you can focus on what to build. This guide walks you through installation on macOS, Windows, and Linux, then gets you running your first session.


RequirementMinimumRecommended
Node.js22.0.024 LTS
Git2.20+Latest
LLM API keyAny supported providerAnthropic (Claude)

Don’t have Node.js or Git yet? Follow the OS-specific instructions below.


Downloads: Node.js | Git | Homebrew

Step 1 — Install Homebrew (skip if you already have it):

Terminal window
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Step 2 — Install Node.js and Git:

Terminal window
brew install node git

Step 3 — Verify dependencies are installed:

Terminal window
node --version # should print v22.x or higher
git --version # should print 2.20+

Step 4 — Install GSD:

Terminal window
npm install -g gsd-pi

Step 5 — Set up your LLM provider:

Terminal window
# Option A: Set an environment variable (Anthropic recommended)
export ANTHROPIC_API_KEY="sk-ant-..."
# Option B: Use the built-in config wizard
gsd config

To persist the key, add the export line to ~/.zshrc:

Terminal window
echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc
source ~/.zshrc

See Provider Setup Guide for all 20+ supported providers.

Step 6 — Launch GSD:

Terminal window
cd ~/my-project # navigate to any project
gsd # start a session

Step 7 — Verify everything works:

Terminal window
gsd --version # prints the installed version

Inside the session, type /model to confirm your LLM is connected.

Apple Silicon PATH fix: If gsd isn’t found after install, npm’s global bin may not be in your PATH:

Terminal window
echo 'export PATH="$(npm prefix -g)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

oh-my-zsh conflict: The oh-my-zsh git plugin defines alias gsd='git svn dcommit'. Fix with unalias gsd 2>/dev/null in ~/.zshrc, or use gsd-cli instead.


Downloads: Node.js | Git for Windows | Windows Terminal

Section titled “Option A: winget (recommended for Windows 10/11)”

Step 1 — Install Node.js and Git:

Terminal window
winget install OpenJS.NodeJS.LTS
winget install Git.Git

Step 2 — Restart your terminal (close and reopen PowerShell or Windows Terminal).

Step 3 — Verify dependencies are installed:

Terminal window
node --version # should print v22.x or higher
git --version # should print 2.20+

Step 4 — Install GSD:

Terminal window
npm install -g gsd-pi

Step 5 — Set up your LLM provider:

Terminal window
# Option A: Set an environment variable (current session)
$env:ANTHROPIC_API_KEY = "sk-ant-..."
# Option B: Use the built-in config wizard
gsd config

To persist the key permanently, add it via System Settings > Environment Variables, or run:

Terminal window
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-...", "User")

See Provider Setup Guide for all 20+ supported providers.

Step 6 — Launch GSD:

Terminal window
cd C:\Users\you\my-project # navigate to any project
gsd # start a session

Step 7 — Verify everything works:

Terminal window
gsd --version # prints the installed version

Inside the session, type /model to confirm your LLM is connected.

  1. Download and install Node.js LTS — check “Add to PATH” during setup
  2. Download and install Git for Windows — use default options
  3. Open a new terminal, then follow Steps 3-7 above

Windows tips:

  • Use Windows Terminal or PowerShell for the best experience. Command Prompt works but has limited color support.
  • If gsd isn’t recognized, restart your terminal. Windows needs a fresh terminal to pick up new PATH entries.
  • WSL2 also works — install WSL, then follow the Linux instructions inside your distro.

Downloads: Node.js | Git | nvm

Pick your distro, then follow the steps.

Step 1 — Install Node.js and Git:

Terminal window
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs git

Step 1 — Install Node.js and Git:

Terminal window
curl -fsSL https://rpm.nodesource.com/setup_24.x | sudo bash -
sudo dnf install -y nodejs git

Step 1 — Install Node.js and Git:

Terminal window
sudo pacman -S nodejs npm git

Step 1 — Install nvm, then Node.js:

Terminal window
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc # or ~/.zshrc
nvm install 24
nvm use 24

Step 2 — Verify dependencies are installed:

Terminal window
node --version # should print v22.x or higher
git --version # should print 2.20+

Step 3 — Install GSD:

Terminal window
npm install -g gsd-pi

Step 4 — Set up your LLM provider:

Terminal window
# Option A: Set an environment variable (Anthropic recommended)
export ANTHROPIC_API_KEY="sk-ant-..."
# Option B: Use the built-in config wizard
gsd config

To persist the key, add the export line to ~/.bashrc (or ~/.zshrc):

Terminal window
echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.bashrc
source ~/.bashrc

See Provider Setup Guide for all 20+ supported providers.

Step 5 — Launch GSD:

Terminal window
cd ~/my-project # navigate to any project
gsd # start a session

Step 6 — Verify everything works:

Terminal window
gsd --version # prints the installed version

Inside the session, type /model to confirm your LLM is connected.

Permission errors on npm install -g? Don’t use sudo npm. Fix npm’s global directory instead:

Terminal window
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
npm install -g gsd-pi

Downloads: Docker Desktop

Run GSD in an isolated sandbox without installing Node.js on your host.

Step 1 — Install Docker Desktop (4.58+ required).

Step 2 — Clone the GSD repo:

Terminal window
git clone https://github.com/gsd-build/gsd-2.git
cd gsd-2/docker

Step 3 — Create and enter a sandbox:

Terminal window
docker sandbox create --template . --name gsd-sandbox
docker sandbox exec -it gsd-sandbox bash

Step 4 — Set your API key and run GSD:

Terminal window
export ANTHROPIC_API_KEY="sk-ant-..."
gsd auto "implement the feature described in issue #42"

See Docker Sandbox docs for full configuration, resource limits, and compose files.


GSD auto-selects a default model after provider setup. Switch anytime inside a session:

/model

Or configure per-phase models in preferences — see Configuration.


Type /gsd inside a session. GSD executes one unit of work at a time, pausing between each with a wizard showing what completed and what’s next.

  • No .gsd/ directory — starts a discussion flow to capture your project vision
  • Milestone exists, no roadmap — discuss or research the milestone
  • Roadmap exists, slices pending — plan the next slice or execute a task
  • Mid-task — resume where you left off

Step mode keeps you in the loop, reviewing output between each step.

Type /gsd auto and walk away. GSD autonomously researches, plans, executes, verifies, commits, and advances through every slice until the milestone is complete.

/gsd auto

See Auto Mode for full details.


Run auto mode in one terminal, steer from another.

Terminal 1 — let it build:

Terminal window
gsd
/gsd auto

Terminal 2 — steer while it works:

Terminal window
gsd
/gsd discuss # talk through architecture decisions
/gsd status # check progress
/gsd queue # queue the next milestone

Both terminals read and write the same .gsd/ files. Decisions in terminal 2 are picked up at the next phase boundary automatically.


Milestone → a shippable version (4-10 slices)
Slice → one demoable vertical capability (1-7 tasks)
Task → one context-window-sized unit of work

The iron rule: a task must fit in one context window. If it can’t, it’s two tasks.

All state lives on disk in .gsd/:

.gsd/
PROJECT.md — what the project is right now
REQUIREMENTS.md — requirement contract
DECISIONS.md — append-only architectural decisions
KNOWLEDGE.md — cross-session rules and patterns
STATE.md — quick-glance status
milestones/
M001/
M001-ROADMAP.md — slice plan with dependencies
slices/
S01/
S01-PLAN.md — task decomposition
S01-SUMMARY.md — what happened

GSD is also available as a VS Code extension. Install from the marketplace (publisher: FluxLabs) or search for “GSD” in VS Code extensions:

  • @gsd chat participant — talk to the agent in VS Code Chat
  • Sidebar dashboard — connection status, model info, token usage
  • Full command palette — start/stop agent, switch models, export sessions

The CLI (gsd-pi) must be installed first — the extension connects to it via RPC.


GSD has a browser-based interface for visual project management:

Terminal window
gsd --web

See Web Interface for details.


Terminal window
gsd --continue # or gsd -c

Resumes the most recent session for the current directory.

Browse all saved sessions:

Terminal window
gsd sessions

GSD checks for updates every 24 hours and prompts at startup. You can also update manually:

Terminal window
npm update -g gsd-pi

Or from within a session:

/gsd update

ProblemFix
command not found: gsdAdd npm global bin to PATH (see OS-specific notes above)
gsd runs git svn dcommitoh-my-zsh conflict — unalias gsd or use gsd-cli
Permission errors on npm install -gFix npm prefix (see Linux notes) or use nvm
Can’t connect to LLMCheck API key with gsd config, verify network access
gsd hangs on startCheck Node.js version: node --version (need 22+)

For more, see Troubleshooting.