Pitchfork manages the long-running commands your project needs: an API, a database,
a frontend server, or a background worker. Define them in pitchfork.toml, then
start, inspect, and stop them from any terminal. A background supervisor keeps
track of the processes and their logs after the CLI exits.
Get started
Install with mise:
You can also use cargo install pitchfork-cli --locked or download a binary from
GitHub releases.
See installation for platform details and shell completion.
Try a daemon without a config file (requires Python 3):
# Ctrl+C leaves the daemon running. Stop it when you're done:
Open localhost:8000 while the daemon is running.
Put your services in version control
Create pitchfork.toml in your project. This example assumes Redis is installed
and your project has a server.js that reads PORT and REDIS_URL:
#:schema https://pitchfork.jdx.dev/schema.json
[]
= "redis-server --port $PORT"
= 6379
= "redis-cli -p $PORT ping"
[]
= "node server.js"
= 3000
= ["redis"]
= { = "redis://127.0.0.1:{{ daemons.redis.port }}" }
= { = "http://127.0.0.1:3000/health", = "30s" }
= 3
Starting an already running daemon leaves it running. Independent dependencies
start in parallel. --all includes global daemons as well as local ones.
Make it fit your workflow
| When you need to… | Use… |
|---|---|
| Start services when you enter a project | Shell hooks with auto = ["start", "stop"] |
| Wait for a service to accept requests | Ready checks using output, HTTP, TCP, or a command |
| Recover from a crash or failed health probe | Retries and health checks |
| Restart after a source edit | File watching with glob patterns |
| Keep a stable URL across port changes | Port assignment and reverse proxy |
| Inspect services and their output | pitchfork tui, the web UI, and structured logs |
| Run tasks on a schedule | Cron scheduling |
| Connect an AI assistant | The built-in MCP server |
The docs also cover namespaces and worktrees, mise integration, lifecycle hooks, and resource limits.
Contribute
See CONTRIBUTING.md for setup, checks, and documentation development. Found a problem? Include your version, config, and relevant logs in a GitHub issue.