A terminal that keeps agent sessions as data, not pixels
A terminal built for orchestration. Cavrn keeps the session as structured data, not just pixels. Every turn, tool call, and result an agent draws is typed, agent-readable metadata, so crystl and sibling agents can read and supervise each other. And it's built to run a fleet: many agents at once, most off-screen, all of them light. (Painted fast on the GPU with Metal.)
Cavrn is crystl's terminal engine. Where a normal terminal hands you scrollback (characters on a grid), Cavrn keeps a live, structured model of the session. Every user turn, assistant reply, tool call, and tool result is captured as a typed, timestamped record; a tool call is linked by id to the result it produced; a table an agent draws knows it's a table. It's the difference between a picture of the terminal and data about it.
Because the output is structured, things that used to be impossible become one call. A sibling agent reads your session with crystl screen --json or crystl history --json and gets typed records (turns, tool calls, results), not a screenshot. crystl's history navigator searches every past turn and tool call. A table an agent draws, box-drawing or markdown, is detected on the fly and copied as raw, CSV, or JSON. The phone app re-renders the same model cleanly instead of replaying escape codes. All of it reads from the one structured surface Cavrn keeps.
Cavrn is also built for how you actually run agents: several at once, most of them off-screen. It's painted on the GPU with Metal, but the sharper win is what it skips. An off-screen shard flooding output does almost no render work, and the visible one repaints only the rows that changed. Other terminals make one window fast; crystl keeps a dozen live agents light, so a big fan-out scrolls smoothly while your CPU stays free for the work. It's the default surface for new shards. Read the GPU rendering docs for that side of it.
Why it matters
Output you can read, not just see
Every turn, tool call, and result is captured as typed, timestamped data. crystl and other agents read the structure, not a screenshot of it.
Agents can read each other
crystl screen and crystl history return a sibling shard's session as JSON: typed turns, and tool calls linked by id to their results. That's how one agent supervises another.
Tables become data
A table an agent draws, box-drawing or markdown, is detected on the fly and copied as raw, CSV, or JSON. The structure survives the terminal instead of dying as characters.
Built for a fleet, not a drag-race
One fast window is easy; a dozen live agents is the hard part. Off-screen shards throttle to near-zero render work and the visible one repaints only what changed, painted on the GPU with Metal, so a big fan-out won't tax your Mac.
Ready to try it?
Create a free account and download crystl for macOS.
get started getting started guide →Frequently asked questions
- What makes Cavrn different from a normal terminal?
- A normal terminal gives you scrollback: characters on a grid. Cavrn keeps a structured model of the session: every turn, tool call, and result as typed, timestamped records, tables detected as data. The output becomes something agents and crystl can read and act on, not just display.
- What can read the metadata?
- crystl itself (the history navigator, mobile rendering, detected-table copy) and any agent via the CLI. crystl screen --json returns the live grid plus shard state (agent, status, awaiting-input, last output); crystl history --json returns the full typed transcript: user turns, assistant text, and tool calls linked by id to their results.
- Is the Metal GPU rendering the main feature?
- It's the supporting one. Metal keeps the terminal drawing fast under heavy output, but the point of Cavrn is the structured, agent-readable model underneath. Speed is table stakes; readable structure is the difference.
- Do I have to turn it on?
- No. Cavrn is the default surface for new shards. Existing shards keep the engine they were created with, so close and reopen one to move it onto Cavrn. xterm.js stays available as a fallback in Settings → Terminal Rendering.
- Does it work with any agent?
- Yes. Cavrn captures whatever runs in the shard: Claude Code, Codex, or a plain shell. The structured model is built from the output itself, so it doesn't depend on the agent.
Crystl's Book of Spells
Master crystl with a grimoire of powerful prompts. Summon heroes, assemble a party, revive shards, and complete epic quests.
open the book →More features
Gems & Shards
Gems, shards, and the crystal rail keep every project one click away.
Action Panels
See what every agent is doing at a glance.
Agent Activity Panel
One live view of every agent across all your gems: who's working, who's idle, and where tokens are going.
Schedule Agents
Launch a fresh agent at a set time (once, daily, or weekdays). Pick the gem, agent, model, and prompt; crystl fires it on schedule.
Parallel Sessions
Run multiple Claude instances on the same repo in separate git worktrees.
Hero Shards
Summon a single hero as a shard (its own agent, model, and persona) without a quest party.
History Navigator
Browse, jump through, and search every session: conversation and tool calls.
Token Tracking
Track token burn per shard, estimate turns left, and reclaim context window by disabling heavy plugins and skills.
Workbench
A slide-out task list in every project, backed by a WORKBENCH.md the agent reads and writes with you.
Markdown Editor
Render and edit any .md in a side panel. Toggle it from the workbench, and let agents open docs for you from the CLI.
Prompt Integration
Facet Inserts give you one-click access to saved prompts, commands, and shortcuts.
Agent File Editor
Create, edit, and manage CLAUDE.md, rules, skills, and agent config files with a block editor, file chooser, and project optimizer.
Project Optimizer
Scan your project for gaps in agent configuration (missing files, incomplete docs, oversized code, and setup issues) with one-click fixes.
Skills Library
Browse and import agentic skills that teach agents like Claude Code or Codex new tricks: code review, testing, deployment, and more.
Remote Development
Full crystl integration over SSH: approval panels, file relay, and click-to-open on remote machines.
Open Models
Run open models locally or hosted, orchestrate them with frontier agents, and cut token costs.
Agent Orchestration
One agent spawns, supervises, and merges the work of many: a control room for a team of coding agents.
crystl quest
Assemble a party of specialized agents. Each brings unique skills, coordinates in shared chat, and executes in parallel.
Screenshot Bar
Drag recent screenshots into the terminal. Spotlight-powered, always up to date.
Copy Bar
A one-click copy bar under the terminal. Agents stage text, you click Copy. Editable, up to 10 tabs, free.