Compliance & Legal
journalist-toolkit
Investigative journalism toolkit: FOIA-request drafter + PII redaction
Documentation
journalist-toolkit
Investigative journalism toolkit: FOIA-request drafter + PII redaction for source-protected reporting. All inference is LOCAL Qwen. Investigation contents never leave the journalist's network.
⚠️ Hard-coded compliance
foia.py REFUSES to run unless JOURNO_LLM_URL resolves to a local
network address. Source identities and investigation contents must
NOT reach a cloud LLM.
Pricing
- $19/mo individual journalist (FOIA drafts + redaction)
- $99/mo small newsroom (5 journalists, shared FOIA template library)
- $1,499/mo full newsroom (custom redaction policies, on-prem deploy)
What it does
- FOIA drafter: federal + state public-records requests, properly formatted with statutory citations + fee-waiver language
- PII redaction: regex (phones, emails, SSN) + Qwen NER (names); custom-term list takes priority
Run
cd C:\openclaw-products\journalist-toolkit
python -m venv .venv
.\.venv\Scripts\activate
pip install -e .
# Ensure Ollama is running locally (default http://localhost:11434)
journo foia --agency "Department of Education" --jurisdiction federal \
--records "All emails between Secretary X and Y on topic Z, Jan-Mar 2025" \
--date-range "Jan 1 2025 to Mar 31 2025" \
--requester '{"name":"Jane Doe","outlet":"Local Tribune","email":"jane@trib.example"}' \
--out drafts/foia-001.md
journo redact source-interview.txt --custom "Maria,Carlos" --use-qwen --out redacted.txt
Roadmap
- PDF redaction (visual black-box overlay, not just text)
- State-specific FOIA templates for all 50 states
- Encrypted-at-rest source notes
- OnionShare integration for receiving anonymous tips
- Bates-stamping for produced documents
- Cross-document entity linking (mention-X-on-page-N tracking)