opyt — a local-first knowledge base, served entirely through an MCP server
Opyt pulls a person's full public archive — X, GitHub, Substack, blogs, papers — into one local SQLite store your AI client can search, open, and reason over. No new app. No account. No outbound calls.
$ git clone https://github.com/maimond123/opyt && cd opyt && bash scripts/setup.sh
Every tab is a real session shape — the full surface of the product, one exchange each.
you › What's the strongest argument I've saved for stablecoin settlement replacing correspondent banking?
⚙ search("stablecoin settlement vs correspondent banking") 4 hits · top score 0.81 · @hypersoren · 2026-03-02 ⚙ open("x/1893…") full text + source_url
claude › The sharpest case in your store is Soren's March thread: the cost of correspondent banking isn't the wire fee, it's the capital parked in nostro accounts while messages reconcile. Programmatic escrow removes the float, not the fee… [x.com/hypersoren/status/1893…]
search · open — retrieval is LLM-free. The tools return ranked hits and full documents; your client's own model does the reasoning.
you › Track Karpathy.
⚙ add_oracle("karpathy") detected: X · GitHub · blog pulled: 3,412 posts · 38 repos · 96 essays
claude › Done — Karpathy is an oracle now. His full archive is searchable next to everything else you've saved, and new posts land automatically from here on.
add_oracle — one handle in; Opyt detects where that person actually publishes and pulls each archive in full. A background rail keeps it current.
you › Anything new on my topics?
⚙ frontier() 6 staged since Tuesday, ranked: 1. paper · "Optimistic Verification for Agent Payments" · arXiv 2. repo · defuse-protocol/nearintents-mpp-sdk · GitHub …
claude › Frontier staged six finds against your standing queries. The verification paper is closest to what you opened last week — it cites two of your oracles. Want it in the store?
frontier — standing queries run against arXiv and GitHub on a schedule, staged for review. Never pushed into your context uninvited.
you › What did I actually save the most of this summer?
⚙ aggregate(group_by="topic", since="2026-06-01") agentic payments 96 · verification 84 · bio-measurement 41 · other 53
claude › Two topics are two-thirds of your summer: agentic payments and verification, 180 of 274 saves. Bio-measurement is the fastest riser — 29 of its 41 came in August.
aggregate — distributional counts over everything you saved. A census, not a sample.
you › Save this: arxiv.org/abs/2608.01144
⚙ hopper("arxiv.org/abs/2608.01144") routed → paper ingester preview: "Latency Bounds for Escrowed Agent Transactions" · 14 pages · confirm?
you › yes
claude › Saved as an atom — full text, searchable next to everything else.
hopper — any URL routes to the right ingester, previews what it found, and asks before writing.
you › Read everything I have on optimistic verification, in order. What's the throughline?
⚙ sitting("optimistic verification") 47 atoms · 2024-11 → 2026-08 · publication order
claude › Read all 47. The field moved from fraud proofs as a scaling trick to verification as the pricing mechanism for agent work — and three of your oracles made that turn within the same quarter…
sitting — one topical region end to end, in publication order. The complement to search.
There is no chat UI, dashboard, or account. Your existing client — Claude Code, Cursor, Claude Desktop, Windsurf — queries the store and does the reasoning, on the subscription you already pay for. The moat is the data and the retrieval, not a hand-built UI.
The whole store is a single SQLite database in ~/.opyt. Copy the file and
your library moves with you; back it up like any other file.
Background rails that refresh your sources run inside the MCP server session and stop when it stops. Each is independently gated — a stalled rail never blocks a tool call.
~/.opyt/opyt.db — everything below lives in this one file.
"The local Opyt server makes no outbound call of its own."
Mac or Linux, Python 3.10+. Five minutes.
Restart your client and call onboard. It walks you through
keys in your browser — a tab opens, you click Approve. Nothing is ever pasted into chat.
Then call oracle to pick who to track.