save · LSP
Formats on save through the editor’s save hook, or reports diagnostics inline as you type through the language server.
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.
save · LSP
Formats on save through the editor’s save hook, or reports diagnostics inline as you type through the language server.
Open →
CI runner · code scanning
Fails a PR check when a file would change, with annotations inline on the diff and SARIF upload to the Security tab.
Open →
git staging
Fails a commit that would land unformatted code, so nothing reaches the repository with layout drift.
Open →
alongside 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.
Open →
interactive shell
Tab-completes every flag and rule slug in Bash, Zsh, Fish, Elvish, and PowerShell.
Open →
The three points (save, commit, merge) complement one another, each catching what the one before it missed:
git apply, a teammate's unformatted edit pulled in).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.
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.