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:
PATH, sync the workspace and activate the
virtualenv:
.venv/bin/dev.
Command groups
Runuv 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 viacompose.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.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:
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.