devproxy

Contributing

Build, test, and update devproxy and its documentation.

Repository layout

PathPurpose
cmd/devproxyCLI commands and child process management.
internal/devproxyRegistration API, dashboard, lease handling, and Caddy configuration.
caddyCompose service and initial Caddyfile.
skills/devproxyAgent instructions for projects using devproxy.
docsThis standalone Fumadocs app.

Test the Go code

go test ./...
DEVPROXY_TEST_CADDY=1 go test ./...

The second command also tests Caddy configuration and routing in Docker.

Inspect the CLI specification

The project pins usage in mise.toml. Install it with mise install, then export or check the Cobra command specification:

just usage-spec > devproxy.usage.kdl
just usage-lint
mise exec -- usage generate markdown --file devproxy.usage.kdl > devproxy-cli.md

devproxy --usage-spec also prints the specification directly. The export is generated from Cobra's command tree; it does not capture all runtime checks, configuration sources, output schemas, or the required -- before a child command in run. Keep the handwritten CLI reference and behavioral tests as the source for those details.

Edit these docs

The documentation app uses Node.js 22 or newer. From the repository root:

cd docs
npm install
npm run dev

Open http://localhost:3000/docs. Pages live in docs/content/docs; meta.json controls their sidebar order. Run npm run build before submitting docs changes. The .source directory is generated by Fumadocs and should not be edited.

Deploy docs as its own application, with docs as the hosting project's root directory. Its built in docs route is /docs. A dedicated docs subdomain can serve that route directly; a main site can also forward /docs/* to this deployment.

On this page