Control Claude Code Without Losing the Thread

Pragma wraps Claude Code and parses its output in real time.
Every action becomes a typed atom — color-coded, collapsible, searchable.
You see what the agent did, not what it said it did.

The current app is Pragma Symphony. The earlier open-source line is still on GitHub under the MIT licence.

The Problem

You run Claude Code. You get 400 lines scrolling at machine speed. 90% is noise. The 10% that matters — a file touched out of scope, a missing translation, an unexpected behavior — disappears in the scroll.

Pragma fixes this.

How It Works

  1. You write a prompt.

    Pragma injects the Pragma Protocol into Claude Code via --append-system-prompt. The session starts.

  2. Claude works.

    Pragma reads the structured NDJSON stream line by line and atomizes every event: file touches, diffs, tool calls, errors, notes.

  3. You navigate, not scroll.

    Atoms appear in a live feed — typed, color-coded, collapsible. The center panel tracks the current phase. You approve, confirm, or stop.

Pragma uses --output-format stream-json --verbose. Nothing is intercepted at the shell level — it’s Rust parsing a structured protocol.

Atom Types

Everything Claude does maps to one of these atom types. Each renders differently in the stream.

FILE_TOUCH

File created, modified, or deleted. Color border = file type.

Default: expanded. Never collapsed.

DIFF

Structured patch of the change. Expandable inline.

Default: collapsed.

TOOL_USE

External tool call: Bash, Read, Glob, Grep…

Default: collapsed.

ERROR

Execution error. Never collapsed — always foregrounded.

Sticky until dismissed.

AGENT_NOTE

Free-text output — fallback bucket for untyped content.

Default: collapsed.

USER_REPLY

User prompt or turn separator.

Default: expanded.

File type colors

FILE_TOUCH and DIFF use the file type color, not the atom type color.

Code .ts .rs .py .vue .js .go
Config .json .toml .yaml .env
Markup .html .md .xml
Style .css .scss
Build .lock .sh Dockerfile
Data .sql .csv .sqlite

Session Phases

Pragma doesn’t just stream atoms. It tracks where Claude is in the task and surfaces the right UI for each phase.

  1. Idle Configure prompt, working directory, model, attachments.
  2. Analyzing Claude processes the task. Analysis text builds in real time.
  3. Awaiting Answers optional Claude has blocking questions. You answer or skip.
  4. Awaiting Approval The plan (numbered steps) appears. Approve, modify, or switch to a stronger model — past five steps, Pragma proposes Opus and Fable.
  5. Running Steps execute. Step progress visible. Stop anytime.
  6. Awaiting Confirmation After each step: review, continue, or finalize early.
  7. Complete Report + test checklist + closing. Export as JSON or Markdown.

Projects and Memory

A session is rarely the whole story. Symphony groups sessions into projects, and can hand what it learns to the rest of the ecosystem instead of leaving it in a scrollback buffer.

Lexis is the only thing Pragma sends over the network, and only once you enable it. Everything else stays in ~/.pragma/pragma.db on your machine. Plain HTTP is accepted only for loopback addresses.

What Else

Built On

Rust (Tauri v2) backend · Vue 3 + Pinia frontend · SQLite (WAL + FTS5) · NDJSON parser written in Rust.

Two Lines

Pragma started as an open-source project and grew into the app described on this page. Both lines share the same foundation — the protocol, the atoms, the phases — but only one of them is still moving.

Pragma Symphony

Proprietary · free to use · in development

The line that goes forward. Projects, Lexis memory, Morphē handoffs, and the Fable model are here, and future work lands here. The source is no longer published.

Download →

Pragma — open source

MIT licence · free forever · frozen

The original, public and forkable. It does not track Symphony: no projects, no Lexis, no Fable. Take it if what you want is the source.

View on GitHub →

Part of noema.tools

Everything in noema.tools is an atom — a minimal, typed, addressable unit of meaning. Pragma atomizes the actions an AI agent takes.

And the tools talk to each other: your Claude Code sessions in Pragma become project memory that Morphē reads back as a live map of the real code.

See how the ecosystem fits together →

Get Pragma Symphony

Available for Windows and Linux. Local-first. Free to use. Claude Code must be installed separately — Pragma drives it, it does not replace it.