Mamadoc
AI-powered document processing for managing household paperwork. Scan letters as PDFs, get structured extraction with actionable recommendations, and track everything in a Streamlit dashboard.
Built for the real-world problem of managing a pile of unsorted letters — insurance notices, invoices, government correspondence, care facility paperwork — where you need to know what each letter says, what you need to do, and which letters belong to the same matter.
What It Does
- Multi-language PDF reading — Claude Vision reads scanned documents in any language (German, Turkish, French, etc.) and produces English summaries
- Structured extraction — sender, date, amount, deadline, urgency, document type, reference numbers
- Actionable recommendations — each document gets specific action items with deadlines
- Issue timeline grouping — automatically groups related documents (original letter → reminder → final notice) so you respond to the latest, not the first one you scanned
- Personal task manager — add your own tasks alongside document-extracted actions
- Conversational Ask tab — ask questions about your documents and tasks in natural language
- File watcher — auto-processes new PDFs dropped into the folder
How It Works
Scanned PDF → Claude Vision API → Structured JSON → SQLite → Streamlit Dashboard
- Scan a letter as PDF (any scanner, any language)
- Drop it into the project folder
- Claude Vision reads the image, extracts structured data, generates English summary + recommendations
- Documents are automatically grouped into issues by sender + reference number
- Track action items, mark them done, ask questions about your documents
Requirements
- Python 3.10+
- Poppler (for PDF to image conversion)
- Anthropic API key (~$0.01 per page)
Installing Poppler
Windows: Download from poppler releases, extract, add bin/ to PATH.
macOS: brew install poppler
Linux: sudo apt install poppler-utils
Install
From PyPI
pip install mamadoc
From source
git clone https://github.com/capraCoder/mamadoc.git
cd mamadoc
pip install -e .
Configure
cp .env.example .env
# Edit .env and add your Anthropic API key
Verify setup:
mamadoc check
Usage
CLI commands
# Check environment setup
mamadoc check
# Process all unprocessed PDFs in the project folder
mamadoc process
# Reprocess a specific document
mamadoc process Document_2026-01-15.pdf --force
# Launch the Streamlit dashboard
mamadoc dashboard
# Watch folder for new PDFs and auto-process
mamadoc watch
Direct module execution
python -m mamadoc.process_pdf
python -m mamadoc.process_pdf Document_2026-01-15.pdf --force
python -m streamlit run mamadoc/app.py
python -m mamadoc.watcher
Dashboard Tabs
| Tab | Purpose |
|---|---|
| Dashboard | Overview metrics, document table with inline status editing |
| Issues | Grouped timelines per matter (original → reminder → final notice) |
| Document Detail | Full extraction, page image, action items, re-extract/delete |
| Pending Actions | Personal tasks + document-extracted actions with deadlines |
| Ask | Natural language questions about your documents and tasks |
Architecture
mamadoc/
mamadoc/
__init__.py — version
cli.py — CLI entry point (mamadoc command)
config.py — paths, API keys, logging, constants
prompt.py — Claude Vision prompts, JSON parsing, validation
db.py — SQLite schema + CRUD (documents, actions, issues, tasks)
process_pdf.py — PDF → image → Claude Vision → JSON → DB pipeline
app.py — Streamlit dashboard (5 tabs)
watcher.py — watchdog auto-processor for new PDFs
.env — your API key (not committed)
mamadoc.db — SQLite database (auto-created)
processed/ — extracted JSON + page images
pyproject.toml — PyPI package config
Cost
Claude Vision API costs approximately $0.01 per page. A typical single-page letter costs about 1 cent to process. The issue-linking step uses the cheaper Haiku model.
Limitations
- PDFs must be scanned images (not born-digital text PDFs — though those work too)
- Maximum 20 pages per PDF (configurable in
config.py) - Interface is English-only (PDF reading works in any language)
- No multi-user support — single SQLite database, designed for personal use
- Requires internet connection for Claude API calls
License
MIT License. See LICENSE.
Author
Release files for mamadoc 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mamadoc-0.2.0.tar.gz | 25.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mamadoc-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.1 kB
Release files / mamadoc-0.2.0.tar.gz
| Download URL | mamadoc-0.2.0.tar.gz |
|---|---|
| Size | 25.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50c4aeebd18d273d580b52bd206e5dbc9bb8edfcc0da1eb6114da25200c8b3a4
|
|
BLAKE2b-256 checksum How to use checksums |
ffef2531c1c44a31b70100074dc049a9d9340e681d13a9997fb42e7aae847a06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 13, 2026.
Transparency logRelease files / mamadoc-0.2.0-py3-none-any.whl
| Download URL | mamadoc-0.2.0-py3-none-any.whl |
|---|---|
| Size | 26.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8fe9b17e4f91960bb3e5275d5503fc635f0a80041971a7f9518caa541211f440
|
|
BLAKE2b-256 checksum How to use checksums |
a2b8d232ec60f791c15322f8a23d91272168fe8a954dac60a43d93c975ea88d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 13, 2026.
Transparency log