Skip to main content
dev is the Aperium developer and operator command line, provided by the devkit app. It drives the local stack, runs the validation gates, manages infrastructure and the database, scaffolds and validates plugins, and hosts a range of operational helpers. Run it through uv for one-off commands:
For an editable command on your shell PATH, sync the workspace and activate the virtualenv:
Without activating the virtualenv, call .venv/bin/dev.

Command groups

Run uv run dev --help for the authoritative, always-current list. The groups you’ll reach for most:
Additional groups exist for narrower or platform-specific tasks. Prefer uv run dev <group> --help over memorizing the surface — the CLI is the source of truth.

run

Runs the local development stack: local infra via compose.yml, then aperium-api and aperium-worker, then the selected UI’s dev server.

check

The default gate suite: Ruff, formatting, Pyright, import-linter, package-dependency checks, architecture-hygiene checks, unit-charter checks, and agent-context health checks.
Lint and check commands operate on the monorepo structure by design.

infra

db

db oauth-callbacks reconcile is dry-run by default; applying updates requires an explicit confirmation env var plus --apply.

plugins

The plugin authoring surface — covered end to end in Build a plugin.

test

Project awareness

Runtime commands (dev run, dev install) discover the calling project by walking upward for the nearest pyproject.toml carrying a [tool.aperium] block:
The same CLI therefore runs from the Aperium monorepo and from downstream product repos that depend on devkit and want to drive the same local stack. A project with a single registered UI may omit default-ui. Lint and check commands remain monorepo-only.

Dev identity overrides

dev dev writes a small, gitignored, per-developer JSON file that overrides the dev-fixtures identity the API and SPA use for local testing. Production deploys ship with dev fixtures disabled, so the file and its endpoints are never read there.