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

  1. Read the relevant design record before changing core behavior.
  2. Make the code or docs change.
  3. Update guides, recipes, reference, plugins, and troubleshooting where user behavior changed.
  4. Run focused tests or hugo validation.
  5. Record real follow-ups in the project issue tracker or an active design record.