harper-cli
A PyPI package that bundles the pre-built harper-cli binary from
Automattic/harper so it can be
installed with pip/uv. Automattic authors and builds the binary; this
repository only handles fetching/packaging it for distribution on PyPI.
This project is not affiliated with, endorsed by, or an official mirror of
Automattic/harper.
Installation
Install from PyPI with pip:
pip install harper-cli
or with uv:
uv add harper-cli
Usage
Run harper lint on one or more files, or pipe text through standard input.
See harper --help and harper lint --help for the full set of options
(output format, dialect, ignore/only rules, etc.) exposed by the underlying
harper-cli binary.
As a one-off tool, without installing
uvx --from harper-cli harper lint README.md
Inside a project virtual environment
If harper-cli is a project dependency (installed via pip install/uv add
above), run it directly once the venv is active:
harper lint README.md
Or, without activating the venv, via uv run:
uv run harper lint README.md
As a pre-commit hook
Since this package only wraps a binary, there's no dedicated pre-commit
hook repo to point to. Declare it as a local hook instead:
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: harper-lint
name: harper lint
entry: uvx --from harper-cli harper lint
language: system
types: [markdown,python]
License
See LICENSE and NOTICE for full attribution
details. In short: the bundled harper-cli binary is Copyright 2024 Elijah
Potter and licensed under Apache-2.0 by the Automattic/harper project. The
packaging code in this repository is separately Copyright 2026 Thierry Jean,
also under Apache-2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file harper_cli-2.8.0.post1-py3-none-win_amd64.whl.
File metadata
- Download URL: harper_cli-2.8.0.post1-py3-none-win_amd64.whl
- Upload date:
- Size: 8.5 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1aa7e3635c5683e2893eacc74135e228bffe67aa43c2b4b74d4dbcaf255969c
|
|
| MD5 |
ba179406192e3df74b304ee98d881d98
|
|
| BLAKE2b-256 |
f436d47fc0ff512792d191f292a9237528ad67fd042276261d6d6da877aebcf3
|
File details
Details for the file harper_cli-2.8.0.post1-py3-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: harper_cli-2.8.0.post1-py3-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85316b18d48a22d2dd992ee71c92818b6bf2289aa49ecb0b284df50b160e4a2c
|
|
| MD5 |
9c3cfadaee66f618b91f1e629b6dcc24
|
|
| BLAKE2b-256 |
de2bb1e0982df93a82507f98c9264049d6489b1d7e927bc7d3c1dc4a1f90bdf3
|
File details
Details for the file harper_cli-2.8.0.post1-py3-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: harper_cli-2.8.0.post1-py3-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 12.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b3ad52476d55290cc8fb9925afe27cc6a084f9407d9d40a55f54ce68b8852da
|
|
| MD5 |
632ca1b24013f7edf8cd0c72b4b46748
|
|
| BLAKE2b-256 |
491d4201cccc28461aa14252a7069be3cd80dea926f12390e8d8bb037cfdca98
|
File details
Details for the file harper_cli-2.8.0.post1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: harper_cli-2.8.0.post1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 12.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13bac6c337f9a7f2f900630f6a0b20d66921eb5a98d45404b0750c524f199a46
|
|
| MD5 |
99725cd81cbb3282a501b0043d954ee2
|
|
| BLAKE2b-256 |
d2763ad98651afb648ede2e7c42914464dd3b5a21b6d91a514d2ad21c8f7c704
|
File details
Details for the file harper_cli-2.8.0.post1-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: harper_cli-2.8.0.post1-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 8.6 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7c20bac76ef7f27fcf49fd92253616428fd472068d21139bf5b11e9249fdbe1
|
|
| MD5 |
cc0b62633ff6afef732d80e361f5de2b
|
|
| BLAKE2b-256 |
58a0b30b2c8333a5f67f21f3615c9e9a27ae6d106d821036e00224b98160ac23
|