Inspiration
I read hundreds of pages a month and forget most of them. My AI assistants can't see any of it, and the tools that do remember my reading keep it on their servers. I wanted a ghost from my past: something that quietly remembers what I read, lives on infrastructure I own, and answers when my AI asks.
What it does
Ghost from the Past is a Chrome extension plus a Cloudflare Worker you deploy to your own account (a Firefox build is included but not yet tested in Firefox). It saves every article you read as clean markdown, with reading time and visit count, and stores it in D1 with full-text and semantic search. The Worker is a remote MCP server, so Claude, Kiro, Cursor or any MCP client can ask "what was that article about IndexedDB I read last week?" and get an answer with citations. It's private by default: no central server, no incognito capture, sensitive sites blocked, and card numbers and keys redacted before upload.
The Frankenstein part
It stitches together parts never meant to meet: a browser extension, Mozilla's Readability, a serverless Worker, SQLite full-text search, vector embeddings and the Model Context Protocol. Together they give any AI a memory of your own reading.
How we built it
Built with Kiro CLI in spec-driven sessions (logs in docs/kiro-logs). Kiro wrote the steering files, the spec (requirements, design, 76 tasks), a custom agent with a secret-guard hook and a test-on-write hook, the Worker scaffold, security fixes, the Firefox build and the docs. The README has an honest authorship table.
Challenges we ran into
Keeping the secret safe from look-alike pages (the Worker proves it knows the secret with an HMAC before the extension sends it), stopping remembered pages from prompt-injecting the AI, and rebuilding our hooks after an audit found Kiro CLI never loaded the first version.
Accomplishments that we're proud of
Worker tests 45/45, extension tests 36/36, end-to-end 28/28, security reviews by Kiro and Grok fixed, and a v1.0.0 release.
What we learned
Spec-driven development with an agent is fast when the spec is honest, and audits catch what tests don't.
What's next
Chrome Web Store, Firefox and Edge listings, one-click deploy, and saving highlights.
Built With
- chrome
- cloudflare-d1
- cloudflare-workers
- javascript
- kiro
- model-context-protocol
- readability
- typescript
- vectorize
- workers-ai