Test, lint, commit
Run tests, lint, and typecheck through the agent with auto-detected toolchains, then commit with a clean conventional-commit message after pre-commit checks
Run your tests
> run testsThe agent auto-detects your toolchain (Bun, npm, cargo, go, pytest, gradle, and 20+ others) and runs the right command.
Target a specific test:
> run only the auth testsLint and auto-fix
> lint and fix everythingRuns your linter (biome, eslint, oxlint, ruff, clippy, golangci-lint - auto-detected) with the fix flag where supported.
Typecheck
> typecheckRuns tsc --noEmit, mypy, pyright, cargo check, dart analyze, etc.
Commit
Press Ctrl+G, then c. Or:
> commit my changesEmpryo:
- Runs lint + typecheck (blocks if either fails).
- Writes a conventional-commit message based on your diff.
- Shows you the message and the diff.
- Commits after you confirm.
To skip the pre-commit checks, commit via shell outside Empryo.
Co-author trailers
Add your LLM as a co-author:
/git co-authorToggles between on (adds Co-Authored-By: <model>) and off. Saved per-scope.
The project tool
Under the hood, all of the above use the project tool. If you want to run it directly:
| Ask | Runs |
|---|---|
| "run tests" | project(action: "test") |
| "run the auth tests" | project(action: "test", file: "auth") |
| "build" | project(action: "build") |
| "lint and fix" | project(action: "lint", fix: true) |
| "typecheck" | project(action: "typecheck") |
| "what packages are in this monorepo?" | project(action: "list") |
See project tool for the full list of supported ecosystems.