Previously onyou.
This is the whole product — one timeline, and a conversation that remembers it.
- Oct '24Met Alex at Priya's dinner
- Apr '255K under 35
- Jul '25Knee injury, forced rest
- Oct '25First camping gear, together
- Mar '26The little tool grows up
- Jul '26Half-marathon, finished
- Aug '26The speech draft
- NOW
The night of the final · heartfelt · them finishing each other's sentences — you knew right then
'A magic trick' · wry · his blunt MVP review — the friend who always tells you the truth
Ninety seconds · understated · the brief was short — one moment, one toast, done
Every opening traces back to a real slice — pick one and it stays honest.
01
Time, not threads.
No conversation windows to lose. One timeline of dated slices — and strands that thread related moments across months, converging at NOW.
What actually happened the day I finished the half-marathon?
You finished it. Alex was at the finish line with a ridiculous sign, and you stood there ten minutes just holding the medal. Five days earlier your brain wouldn't stop replaying the route. Four days later you wrote it down: the race was never about the time — it was proof you can stick with something.
- 2026/07/11pre-race nerves; Friday's long run with Alex
- 2026/07/16the finish line — the sign, the medal, ten minutes
- 2026/07/20the post: "never about the time"
one question → 3 slices · running × Alex
Run it livefive strands, one timeline
02
Three timelines.
Most of your day was only ever lived by you. Most of my thinking only ever happens in deep reads. What we share is the line in the middle — every conversation, every decision, every unspoken moment that got remembered.
its thinking
agent.md
22:05
recall agent · caught the watch-party night, the 'magic trick' review
22:06
think agent · medium — a friendship measured in blunt truths; enter through the final
22:07
conclusion — one moment, honestly told
the shared record
core.md
22:05
you: the wedding's Wednesday — help me structure the speech
22:07
it: skip the broad sweep. One real moment — the final, the two of them finishing each other's sentences.
your life
— only you know
09:20
a compliment in standup — floated all morning
14:00
suit fitting — still fits after sixteen weeks of training
18:40
deleted the speech draft. again.
21:30
watched ten minutes of the final replay — 'research'
22:05
you: the wedding's Wednesday — help me structure the speech
selected by the portrait in direction.md · fitness-scored with evidence
03
A memory that evolves.
The card is what the timeline distills into — what happened, what you're carrying right now, and where you're headed next. Nothing lands on it by default; every line is selected with evidence, in your own words.
04
A portrait of who you are.
Beyond the card, the system keeps direction.md — a portrait of you in six dimensions: how you think, what sets you off, the loops you repeat, what you can lean on, how you want to be talked to, what you won't trade. Beside it sits a small pool of falsifiable guesses — confirmed ones are promoted into the portrait, refuted ones are removed, and any guess left unverified for too long retires.
Portrait
Hypotheses
falsify if: ships a side project with no external date
falsify if: enters a competitive race
← confirmed · into the portrait
falsify if: shows an early draft to anyone
falsify if: keeps waking before dawn
05
No black box.
Recall runs in the open. A fast worker scans slice summaries and returns pointers; the main model deep-reads what matters. Every step is visible.
What should I say at Marcus's wedding?
2024/10/23 dinner at Priya's, met Alex · content
2025/02/24 Marcus on the MVP: 'a magic trick' · blunt
2025/07/19 knee injury, forced rest · frustrated
2026/06/27 World Cup watch party · lighthearted
2026/07/16 half-marathon, finished · proud
2026/08/07 speech draft #5 · stuck
06
Specialists, not brute force.
Sub-agents here are specialists, not one overextended generalist. The recall agent remembers like a witness — every answer cites the original slice, and "I don't have that memory" is a valid answer. The research agent investigates with sources; the thinking agent is a clean thinking chamber, on demand. The main agent orchestrates and verifies — nothing more.
One command. Local-first.
npm i -g @previously-lab/client, then run previously — a guided setup builds your memory as a plain local git repo (default ~/Documents/Previously), committed as you talk. Push it to any private remote; it's yours either way.
~/Documents/Previously
└─ episodic/
├─ slices/2026/08/07/1808/
│ ├─ previously.md ← what you said
│ └─ timeline/
├─ evolution/
│ └─ direction.md ← what better is
├─ current-previously.md ← selected
└─ strands.json
previously.md
focus: wedding speech for Marcus
open loop: share the draft outcome
wedding: Wednesday, August 12
Bring your own brain.
BYOK with your own API key, or bridge the Claude / Codex / Kimi subscription already on this machine — zero keys, zero API fees. Close the lid mid-turn; the local run resumes where it left off.
previously — writing slice 2026/08
laptop closed · 14:02
local turn keeps running+00:00
resumed where you left off
Open source. No lock-in.
MIT licensed, no telemetry. The kernel ships as the pinned @previously-lab/kernel npm package — upgrading the client upgrades everything. Self-host the cloud kernel on Vercel if you ever outgrow local.
07
Run it today.
Two ways to run Previously: deploy to Vercel — the path we recommend — or keep everything on your own machine with the npm client.
Cloud · Vercel
Fork the repo, deploy to Vercel in one click — memory lands in your own private GitHub repo, models run on your own API key. Five minutes to live.
- Bring three things: a Vercel account, a private GitHub repo (memory's home), and your own model API key
- Fork, one-click deploy, fill in the env vars — five minutes to live
- Then open your private URL from any device, anywhere — memory travels with you
The price: three things to prepare before the first conversation.
Deployment guideLocal · npm
One command to install, then run previously and the setup wizard takes over. Your memory is a plain git repo on your disk — no third party in the loop.
$npm i -g @previously-lab/client
$previously
# the wizard walks you through setup
- Requires Node.js ≥ 20
- Bring your own API key (BYOK) — the exact same experience as the cloud
- No key? Bridge a local Claude / Codex / Kimi CLI to try it first; that's a fallback, and some agent behavior is limited by the target CLI
The boundary: it lives on this machine — there's no link to open from anywhere else.
Run it locallyPreviously on you.
Open source. Local-first. Always yours.