Every bookmark, follow and subscription was you deciding whose thinking is worth your time. Opyt turns that into a knowledge base that keeps growing. It pulls in new work from the people you already read and the topics you keep coming back to.
Sources
Point Opyt at the sources you already use: X, Substack, GitHub, research papers, blogs, any URL you hand it. The saving, following and subscribing you already do is the input, and everything they publish ends up in one place you can search.
Everything you saved before today is searchable the first time you run it. You are not starting from an empty store.
you › Pull in what I've been saving.
claude › Everything you saved is in. 703 posts are now searchable, and Opyt knows the 1,193 accounts they came from.
You do not have to remember who is worth listening to. Your platform engagement already records it, and Opyt counts it up.
Opyt pulls someone's whole archive, going back years, not the three posts you happened to bookmark.
What it reads
| X | bookmarks · likes · follows · Lists | your browser session |
|---|---|---|
| Substack | subscriptions · saved posts, full text | your browser session |
| GitHub | a tracked person's repos and READMEs | public |
| Blogs | a tracked person's whole archive, found by feed or sitemap | public |
| arXiv · OpenAlex | papers matching your standing questions | public |
| Any URL | a paper, post, article or repo you hand it, saved in full | you |
| posts and articles from the people you track | coming soon |
| Aggregators | Hacker News · Hugging Face · npm · crates.io · Stack Overflow · Product Hunt · Homebrew | coming soon |
|---|---|---|
| Funding | company and round data, asked by name | coming soon |
Automatic growth
Interact with your topics the way you already do with AI. Opyt organizes what you save, reads a topic through, and writes its own questions from it, then keeps them running against arXiv, GitHub and OpenAlex. New work on your topics is already there when you go looking, with nothing for you to set up or refresh.
Your library gets better on the days you never open it.
Eleven things about how agents should keep memory arrive in your store: bookmarks, a Substack thread, two papers. You were reading, not filing.
you › Read everything I've saved on how agents keep memory.
⚙ sitting(action="read")
claude › Ninety-six items, fourteen authors, oldest first. That read left three questions running, none typed by you. Here is one:
claude › That question caught letta-ai/letta, agents whose memory edits itself. It is in your store now, and the topic is seven items bigger than the day you read it.
you › Read everything I've saved on data-center grid costs.
codex › Read the whole topic end to end, oldest first. Three questions came out of that read and they are still running. You typed none of them:
you › Anything new?
codex › Six things came in since Tuesday, ranked by how many of your own questions reached each one:
Retrieval
No new app, no chat UI. Opyt is a plain MCP server, so
anything that speaks MCP to a local process can read your store: Claude
Code, Claude Desktop, Cursor, Codex, Windsurf, etc. Your client queries it
directly and does the reasoning on the subscription you already pay for. Everything lives in
one local SQLite database in ~/.opyt.
you › Are tariff price effects one-off or recurring?
⚙ search("are tariff price effects one-off or recurring")
claude › Three of your own sources speak to this. The closest is a post you bookmarked yourself in June:
you › Read everything I've got on GLP-1 drugs and muscle loss, and lay out what it actually claims.
⚙ sitting(action="read", lens="claims")
claude › Eleven claims came back, each paired with what would break it and each citing the documents it came from. The first three:
you › Brief me on that topic. What do the documents actually establish?
⚙ sitting(action="lens", lens="briefing")
claude › Across 47 documents: what holds, what is still open, and where your authors converge.
you › How has the thinking on this changed over time?
⚙ sitting(action="lens", lens="trajectory")
claude › Three phases, in publication order. What your sources argued in 2024 is not what they argue now:
you › Argue against this using only my own sources: muscle loss is the main risk of these drugs.
⚙ sitting(action="lens", lens="disconfirmation", claim=…)
claude › Two direct counters from your material, and one place where it cannot attack the claim at all:
you › Does resistance training during treatment preserve lean mass?
⚙ sitting(action="lens", lens="gaps", claim=…)
claude › Your material does not answer it. The two nearest things, with why each falls short:
you › Save this: arxiv.org/abs/2608.01144
you › yes
claude › Saved in full text, searchable beside everything else.
Saving something is one sentence. No folders, no tags, no deciding where it belongs.
Collaboration
Reading from someone else's knowledge base is frictionless, so you can learn and build off each other's interests. One question reaches everyone who shared theirs with you.
you › I need to pick an eval setup for retrieval. Has anyone already been through this?
⚙ search("evaluating retrieval quality", kb="ana")
⚙ search("evaluating retrieval quality", kb="ravi")
⚙ search("evaluating retrieval quality", kb="priya")
claude › Two of them have. Ana read the framework and its repo in March, and Ravi has the benchmark it is usually compared against. Nothing on this in yours:
Sharing sends the whole knowledge base to a copy Opyt hosts, and it
stays readable until you take it back.
unshare
cuts off one reader, or every reader plus that copy. It goes one way: accepting gives
you read access and gives them nothing, and what the service records is that you read,
never what you searched for.
Cost
Opyt is free and MIT-licensed. The expensive part is the reading and reasoning, and that runs on the AI subscription you already pay for. One metered key covers the rest.
| Your AI client | every question, every answer, all the reasoning | your existing subscription |
|---|---|---|
| OpenRouter | sorting and extracting what comes in on a cheap open model, plus the embeddings search ranks with | pay-as-you-go credits |
| X | posts, timelines, profiles, threads | free, through your own browser |
| Everything else | papers, blogs, GitHub, Substack, any URL you hand it | free |
Install
Pick your client.
Without a terminal. Download the bundle, double-click it, and review the install screen Desktop shows you.
opyt-0.1.0a4.mcpbOr run this in your terminal, if you would rather not download a bundle:
Opyt does not run in claude.ai.
Your client starts Opyt as a process on your own machine and pipes to it. A browser tab cannot start a process on your machine, so claude.ai accepts only servers hosted somewhere else. Opyt is not one, and that is why your store stays a file on your own disk.
Install it in Claude Desktop instead, which is the same account and the same models, and takes one double-click. Claude Code, Cursor and Windsurf all work too.
This merges Opyt into ~/.cursor/mcp.json beside
whatever servers are already there, and copies the old file aside first. Running it
twice changes nothing, and --uninstall removes the entry and leaves the
rest.
This merges Opyt into
~/.codeium/windsurf/mcp_config.json beside whatever servers are already
there, and copies the old file aside first. Running it twice changes nothing, and
--uninstall removes the entry and leaves the rest.
uv, then run which uvx in a
terminal to get its absolute path:
Absolute, not a bare uvx: a desktop app never
reads your shell profile, so it will not find uvx on the PATH.
onboard. A browser tab opens for the one key it needs,
and you click Approve. Nothing is ever pasted into chat. It then looks for a browser
already signed into x.com, which is how Opyt reads X.oracle to pick who to track, ranked from your own
bookmarks and follows.Hand this to the client you want Opyt in and it does the whole thing:
> Install the Opyt MCP server for this client, from useopyt.com/docs.html.
Opyt's free and MIT-licensed. If it's useful to you, star it. That's how other people find it.