[](https://www.python.org)
[](https://badge.fury.io/py/proofer)
# proofer
A minimal, CLI-based agent built with LangGraph for proofreading and editing short-form writing like blog posts. Displays a helpful git-like diff with suggestions and the option to automatically apply changes with backups.

## User Guide
### OpenAI API Key
For most tasks this library uses OpenAI API's so you'll need to set the `OPENAI_API_KEY` environment variable. An easy way to do this is to put this line:
```
export OPENAI_API_KEY=<your key>
```
in your `.zshrc` file or whichever configuration file your setup uses.
### Install
Available on PyPI (i.e. `pip install proofer`)
### Usage
Either pass in the path to a file (works best with markdown or plain text documents)
```
proofer file.md
```
or some text directly
```
proofer -t "Some text with spelking errors"
```
_Note: The intent of this project is to support short-form writing (<1500 words or so). It will struggle with longer documents, which might be addressed in a future release._
#### Auto-Apply Changes
If you want to live dangerously, you can auto-apply changes identified like so:
```
proofer file.md --yes
```
## Development
This project currently requires Python 3.13 ([pyenv](https://realpython.com/intro-to-pyenv/) is recommended) and uses Poetry as the dependency manager and packaging tool.
For now, checkout the `Makefile` as a guide.
| Command | Description |
| ------------ | ------------------------ |
| make install | Install all dependencies |
| make test | Run unit tests |
Raw data
{
"_id": null,
"home_page": "https://github.com/joypauls/proofer",
"name": "proofer",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.13",
"maintainer_email": null,
"keywords": "cli, spellcheck, editor, agent, openai, proofreading, langgraph",
"author": "joypauls",
"author_email": "joypaulsen3@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/19/b1/80cee114016f5abda9692851dfd4b22061d4ce1a9efd2ab0d2376189ccf9/proofer-0.1.1.tar.gz",
"platform": null,
"description": "[](https://www.python.org)\n[](https://badge.fury.io/py/proofer)\n\n# proofer\n\nA minimal, CLI-based agent built with LangGraph for proofreading and editing short-form writing like blog posts. Displays a helpful git-like diff with suggestions and the option to automatically apply changes with backups.\n\n\n\n## User Guide\n\n### OpenAI API Key\n\nFor most tasks this library uses OpenAI API's so you'll need to set the `OPENAI_API_KEY` environment variable. An easy way to do this is to put this line:\n\n```\nexport OPENAI_API_KEY=<your key>\n```\n\nin your `.zshrc` file or whichever configuration file your setup uses.\n\n### Install\n\nAvailable on PyPI (i.e. `pip install proofer`)\n\n### Usage\n\nEither pass in the path to a file (works best with markdown or plain text documents)\n\n```\nproofer file.md\n```\n\nor some text directly\n\n```\nproofer -t \"Some text with spelking errors\"\n```\n\n_Note: The intent of this project is to support short-form writing (<1500 words or so). It will struggle with longer documents, which might be addressed in a future release._\n\n#### Auto-Apply Changes\n\nIf you want to live dangerously, you can auto-apply changes identified like so:\n\n```\nproofer file.md --yes\n```\n\n## Development\n\nThis project currently requires Python 3.13 ([pyenv](https://realpython.com/intro-to-pyenv/) is recommended) and uses Poetry as the dependency manager and packaging tool.\n\nFor now, checkout the `Makefile` as a guide.\n\n| Command | Description |\n| ------------ | ------------------------ |\n| make install | Install all dependencies |\n| make test | Run unit tests |\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A CLI-based agent for proofreading and editing short-form writing",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/joypauls/proofer",
"Repository": "https://github.com/joypauls/proofer"
},
"split_keywords": [
"cli",
" spellcheck",
" editor",
" agent",
" openai",
" proofreading",
" langgraph"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "41071c97a879e8cd5f2c05076d9395100290b21338645b1a8af0aad82d51f984",
"md5": "374acbed7baeab46c89c87ff7a5fba28",
"sha256": "4e3226505ec77bb09001bf2b8de098eb6941af7f983ba61b3b66fcc71db6e4a3"
},
"downloads": -1,
"filename": "proofer-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "374acbed7baeab46c89c87ff7a5fba28",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.13",
"size": 7856,
"upload_time": "2025-07-18T04:02:55",
"upload_time_iso_8601": "2025-07-18T04:02:55.859481Z",
"url": "https://files.pythonhosted.org/packages/41/07/1c97a879e8cd5f2c05076d9395100290b21338645b1a8af0aad82d51f984/proofer-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "19b180cee114016f5abda9692851dfd4b22061d4ce1a9efd2ab0d2376189ccf9",
"md5": "739cd08d7c0c2518306b147fce51a3af",
"sha256": "4a1dc9fdd5500fb4a6bd0e0b4a0d6840e308082bd89bcf21909274dcd6742735"
},
"downloads": -1,
"filename": "proofer-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "739cd08d7c0c2518306b147fce51a3af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.13",
"size": 6144,
"upload_time": "2025-07-18T04:02:56",
"upload_time_iso_8601": "2025-07-18T04:02:56.872516Z",
"url": "https://files.pythonhosted.org/packages/19/b1/80cee114016f5abda9692851dfd4b22061d4ce1a9efd2ab0d2376189ccf9/proofer-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-18 04:02:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "joypauls",
"github_project": "proofer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "proofer"
}