Chat that remembers the decisions.

Team chat with a memory underneath. When your team settles something, the decision and the why stay attached to the messages, so when the question comes back in three months there's an answer instead of a re-litigation. I built this because chat kept eating mine.

#api-v3 Friday
MR
Maya Reyes Friday 14:03
Picking the auth refactor back up next sprint. Anyone remember why we paused it in March?
JL
Jordan Lee Friday 14:04
pretty sure there were open concerns but I can't find the thread lol
AP
Alex Park Friday 14:05
shit, uh 🤷 @ariadne ?
Ariadne is working…
of 5 steps
Session complete
5 steps · 3.7s
14:05
Ariadne Friday 14:05
You held the refactor for Jordan's review of the token-rotation model. Their concern from Mar 12:
JL
Jordan Lee
Mar 12 · 11:42
"hold on, I'm not comfortable changing the auth boundary without working through the token-rotation flow first. can we pause this until I've reviewed the design"
Original thread in #api-v3.
👍3 🙏2 💡1
Select text to format
Enter to send · Shift+Enter for new line

Chat you can find later.

A timeline is good for keeping up. It's bad for finding a discussion again three weeks later. The board is the same channel grouped by topic, so you open the conversation instead of scrolling for it.

Stream#product, as it happened
MR
Maya Reyes14:03
Picking the auth refactor back up next sprint. Anyone remember why we paused it in March?
SP
Sam Patel14:04
empty states for the board are on staging now. the board one especially came out nice
🙌2
JL
Jordan Lee14:05
pretty sure there were open concerns but I can't find the thread lol
continues Auth refactor: pause or push?·2m
AP
Alex Park14:05
shit, uh 🤷 @ariadne ?
Ariadne is working…
searching
Session complete
5 steps · 3.7s
14:05
Ariadne14:05
You paused it for Jordan's review of the token-rotation model. The concern was migrating live sessions without a forced re-auth.
same messages
Board#product, by topic
Auth refactor: pause or push?
product·now
MR
Maya Reyes14:03
Picking the auth refactor back up next sprint. Anyone remember why we paused it in March?
JL
Jordan Lee14:05
pretty sure there were open concerns but I can't find the thread lol
AP
Alex Park14:05
shit, uh 🤷 @ariadne ?
Ariadne is working…
searching
Session complete
5 steps · 3.7s
14:05
Ariadne14:05
You paused it for Jordan's review of the token-rotation model.
decision#product
Auth refactor held pending token-rotation review
Mar 12
Empty states shipped to staging
product·now
SP
Sam Patel14:04
empty states for the board are on staging now. the board one especially came out nice
🙌2

Decisions get kept. Lunch orders don't.

Threa reads the conversation, keeps the lines where the team settled something, and saves them as short memos linked to the messages they came from. When the question comes up again, Ariadne finds the memo and the conversation behind it.

1Capture what matters

Most of a channel is noise. The parts worth keeping are usually a handful of lines where the team settles something, works out a process, or shares context they'll need again.

SP
Sam Patel Mar 12 · 11:38
lunch order, pasta or pizza. last call
JL
Jordan Lee Mar 12 · 11:42
hold on, I'm not comfortable changing the auth boundary without working through the token-rotation flow first. can we pause this until I've reviewed the design
MR
Maya Reyes Mar 12 · 11:44
Fair. Let's hold v3 then. What do you need from us before sign-off?
JL
Jordan Lee Mar 12 · 11:46
a walkthrough of the rotation flow + how existing sessions migrate. I'll block out time the week of the 18th
SP
Sam Patel Mar 12 · 11:47
pizza it is, ordering now

2Hold it as a memo

Nobody rereads a transcript two months later. A short, sourced memo is the part that stays useful once the thread has scrolled away.

Decision · Mar 12
Auth refactor held pending token-rotation review.
Why
Jordan asked to pause the v3 auth boundary until the rotation flow has been walked through. The concern was migrating existing sessions without a forced re-auth wave.
Next
Design walkthrough with Jordan, week of Apr 18.
Source
3 messages · #api-v3 · Jordan Lee · Maya Reyes

3Return when it comes up again

A reason you can't find isn't worth much. When the question returns, ask Ariadne to search for the relevant memo and follow its links back to the source conversation.

#sprint-planning May 7, two months later
MR
Maya Reyes May 7 · 09:12
@ariadne we're picking auth back up this sprint. What was the hold on again?
Ariadne May 7 · 09:12
You paused v3 in March pending Jordan's review of the rotation flow. Wei flagged a related mobile-session concern in April that didn't make the original hold. Worth folding in before the walkthrough.
decision#api-v3
Auth refactor held pending token-rotation review
Mar 12
context#mobile-platform
Session migration needs device-bound refresh handling
Apr 02
$git clone github.com/threahq/threa.git $cd threa && bun install $bun run dev → http://localhost:5173 # your machine. your fork.
patch.mddescribe the change
# Compact density toggle Add a "Compact" option under Settings → Appearance. - add a `density` pref: comfortable | compact - compact tightens message-row padding and line-height - persist per-device; default to comfortable - apply it in the timeline, threads, and scratchpads
$claude -p "$(cat patch.md)"

It's open source.

The frontend, backend, control plane, and infrastructure are all public, and the public repo is the one we deploy. Read exactly how Threa works, fork it, or run it yourself. Do whatever.

All of it is on GitHub

The code, data model, access checks, model calls, and deployment setup.

MIT licensed

Fork it, change the product, or run your own version on the same code we ship. I won't take it personally.

Built in the open

Design docs, implementation plans, and the feature list are public too. Embarrassing drafts included.

Browse the source on GitHub

Bring the agent you already use.

Threa ships with Ariadne, and she's useful from day one. But you probably already have an agent set up the way you like it, with your codebase and your context. Connect that one as a Threa bot instead of starting over with mine. It can even stay on your laptop behind NAT.

Mention the bot in a channel and the runtime hands the request to your local agent, then posts the reply under the bot's name. It can search messages by text or meaning, read memos and attachments, and follow a memo back to the conversation it came from. It can also take whole tasks. You delegate, watch it work in the stream, and the finished thing lands where the team can see it.

Works today with Claude Code, Codex, Cursor, OpenCode, Gemini CLI, or a bot you write yourself, through the bot runtime, the CLI, or the MCP server.

Connect a local agent

What I wished other tools had.

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.

Threa is one developer's project, built in the open. More about why.

Get early access.

No spam. One email when your invite is ready.