Skip to content

Commands

Eight commands. All take an optional path and return the underlying tool's exit code.

Command Runs
lint ruff check
fix ruff check --fix then ruff format
format ruff format (writes)
fmt-check ruff format --check (read-only)
type mypy
test pytest
check the four above, in order, stopping at the first failure
pr-prompt builds the PR-description prompt — its own page

tc is the short form

The package installs tempest-cli and tc pointing at the same program. The examples use the long name; tc check, tc fix and tc type -s strict work exactly the same.

The full gate

tempest-cli check              # the whole project
tempest-cli check src/         # a single path
tempest-cli check -s strict    # with raised typing strictness for this run

The order is deliberate: lint → formatting → types → tests. What fails fastest and is cheapest to fix comes first, and the run stops at the first failure — there is no point running the whole suite when the imports are unsorted.

Fixing what can be fixed

tempest-cli fix                # safe autofixes + formatting
tempest-cli fix --unsafe       # also ruff's risky autofixes

fix makes two passes: ruff check --fix (sorts and dedupes imports, drops unused ones, normalizes quotes) and then ruff format (indentation, line length, blank lines).

--unsafe can change behavior

Ruff's "unsafe" autofixes are the ones that may alter semantics. They are off by default. Turned them on? Read the git diff before committing.

One at a time

tempest-cli lint src/
tempest-cli fmt-check
tempest-cli type mypackage
tempest-cli test tests/unit

test forwards the path to pytest as a filter; with no argument it runs the whole suite.

What each returns

The exit code is the tool's own, untranslated:

tempest-cli lint; echo "exited $?"

There is exactly one code of its own: 127, when the tool is in none of the places the CLI looks — the run's environment, PATH, uv run --with — and the message then names what was missing and how to install it. The lookup order is in Installation.

Recap

  • check is lint + fmt-check + type + test, in order, stopping at the first failure.
  • fix is the pass that repairs; --unsafe only when you will review.
  • Exit codes are the tools'; 127 means a missing tool.