🪻 About
Prose formats Python source to be legible at a glance. It aligns equals signs and colons vertically across consecutive lines, places one entry per line in dictionaries and lists, alphabetizes methods and fields within their groups, applies a singleton rule for colon padding, and treats code like prose rather than minified text.
[!NOTE] Prose is still pre-1.0. The rule catalog and configuration facets continue to grow across release lines.
🗞️ Philosophy
Code is read far more often than it is written. A reader's eye moves down a page and across adjacent lines looking for parallels, patterns, and shape. When every = sits at a different column and every collection is compressed onto one line, that shape disappears, forcing the eye to slow down. Prose restores it, with aligned columns letting the eye skim, one-per-line collections making each entry a unit, and alphabetized groupings giving every reader the same landmarks.
The trade-offs minimalist formatters were built to avoid (wider diffs, more vertical scrolling, occasional re-alignment churn) no longer dominate the equation. Agentic assistants do much of the typing, and every modern code host offers whitespace-ignoring diffs. What remains is the daily experience of reading code.
🪄 Install & Usage
uv tool install prose-formatter
The binary exposes format, check, rules, server, cache, completions, and schema:
prose format path/ # rewrite files in place
prose check path/ # exit non-zero on violations
prose format --diff path/ # show the diff without writing
prose check --stdin < file.py # read from stdin
prose format - < file.py # `-` reads from stdin too
prose rules # list the rules in pipeline order
prose schema # print the config's JSON Schema
prose server # language server over stdio
📰 Further Reading
The full edition lives at prose.fyi:
- The interactive sandbox formats Python live in the browser, so a reader can watch a snippet settle into shape without installing anything.
- The rule catalog walks every rule with before/after fixtures and per-facet configuration.
- The configuration reference covers the
prose.toml,.config/prose.toml, andpyproject.tomlconfig files, every key, and the[rules]toggles. - The cache reference covers the cache directory,
--no-cache, the[cache]table, and theprose cachesubcommands. - The exit-code matrix is the contract CI gates and pre-commit hooks compile against.
- Suppression directives cover
# prose: off,# prose: skip, and the rest of the directive surface. - Composition with Ruff pairs the token-level formatter with
prose format. - Editor, pre-commit, and CI integrations wire Prose into the development loop.
🗜️ Development
Prose is a Rust crate that ships as a Python wheel through maturin, with mise managing the Rust toolchain, Python interpreter, and every supporting CLI through a single mise config. After installing mise and activating it in your shell, the rest provisions from a clone:
git clone https://github.com/Jybbs/prose.git
cd prose
mise install
mise tasks lists every available task, and mise ci runs the full local sweep that mirrors GitHub Actions. CONTRIBUTING.md at the repository root walks from a bug report to the fixture case a fix is reviewed against, and covers the branch and pull-request flow.
For the architecture, the primitive surface walks every public type (Source, Pipeline, BindingAnalysis, SuppressionMap, RuleId, Edit), and the pipeline order explains how each rule reads a settled AST between reparses.
Release files for prose-formatter 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prose_formatter-0.9.1.tar.gz | 1.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| prose_formatter-0.9.1-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| prose_formatter-0.9.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| prose_formatter-0.9.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| prose_formatter-0.9.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| prose_formatter-0.9.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| prose_formatter-0.9.1-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 23.3 MB
Release files / prose_formatter-0.9.1.tar.gz
| Download URL | prose_formatter-0.9.1.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e56efe710acf5bd76c6a566fab6bbbad0bb94758285cc54a9709bfe9818a74a1
|
|
BLAKE2b-256 checksum How to use checksums |
b673733b411d6555612d486d89ad8846cabdb6d0da6e800b7d6363e8387a1268
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / prose_formatter-0.9.1-py3-none-win_arm64.whl
| Download URL | prose_formatter-0.9.1-py3-none-win_arm64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
cebe02c38ee944cde9d2766218cafcf95cd86250e5357d2d12bf5f6116709d46
|
|
BLAKE2b-256 checksum How to use checksums |
2584b747dad8af65a471594c670515e5ae7ebbc788e4cf9f7517d6d44b5c7321
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / prose_formatter-0.9.1-py3-none-win_amd64.whl
| Download URL | prose_formatter-0.9.1-py3-none-win_amd64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1205adbd744e0a6bfc07167923c18b6676b85cb9144b02ff22b238d6d60f3f27
|
|
BLAKE2b-256 checksum How to use checksums |
a32077e8242e7962f795f346f48750fbce58a84a1f9afb64ba8f764f3041d85f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / prose_formatter-0.9.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | prose_formatter-0.9.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
d9429f2a440c1e8f793cf300fd4b533df535c3a6a584db9160980fcd458c7cd5
|
|
BLAKE2b-256 checksum How to use checksums |
b177be6ae6289f92463460c174f2a53096c09b12a19269347b12c865b764dde0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / prose_formatter-0.9.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | prose_formatter-0.9.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
64c7a8cfe78a2ec7786ceb24f90ab3d3cf3876490d5848b96f7b7e589b2d65f0
|
|
BLAKE2b-256 checksum How to use checksums |
40560148721ee606370a39e86e38350ee26b839eb213887392ce139be0748068
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / prose_formatter-0.9.1-py3-none-macosx_11_0_arm64.whl
| Download URL | prose_formatter-0.9.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2bb833148b39f3161dc23c6385392aab0c84a265ff77f716f443e5c100660b27
|
|
BLAKE2b-256 checksum How to use checksums |
2170b878574bf1ae53be57d373faf8ae0560bb9752884826edf34fc8e1a19274
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / prose_formatter-0.9.1-py3-none-macosx_10_12_x86_64.whl
| Download URL | prose_formatter-0.9.1-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
467bd5a6728238090175599bc9ac530143549f1aecba3d65dc8e1a5498c5b2d4
|
|
BLAKE2b-256 checksum How to use checksums |
7bc25223f108e5faa77299d079479dbb91f2dfced9cb9d4aca709121cee90199
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency log