Development Setup
Build, test, run, and validate Restish and the documentation site from a local checkout.
Use this page when changing code, plugins, or docs in the Restish repository.
Build The CLI
go build ./cmd/restish
Build Plugin Binaries
go build ./cmd/restish-bulk
go build ./cmd/restish-csv
go build ./cmd/restish-mcp
go build ./cmd/restish-pkcs11
Run Tests
go test ./...
go test ./internal/cli/...
Run the integration-tag suite before commits that touch CLI or plugin behavior:
go test -tags=integration ./...
Use a temporary GOCACHE when your environment needs an isolated cache:
GOCACHE=/tmp/restish-gocache go test ./...
Update Golden Files
go test -update ./internal/output/...
Build The Docs Site
go run ./cmd/restish-docgen --check
hugo --source site --quiet
scripts/check-doc-links.rb
When command help, global flags, plugin protocol structs, or built-in command plugins change, refresh the checked-in generated regions first:
go run ./cmd/restish-docgen --write
For docs changes, also check stale placeholders:
rg 'api[.]example[.]com|your-api[.]example[.]com|auth[.]example[.]com|upload[.]example[.]com|Source material[:]' site/content/en/docs
Typical Workflow
- Read the relevant design record before changing core behavior.
- Make the code or docs change.
- Update guides, recipes, reference, plugins, and troubleshooting where user behavior changed.
- Run focused tests or
hugovalidation. - Record real follow-ups in the project issue tracker or an active design record.