The evolution of Get Shit Done — now a real coding agent.
The original GSD went viral as a prompt framework for Claude Code. It worked, but it was fighting the tool — injecting prompts through slash commands, hoping the LLM would follow instructions, with no actual control over context windows, sessions, or execution.
This version is different. GSD is now a standalone CLI built on the Pi SDK, which gives it direct TypeScript access to the agent harness itself. That means GSD can actually do what v1 could only ask the LLM to do: clear context between tasks, inject exactly the right files at dispatch time, manage git branches, track cost and tokens, detect stuck loops, recover from crashes, and auto-advance through an entire milestone without human intervention.
One command. Walk away. Come back to a built project with clean git history.
npm install -g gsd-pi@latest
GSD now provisions a managed RTK binary on supported macOS, Linux, and Windows installs to compress shell-command output in
bash,async_bash,bg_shell, and verification flows. GSD forcesRTK_TELEMETRY_DISABLED=1for all managed invocations. SetGSD_RTK_DISABLED=1to disable the integration.📋 NOTICE: New to Node on Mac? If you installed Node.js via Homebrew, you may be running a development release instead of LTS. Read this guide to pin Node 24 LTS and avoid compatibility issues.
/gsd auto process is SIGKILL'd, sleep-killed, or otherwise crashes, the auto.lock file is left behind with a dead PID. Previously you had to wait out a 30-minute stale window before /gsd would resume. The new stale-worker drift handler verifies the PID is alive and clears orphaned locks proactively on startup.ROADMAP.md/CONTEXT.md/SUMMARY.md) but never re-imported, dispatch couldn't see it. The unregistered-milestone handler now imports those rows idempotently before dispatch.ROADMAP.md (parsed slice sequence + depends declarations) and the corresponding DB slice rows is detected per-milestone and reconciled via importer upserts plus an explicit syncSliceDependencies pass.completed_at are now backfilled from SUMMARY.md mtime, deterministically and idempotently. Tasks are checked independently of their parent slice status (a bug in the first cut nested task iteration behind slice completion)./gsd parallel start and slice-parallel-dispatch now run reconciliation at the parent before spawning auto-loop workers, so workers don't independently race on shared drift. Gate failures surface a typed exit reason (slice-parallel-reconciliation-failed) and a user-visible message instead of a confused hang.gitServiceFactory. Lifecycle verbs are now first-class: adoptOrphanWorktree, adoptSessionRoot, resumeFromPausedSession, and restoreToProjectRoot are explicit entry points, and the stop-path routes through restoreToProjectRoot instead of ad-hoc cleanup. mergeMilestoneStandalone was extracted and mergeMilestoneToMain was privatized.s.basePath = s.originalBasePath fallbacks were removed from both auto.ts stop-path catch blocks (the verb assigns basePath before any throwable work, so the fallback was unreachable). The public WorktreeLifecycleDeps interface dropped 15 @deprecated optional fields; the active dep bag is now three fields (gitServiceFactory, worktreeProjection, mergeMilestoneToMain). Test fixtures move to a dedicated WorktreeLifecycleTestOverrides type.complete-slice closeout is read-only — the closeout prompt is no longer allowed to write project files, removing a class of races where closeout edits could fight with the next slice's setup. Write-gate planning and prompt contracts were updated to enforce this.verification-retry-policy.ts adds bounded exponential backoff and runs stuck detection between attempts, so transient verification failures (slow tools, flaky LLM calls) no longer spin in tight retry loops..gitignored task key files so the working tree stays clean across slices.render-kit. The result is a more consistent visual language across overlays, with refreshed reference designs (docs/dev/tui-recommended-design.html, tui-render-options.html) and expanded test coverage for the new components.CompletionDashboardSnapshot summarizing success criteria results, definition-of-done results, requirement outcomes, deviations, follow-ups, key decisions, key files, lessons learned, total cost, total tokens, cache hit rate, and slice progress. You no longer have to scroll back through the transcript to see what a milestone actually delivered.See the full Changelog for the complete v2.82 entry and prior releases.
v2.81 highlights
v2.80 highlights
+types imports, gsd_exec write gating, project-save behavior, and home-directory fallback behavior were tightened.v2.79 highlights
gsd.dbGsdWorkspace and MilestoneScope handles, symlink-safe canonicalization, worktree-scoped DB/metrics, cwd anchoring, and gsd worktree {list, merge, clean, remove}/gsd new-project --deep, research dispatch units, EVAL-REVIEW, project-shape-aware questioning, and approval-gate hardeningask_user_questions over MCP, provider-agnostic model routing, Ollama timeouts, Windows fixes, and Anthropic prompt-cache preservation/gsd slash command protectionv2.78 highlights
git.collapse_cadence: "milestone" | "slice" shrinks the orphan window per-slice; pair with git.milestone_resquash: true to collapse to one milestone commitsummarizeWorktreeTelemetry; /gsd forensics worktree section with worktree-orphan and worktree-unmerged-exit anomaliesresolveCanonicalMilestoneRoot routes validators through the live worktreecomplete-slice, research-milestone, run-uat, reassess-roadmap build context through the manifest composergsd extensions install / update / uninstall / list / info / validate; topological load order; cmux↔gsd decoupling via cmux-events; extracted @gsd-extensions/google-searchxhigh thinking level; auth mode in /model; permission granularity picker; headless auto default → bypassPermissions (#4657).git/index.lock 5-min gate, env overlay strip, rebase/cherry-pick/revert detection, working-tree stash before reset --hard, unborn-branch worktree guard, user hooks + commit.gpgsign on auto-commits.gsd/ state writes; compaction correctness fix (#4665); write-gate hardening (#4950); auto state-machine non-retriable policy errors (#4973), baseline restoration (#4961, #4966); slice + crash recovery; empty-turn recovery shape canonicalizedv2.77 highlights
$ claude mcp add gsd-2 \
-- python -m otcore.mcp_server <graph>