Wisp automates spec-driven development using pure bash loop Ralph in isolated Sprites.
claude(locally authenticated)GITHUB_TOKEN(for cloning and PR creation)SPRITE_TOKEN
go install github.com/thruflo/wisp@latestcd your-project
wisp initEdit .wisp/.sprite.env with your credentials:
GITHUB_TOKEN="..."
SPRITE_TOKEN="..."You provide an RFC. Wisp generates tasks and runs claude until
done or blocked. Prompts for user input when needed. When done
produces a PR.
wisp start --repo org/repo --spec docs/my-rfc.mdWith sibling repos:
wisp start --repo org/repo --spec docs/my-rfc.md --sibling-repos org/shared-libt— toggle tail (stream output)a— attach (shell into Sprite)d— detach (return to summary)k— kill sessionesc— background
When the agent needs input, the TUI prompts for a response. Type and press Enter.
wisp done feat-authwisp status # list sessions
wisp status feat-auth # show session details
wisp stop feat-auth # stop session
wisp resume feat-auth # resume session
wisp attach feat-auth # shell into Sprite
wisp tail feat-auth # stream outputwisp update --spec docs/my-rfc.md --branch feat-authwisp review feedback.md --branch feat-auth.wisp/config.yaml — limits:
limits:
max_iterations: 50
max_budget_usd: 20.00
max_duration_hours: 4
no_progress_threshold: 3.wisp/settings.json — Claude deny rules and MCP servers.
.wisp/templates/default/ — prompt templates.
go install ./cmd/wispRebuilds to $GOPATH/bin. Run again after changes.
make test # unit tests
make test-integration # integration tests (mocks)
make test-real-sprites # real Sprite tests
make test-e2e # E2E CLI testsSee Testing Guide for credentials setup, debugging, and cleanup.