For AI-assisted development

Quit the app. Keep the conversations.

Reopen a project: terminals back with their history, agent sessions one click from continuing — Claude, Codex, Gemini, Aider. Nothing runs without you.

Demo

One click brings the whole project back.

TermPuzzle — aurora-api‹ projects healthy 96
Crew claude codex gemini aider
claude · api
codex · web
gemini · tests
aider · infra
TermPuzzle closedall 4 processes killed · nothing keeps running
TermPuzzle — projects6 projects · 14 active AIs

The hidden cost of building with AI

You're not slow. You're juggling.

You're shipping three products at once. Each one needs:

  1. Its own terminals. Dev server, watcher, database, queue.
  2. Its own AI sessions. Claude Code here, Codex there, aider on a third — each mid-task, each with its own thread.
  3. Its own context. Ports, env vars, the plan you agreed on with the agent an hour ago.
  4. By 3pm you've lost track of which agent is doing what.
  5. And when you quit for the day, the terminals are the easy part to get back. The sessions your agents were running — that's what usually vanishes.
zsh — what's running right now
$ ps aux | grep "claude\|cursor\|node" | wc -l
      23
$ lsof -i -P | grep LISTEN | wc -l
      14
$ jobs | wc -l
       9

# Three products. Five agents.
# Twenty terminals. One brain.
TermPuzzle v0.5.0 with a reopened project: terminals back with their output and a retained Claude window offering Resume session
TermPuzzle v0.5.0 after a reopen: history intact, the previous session held for you.

What changes

Your project, across the day.

What leaving costs, what coming back takes, and where your attention goes in between.

When you leaveQuitting doesn’t throw your day away

Quit whenever. Your workspace, each terminal’s history and each session’s identity are already on disk. The processes stop — that’s deliberate: no background daemons — but nothing needs rebuilding.

Workspace as Code (workspace.yaml) · terminal transcripts · session identities — all local.

When you come backYour project is ready

Open the project and it’s set: every terminal back where it was, in the directory it was in. What happened while you were away is one glance, not a log dive. The morning ritual — cd, npm run dev, find your place — doesn’t happen anymore.

Ready means ready to continue: processes start fresh, conversations resume, commands that could bite (rm, drop, migrate) wait for you, and nothing runs until you say so.

Restore · Session resume (claude · codex · gemini · aider) · Timeline · safe-by-default.

While you workSeveral sessions, one person

Run each product’s terminals, editor, agents and live app side by side — and stop watching them: when one needs you, it comes to you, across every open project, with OS notifications. Who’s thinking, who’s waiting, who’s done: visible from process signals, never by reading your screens.

agent states · attention queue · OS notifications · editor side-by-side.

Under the hood, it's just a file you commit — .termpuzzle/workspace.yaml. The app writes it for you.

.termpuzzle/workspace.yaml
version: 1
name: my-app
layout: grid

terminals:
  - label: api
    cwd: ./services/api
    command: npm run dev
  - label: web
    cwd: ./apps/web
    command: vite
  - label: claude
    cwd: .
    command: claude
    role: ai-agent

editor:
  app: vscode   # or cursor, insiders
  position: right

Built for modern AI workflows

Works with the tools you already use

Claude CodeCodexGeminiAiderCursorVS CodeAny shell
CapabilityWorks with
Terminals, history & restoreAny shell
Agent states & "needs you" queueAny agent CLI claude · codex · gemini · aider · cursor-agent
Remembered as an agent windowAny agent CLI
Session resumeclaude · codex · gemini · aider
Context file injection (.md)Claude Code
Per-window permission modeClaude Code

Type claude, codex or gemini in any terminal and it becomes an agent window — remembered next time. On Windows today: terminals, history, restore, states and the queue.

No vendor lock-in: your shell stays your shell.

Stay local. Stay private.

Your work doesn't leave your machine.

  • Your code and terminals live in a local database on your machine. No telemetry on your code or prompts.
  • Your AI conversations live where your CLI keeps them — for Claude Code, in ~/.claude on your disk. TermPuzzle stores only each window's session ID — machine-local, never synced.
  • Agent states (working, waiting, done) are derived from process signals — TermPuzzle doesn't read your terminals' content to compute them.
  • Cloud Sync is opt-in and carries config only: projects, layouts, roles. History and transcripts stay put.
  • Cancelling never deletes anything. The license check works offline for 14 days.

Read the privacy page →

Pricing

Free forever for one workspace.
Pro when you outgrow it.

Cancel anytime.

Community

Free

For personal use.

  • 1 workspace
  • Up to 4 terminals
  • Workspace restore & session resume included
  • macOS, Windows & Linux
Download

Windows builds aren’t code-signed yet — SmartScreen may warn on first run: click More info → Run anyway. macOS builds are signed & notarized.

Only 200 spots

Founder

$49/year

$49/year locked for life · while your subscription is active

  • Everything in Pro
  • Early supporter status
  • Vote on the roadmap
  • Save 17% vs Pro annual
Get Founder

Secure checkout by Lemon Squeezy. Cancelling never deletes anything.

FAQ

Questions, answered

Is this just another terminal app?

No. TermPuzzle doesn’t replace iTerm, Warp or your shell — it organizes them. And where session-restore tools bring back your panes, TermPuzzle also brings back the AI sessions that were running inside them.

What exactly comes back when I quit and reopen?

Three layers: your workspace definition relaunches; each terminal returns with its history and working directory (the process starts fresh); and each agent window with a resumable session offers to pick it back up — details per tool below. Risky commands (rm, drop, migrate) are never re-run on restore.

Does TermPuzzle keep my agents running while it's closed?

No — and that's deliberate. Quitting stops the processes; no background daemons keep running on your machine. What survives is each window's session identity, so reopening means resuming, not restarting from zero.

Is resume automatic?

No. Each window shows a "Resume session" button; a project-level "Resume all" does them in one go. Resumed sessions start in safe permission mode — resuming with elevated permissions is a separate, explicit button. Nothing runs without you.

Which AI tools does this work with?

Terminals, restore, agent states and the needs-you queue work with any CLI (claude, codex, gemini, aider, cursor-agent). Session resume works with claude, codex, gemini and aider — Claude and Gemini pick each window's own conversation back up; Codex resumes its latest session for that folder; Aider restores the folder's chat history. Context-file injection and per-window permission modes are Claude Code–specific today, on macOS and Linux.

Where are my AI conversations stored?

Where your CLI keeps them — for Claude Code, in ~/.claude on your own disk. TermPuzzle stores only the session ID per window, locally, and never syncs it.

Why YAML instead of a UI?

Because workspaces should live in git. The UI creates the YAML for you, but the source of truth is a file you can commit, share and diff. Your workspace travels with your repo.

Why not just write a shell script?

You can. We did, for years. Then you have three products, your script doesn't open the editor in the right position, it doesn't remember which window was which agent's session, and one bad chmod breaks the morning. Workspace YAML solves all of that in 12 lines.

Close it tonight. Pick the conversation back up tomorrow.