Commands¶
Pyfaro wraps uv, Ruff, ty and pytest behind one command. Every command is a thin, predictable layer: Pyfaro picks the project, builds the arguments, runs the tool and forwards its exit status.
beta The commands below are implemented. Workspaces are planned and not available.
All commands¶
| Command | What it does |
|---|---|
create |
Generate a packaged library, command-line or FastAPI project. |
init |
Preview or apply uv-backed initialization of an existing or bare project. |
sync |
Synchronize the project environment through uv. |
add, remove |
Add or remove dependencies through uv, without syncing. |
run |
Run a command, or a named task, in the project environment. |
dev |
Run the development server or process with supervision. |
python |
List, install or pin Python versions through uv. |
tools |
Show resolved paths and versions of the external tools. |
doctor |
Diagnose project configuration, environment and tool availability. |
completions |
Print the tab-completion script for Bash, Zsh, Fish or PowerShell. |
lint |
Lint project files with Ruff. |
fmt |
Format project files with Ruff. |
type |
Type-check project files with ty. |
check |
Run format check, lint and type check, optionally applying safe fixes first. |
test |
Run pytest in the project environment. |
build |
Build a source distribution and a wheel through uv. |
Project setup¶
How project selection works¶
Most commands find the nearest pyproject.toml in the current directory or
its ancestors. Pass --project <PATH> to select an exact directory instead.
init is the exception: it takes the directory to initialize as a positional
path and never searches upward, and create writes a new directory.
Common flags¶
| Flag | Meaning |
|---|---|
--uv <path> |
Choose the uv executable (default uv from PATH). |
--offline |
Disable uv network access. |
--locked, --frozen |
Strict lock handling on sync, run and dev. Mutually exclusive. |
uv 0.9.26 or newer is required at runtime.