session://last-2-weeks/replay-buffer

$ drift replay --session last-2-weeks

> indexing 2,341 commits across 47 repos...

> 0xFA2C1"wire auth v2" by @you

> 0xFA2B7"remove unused middleware" by @you

> ready. type 'open' to play.

// your code remembers. do you?

Drift captures the trail behind every edit, commit, branch hop, test run, and revert. Scrub backward through the work, replay decisions in order, and recover the why behind code that normally disappears into git history.

$ drift --help

--replay

Reconstructs a development session as a frame-by-frame timeline. Drift keeps the branch switches, file saves, failing tests, pasted snippets, and commits in the same order they happened.

use when: you need to explain how a feature actually came together
--diff

Opens any checkpoint as a living diff, not a static before/after. Watch a function collapse, expand, rename, and settle before the final patch lands.

emits: file events, hunk moves, dependency changes, test status
--sync

Stores local context without turning your private work into a feed. Push encrypted journals to your own storage, attach them to PRs, or keep them offline.

default: local-first, encrypted at rest, repo-scoped permissions
--blame

Answers the useful version of blame: what changed, what prompted it, which test went red, and what evidence made the final version stick.

pairs with: git log, editor saves, terminal history, CI output

$ tail -f .drift/session.log

timestamp event state
[2026-06-12 14:22:07] checkpoint @ 0xFA2C1 auth flow rewired after token refresh failure saved
[2026-06-12 14:31:48] test run packages/auth/session.test.ts: 18 passed, 1 failed warn
[2026-06-12 15:03:19] diff folded middleware.ts moved into route guard boundary clean
[2026-06-13 09:15:44] checkpoint @ 0xFA2B7 removed unused middleware after trace replay saved
[2026-06-13 09:44:02] annotation "this looks strange because the provider retries twice" pinned
[2026-06-13 10:08:55] export replay attached to PR #418 as drift://0xFA2C1..0xFA2B7 shared

$ drift pricing --format table

Start with a local journal. Pay when the replay becomes team memory.

$ drift pricing

┌──────────────┬──────────────────────┬──────────────────────────────┬──────────────────────────────┐
│ plan         │ price                │ includes                     │ best for                     │
├──────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ local        │ $0 / developer       │ local journals, replay, diff │ solo debugging, memory       │
│              │                      │ 30 day history, CLI export   │ before a context switch      │
├──────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ team         │ $12 / seat / month   │ shared sessions, PR embeds   │ teams that review work       │
│              │                      │ encrypted sync, retention    │ by watching the path         │
├──────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ archive      │ custom               │ compliance vault, SSO, logs  │ regulated codebases with     │
│              │                      │ admin export, policy hooks   │ long-lived audit trails      │
└──────────────┴──────────────────────┴──────────────────────────────┴──────────────────────────────┘

$ curl the recorder into place

$ curl -sSf drift.run/install | sh

One binary, one local journal, no hosted account required. Drift starts recording when your editor and shell start changing the repo.