THE FHERMA CLI
Install and set up
pipx install fherma # or: uv tool install fherma
A command line tool belongs in an environment of its own, and on macOS it
has no choice: Homebrew marks its Python as externally managed. Inside a
virtual environment pip install fherma is exactly right.
That is the whole toolchain. fherma-lang — the language on its
own — comes along as a dependency, so the install leaves
two commands on the path. Check what you got:
$ fherma --version fherma 0.2.1 fherma-lang 0.8.0 python 3.13.4 $ fherma doctor ✓ python 3.13.4 ✓ fherma 0.2.1 ✓ fherma-lang 0.8.0 ✓ commands auth, implementation, testing ✓ profile default → https://api.dev.fherma.io • credentials no token
doctor is offline by default — the usual reason to run it is that
something is wrong, and a network timeout would bury the answer. Pass
--online to check the token as well. It exits non-zero only when the
toolchain is actually broken; a missing token is not broken, since
scaffolding from a local signature never needs one.
Signing in
fherma auth login fherma auth whoami fherma auth logout
Configuration lives in ~/.fherma/config.toml. FHERMA_URL and
FHERMA_TOKEN override it, so continuous integration never writes a token
to disk. Several platforms — staging, a local instance — are profiles:
fherma --profile staging auth login
The command groups
fherma auth login · logout · whoami fherma testing init · status · inspect · run · submit fherma implementation init fherma doctor check the installation fherma completion a script for bash, zsh or fish
Specifications are named as kernel/spec@version; leave the version off and
the latest published one answers.
Machine-readable, always
Every command takes --json, because the output is read by CI and by the
platform as well as by people. Exit codes are fixed:
0 success 1 a check ran and did not pass 2 a usage error 3 not authorised 4 the platform could not be reached
Tab completion, once:
fherma completion zsh >> ~/.zshrc