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 Usage 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.