I built a terminal that remembers
Last Tuesday I was staring at a Supabase migration that refused to deploy. The error message was familiar in that nagging way — I’d seen it before, maybe a month ago, maybe for a different project. I couldn’t place it.
My terminal placed it for me. A toast appeared in the corner: “Similar error on PVB, 2026-02-19. Fix: toggle IPv4 in the Connect modal.” Thirty seconds later the migration was through.
That feature is called Flashback, and it’s why I built TermDeck.
What TermDeck is
Section titled “What TermDeck is”TermDeck is a browser-based terminal multiplexer. Real PTY terminals, embedded in a dashboard, with metadata overlays showing what each panel is doing — project, status, last command, AI agent state. You pick from seven grid layouts, theme each panel independently, and switch between them the way you’d switch tmux windows. That part is already useful.
The part that makes it interesting is the memory.
The three-tier stack
Section titled “The three-tier stack”TermDeck is the visible tier. Underneath it sit two smaller projects, each doing one job well:
- TermDeck — captures what happens in every terminal: commands, exit codes, error signatures, status transitions. Renders the UI.
- Mnestra — a persistent memory MCP server. Postgres + pgvector, hybrid search (keyword + semantic + recency), exposed to any MCP-capable agent. Stores the captured signals and everything your Claude Code sessions write.
- Rumen — an async learning loop. Every 15 minutes it reads recent memories, relates them to older ones, and writes synthesized insights back. The store gets smarter while you sleep.
Flashback in plain language
Section titled “Flashback in plain language”When a panel hits an error, TermDeck extracts the signature, queries Mnestra for similar past errors across every project you’ve worked on, and fires a toast if the match is strong enough. Two features fall out of this:
- Proactive recall. You don’t have to remember to ask. The terminal surfaces the memory when it’s relevant.
- Cross-project transfer. The fix you worked out three weeks ago on a different repo is available to you now, without you having to go find it.
The 4+1 orchestration pattern
Section titled “The 4+1 orchestration pattern”TermDeck’s sprints run on a pattern I ended up liking a lot. Four terminal instances work in parallel on non-overlapping files — each one owns a slice of the codebase for that sprint. A fifth terminal coordinates via an append-only STATUS.md. When all four sign off [Tn] DONE, the coordinator runs the integration pass. It’s cheap to set up and it compresses a day of work into a couple of hours.
The 360 audit
Section titled “The 360 audit”Before v0.3 I ran a five-auditor 360 review — five parallel reviewers rating the codebase against independent rubrics (architecture, UX, docs, correctness, launch-readiness). The average across all five came in at 9.53 / 10. The gaps they flagged became Sprint 13 and 14’s backlog.
Quickstart
Section titled “Quickstart”npx @jhizzard/termdeckThat’s it for tier one. Add memory when you want it:
termdeck init --mnestratermdeck init --rumenEach wizard handles migrations, secrets, and MCP config.
- GitHub: github.com/jhizzard/termdeck
- npm: @jhizzard/termdeck
I built this because I needed it. If you also keep solving the same problem twice, try it.