Jeroen1991z teaches Mike to read redlines

Mike can now see tracked changes and reviewer comments inside Word and PDF documents instead of treating them as flat text.

contract-reviewsecurity

Most AI tools flatten a document before reading it, so every insertion, deletion, and margin comment vanishes - exactly the parts a lawyer cares about most. Jeroen1991z's fork changes that. Mike now surfaces tracked changes from Word files and marked-up PDFs, distinguishing inserted text, struck-out deletions, and named reviewer comments, and it understands how to talk about the current version versus the original. For PDFs without proper markup, it quietly falls back to plain text extraction.

The same release also closes a security gap. The original Mike stored each user's AI provider key in plain text; Jeroen1991z routes those keys through industry-standard encryption before they're saved, so a leaked database no longer hands over everyone's credentials. It's optional, and self-hosted teams who skip it keep the old behaviour.

So what Anyone running contract negotiations or document review through Mike should care - it finally reads the redlines, not just the clean text.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from Jeroen1991z/mikeNL, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
7735ccfd Add API key encryption and DOCX/PDF redline extraction Claude 2026-05-05 ↗ GitHub
commit body
- AES-256-GCM encryption for user API keys at rest (encryption.ts)
- userSettings.ts decrypts keys on read; user.ts PUT /user/api-key encrypts on write
- Frontend routes API key saves through backend endpoint instead of direct Supabase writes
- DOCX tracked-changes extraction: renderParagraphRedline surfaces {++ins++}, {--del--}, {>>comments<<}
- PDF redline extraction via Python/PyMuPDF subprocess (pdfRedlineExtract.ts + scripts/redline_extract.py)
- System prompt updated to explain tracked-change markers to the AI
- .env.example documents MIKENL_ENCRYPTION_KEY and PYTHON_BIN

https://claude.ai/code/session_016JxWnFc3baeDgkzDgxY6ex

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-14.md from inside the repo you want the changes in.

⬇ Download capture-thread-14.md