This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
Official letters are written to be legally precise, not readable. A tax notice, a visa request, a clinic bill: for someone reading in their second language, one missed deadline can cost real money.
plain-words is a small command-line tool for a friend in that spot. Give it the text of a letter and it answers five questions in short, simple sentences:
- What is this?
- What do they want from me?
- What are the deadlines? (only dates that appear in the letter)
- Is it urgent?
- What do the hard words mean?
It can answer in any language the model handles (-l Hindi, -l Spanish), and it says "unclear" instead of guessing.
Demo
ollama pull llama3.2
python3 plainwords.py examples/tax_notice.txt
cat letter.txt | python3 plainwords.py -l Hindi
Code
amandewatnitrr
/
plain-words
Explain official letters in plain language, locally with Ollama
plain-words
Built for a friend who gets official letters in a language they're still learning. Paste the letter, get a plain-language summary: what it is, what they want, deadlines, jargon explained.
Runs on an open-weight model through local Ollama. Letters hold tax, visa, and medical details; none of it is sent to a cloud API. Open weights are what make that possible.
Hacktoberfest Weekend Challenge: Build for a Friend.
Use
ollama pull llama3.2
python3 plainwords.py examples/tax_notice.txt
python3 plainwords.py -l Hindi -m qwen2.5 letter.txt
cat letter.txt | python3 plainwords.py
No dependencies beyond Python 3.8+. Tests: python3 -m unittest.
Not legal advice. Always check deadlines against the original letter.
MIT licensed.
Pure Python standard library, MIT licensed, unit-tested (the tests mock the model call).
How I Built It
The core is one HTTP call to a local Ollama server running an open-weight model (llama3.2 by default, swappable with -m). The real work is the prompt: fixed headings, a reading-level target, and a hard rule against inventing facts or dates. Everything else is about 60 lines of glue: stdin or file input, a clear error if Ollama isn't running, and tests that mock the HTTP layer.
I did not add a web UI or an account system on purpose. My friend needs to paste a letter and get an answer, not learn another app.
Why Does Open Innovation Matter?
These letters contain tax figures, immigration status and medical details. The people who most need help reading them are the people who should least have to upload them to a third-party API.
Because the model is open-weight and runs through local inference, the letter never leaves the laptop. No API key, no per-letter cost, no terms of service that let a vendor retain a visa notice. A closed API could write the same summary, but it could not make that privacy promise, and it couldn't keep working offline. Open weights also let my friend swap in a model that is stronger in their own language, which a single hosted model wouldn't allow.
Limits
It is not legal advice, and small local models can still misread a letter. I wrote this under a tight deadline and did not run it end to end against a live model, so treat the output quality as untested. The prompt tells the model to flag uncertainty, and the README tells readers to check deadlines against the original.
Top comments (0)