Skip to content

Integrations ​

Every integration on the pages below runs prose format or prose check at one point in the development loop. The editor runs it on save, the pre-commit hook runs it on commit, and the CI workflow runs it before merge. Each one reads the same [tool.prose] table and reports the same exit codes, so adding a second integration is a configuration change rather than a new tool to learn.

Pick Your Boundary ​

save · LSP

Editor

Formats on save through the editor’s save hook, or reports diagnostics inline as you type through the language server.

CI runner · code scanning

GitHub Actions

Fails a PR check when a file would change, with annotations inline on the diff and SARIF upload to the Security tab.

git staging

Pre-Commit

Fails a commit that would land unformatted code, so nothing reaches the repository with layout drift.

alongside Ruff

Ruff

For a project that already runs Ruff, the extend-ignore list that keeps Ruff’s pycodestyle codes from reporting the whitespace Prose’s alignment rules write.

interactive shell

Shell Completions

Tab-completes every flag and rule slug in Bash, Zsh, Fish, Elvish, and PowerShell.

How the Boundaries Compose ​

The three points (save, commit, merge) complement one another, each catching what the one before it missed:

  1. Format-on-save fixes layout as soon as it drifts, so the working tree is already formatted before anything is staged.
  2. The pre-commit hook catches a change that arrived without passing through the editor integration (a patch applied with git apply, a teammate's unformatted edit pulled in).
  3. The CI gate catches everything else, including pushes from contributors who run neither local hook.

A project that wires all three runs the same prose check or prose format against the same [tool.prose] at every point, so a rule turned off in one place is off everywhere.

See Also ​

The Guide section and the CLI Reference cover the commands and flags every integration runs. Exit Codes lists what each exit code means for a CI gate, Output Formats covers the diagnostic formats an integration can read, and Rules lists the rules every integration runs.