Installation
Install pitchfork with mise, Cargo, or a prebuilt binary. You also need the programs your daemon commands invoke; pitchfork does not bundle Node.js, Python, databases, or other application runtimes.
mise
mise manages the pitchfork binary and its version:
mise use -g pitchforkThis installs it for use across projects. To pin a version for a project, use mise use pitchfork@<version> from that project instead.
Cargo
With the Rust toolchain installed:
cargo install pitchfork-cli --lockedThe package is named pitchfork-cli; the installed command is pitchfork. Make sure Cargo's binary directory (usually ~/.cargo/bin) is on PATH.
Release binary
Download the archive for your operating system and CPU architecture from GitHub releases, extract it, and place pitchfork (or pitchfork.exe) in a directory on PATH.
Pitchfork has builds for macOS, Linux, and Windows. Most examples in these docs use a POSIX shell. On Windows, use a compatible shell such as Git Bash; the default daemon shell is sh -c. Unix-specific features include user switching, signals, and the macOS/Linux boot integrations.
Verify the installation
pitchfork --version
pitchfork --helpContinue with the quickstart to run a daemon.
Shell completion
Completion is generated by pitchfork and is separate from the shell hook that starts and stops daemons.
mkdir -p ~/.local/share/bash-completion/completions
pitchfork completion bash > ~/.local/share/bash-completion/completions/pitchforkmkdir -p ~/.zfunc
pitchfork completion zsh > ~/.zfunc/_pitchforkmkdir -p ~/.config/fish/completions
pitchfork completion fish > ~/.config/fish/completions/pitchfork.fishBash needs bash-completion loaded, or you can source the generated file from ~/.bashrc. For Zsh, put the following in ~/.zshrc, adding ~/.zfunc before your existing compinit call if you already have one:
fpath=(~/.zfunc $fpath)
autoload -Uz compinit
compinitStart a new shell after configuring completion.
Optional alias
Add alias pf=pitchfork to ~/.bashrc or ~/.zshrc. For Fish, add alias pf pitchfork to ~/.config/fish/config.fish.
pf api then uses the implicit start shorthand, equivalent to pitchfork start api.
