Install the CLI
prk is one static binary. Put it on your PATH and it works.
From npm
npm install -g @yashau/prickThe package ships prebuilt binaries and picks the right one for your platform.
The npm shim costs you 30–40 ms per call
Installing through npm routes every invocation through Node, and keeps a Node
parent alive for the child’s lifetime during prk run. prk doctor tells you
when it detects this:
warn installation running through the npm shim, which adds a Node process to every invocation; a direct install (cargo binstall, Homebrew, Scoop, or a release tarball) avoids itIt works fine. If you use prk run heavily, a direct install avoids it.
From a release tarball
Download the archive for your platform from the
releases page, unpack it, and move
the binary onto your PATH:
tar xzf prk-x86_64-unknown-linux-gnu.tar.gzsudo mv prk /usr/local/bin/prkprk versionprk 2026.816.1Build from source
This is the route that works today.
You need mise, which pins Rust, Node, pnpm and every other tool this repository uses. Install only mise — a system-wide install of any pinned tool shadows the pinned version.
git clone https://github.com/yashau/prick && cd prickmise trust && mise run bootstrapmise run build:rustThe binary lands at target/release/prk. Put it somewhere on your PATH:
sudo install -m 755 target/release/prk /usr/local/bin/prkAn in-repository build reports 0.0.0-dev rather than a real version — the git
tag is the source of truth, and a release stamps it in at build time.
Confirm it works
prk versionprk 0.0.0-devThen point it at your server:
prk login https://prick.example.comprk doctorok server url https://prick.example.com (from the stored login)ok token storage /home/you/.config/prick/credentials.json is owner-onlyok api /api/v1/health answered, version 2026.816.1ok access Cloudflare Access with managed OAuth is in front of this serverok identity you@example.com (user)ok installation running as a native binaryIf any line reads FAIL, Exit codes and errors covers
what each one means.
Shell completions
prk completions bash > ~/.local/share/bash-completion/completions/prkprk completions zsh > "${fpath[1]}/_prk"prk completions fish > ~/.config/fish/completions/prk.fishprk completions powershell >> $PROFILESee prk completions for every supported shell.
Where prk keeps its files
One file, holding the session prk login created:
| Platform | Path |
|---|---|
| Linux | $XDG_CONFIG_HOME/prick, or ~/.config/prick |
| macOS | ~/Library/Application Support/prick |
| Windows | %APPDATA%\prick |
It is called credentials.json, and it is created owner-only — mode 0600 in a
directory at 0700, or on Windows a DACL with a single entry for you.
Set PRK_CONFIG_DIR to move it, which is how you keep sessions for two servers
apart:
PRK_CONFIG_DIR=~/.config/prick-staging prk login https://staging.prick.example.comUpgrading
npm update -g @yashau/prickOr replace the binary. A client and a server on different versions is normal and
supported — the API is versioned at /api/v1, and prk doctor reports both.
Uninstalling
prk logoutsudo rm /usr/local/bin/prkprk logout discards the stored session first, so removing the binary does not
leave a credential file behind.
Next steps
- Quickstart — deploy the server this connects to.
- Authentication — service tokens and CI.
- CLI reference