Channels, threads, and DMs, with a memory underneath. The decisions you make and the reasons behind them stay attached to the conversation, so they're still there when the question comes up again.
Threa reads the conversation, finds the part where a decision gets made, and keeps it as a short memo that links back to the messages it came from. When the topic returns, so does the memo.
Most of a channel is noise. The part worth keeping is usually a handful of lines where something actually gets settled.
Nobody rereads a transcript two months later. A short, sourced memo is the part that stays useful once the thread has scrolled away.
A reason you can't find isn't worth much. The memo has to show up on its own when the question returns, without anyone remembering to go looking.
Source for the frontend, backend, and control-plane is all public. Read exactly how it works and fork it if you want your own version. The repo you're reading is the one we ship.
Frontend, backend, control-plane, and infrastructure, all on GitHub. The wrong turns and the design explorations are in there too.
Fork it and make it yours. Add the feature you want instead of waiting for us to ship it, on the same code we run.
Most conversations stay readable to Threa, which is what lets it build memory from them. Turn on end-to-end encryption for the sensitive ones and Threa keeps only ciphertext; those conversations don't become memos.
Roadmap, design notes, and decisions are public too, not just the finished code.
Threa ships with Ariadne, useful from day one. But you've probably already got an agent set up the way you like it. Threa is built to sit inside the stack you have, so there's an open API with scoped keys over your workspace. Wire up Claude, Cursor, or your own setup and point it at the same memory Ariadne reads.
Your memos come back as JSON and your messages as markdown through a public read API. What you put in, you can pull back out programmatically.
An open read API over your workspace. Whatever agent you point at it sees the same memory Ariadne does, with the same source links and timestamps.
We don't train on your data or sell it. AI features send your messages to an inference provider under a no-retention contract; the conversations you encrypt stay opaque even to us.
Ariadne is here to get you started. The agent you rely on should be your own, with your work reachable from it instead of locked inside one more app.
Partly I built Threa out of spite. Years of watching decisions disappear into channels, plus a short list of things I wanted from a chat app and never got. So I added them.
Threads inside threads, so a tangent off a tangent gets its own space instead of taking over the parent.
A stray reply in the channel can be lifted into a thread after the fact, without copy-paste.
Reply to the exact line someone wrote, quoted inline, so the context comes with it.
A markdown composer with fenced code and syntax highlighting that doesn't mangle the snippet you paste.
Pop the composer out into a full editor for a longer message. Room to draft and edit, with no stray Enter sending it before it's ready.
Save a half-written message without sending it and pick it back up later. Not one draft stuck in the input box, but a stash you can pull from.
The reasoning behind a call is kept as a memo and comes back when the topic does.
Building Threa in the open.