Claude Modsunofficial directory

Interface·terminal·MIT

glass

The transcript redrawn like a desktop app: colored commands, a tool tree, code cards.

glass tool tree in Claude Code: four Bash calls, one failed in red, each with painted output under it
Frames from the glass repository demo video, MIT license

glass redraws Claude Code’s terminal transcript so it reads like a desktop chat app. Claude’s replies, your prompts, every tool call and its result get a new layout and their own colors, inside the same TUI. Only the drawing changes: what Claude Code stores and what the model reads stay as they were, and so do hooks, skills, MCP servers and permissions. It costs zero tokens.

What it does

  • Turn headers. Each prompt opens with one titled rule, ◆ You · 4:40 PM, and ◉ Claude with its time follows once the turn starts. Under it sits a dots line: one dot per tool call, grouped by tool, green when it worked, a red ✗ when it failed, hollow while it runs, then counts such as Bash ×4 · 1 failed. When the turn ends, the line reads like 5 actions · 2 edits · 1 failed.
  • A tool tree. Each call is one row with its mark, tool, subject and wall time at the right, and a running call’s clock ticks every second. Bash commands keep their colors and paths show relative to the project. Bash output is painted (error words in red, paths, numbers, git status codes), three lines shown and the rest as a count. A failed call shows the first line of its error in red.
  • Diff cards. Edit, Write and any Bash command that changes files draw a rounded card with the file name and its +/- counts in the top border, and one line of context each side.
  • Folded reads. Claude Code’s folded runs of reads and searches become one row naming the files they touched. A run with a failure in it opens by itself.
  • Commands in color. In backticks and in plain prose, the command, subcommand, flags, strings, paths, operators, numbers and variables each take a color. In prose a known command paints only when a flag, path, string, number or operator follows it, so git push --follow-tags paints and “make sure the build passes” does not.
  • Code cards. Code blocks sit on a tinted card sized to the code and colored by glass’s own highlighter. Past eight lines they get a language header, a line count and line numbers. A plain block made mostly of box-drawing characters or arrows counts as a diagram: drawn as typed, cut at the edge instead of wrapped.
  • The rest of the markdown. Headings without rules, • ◦ ☐ ☑ list markers, a quote bar, borderless tables with right-aligned numbers, and underlined links (https ones as real terminal hyperlinks).
  • Gutter marks. A ▎ in the margin beside any paragraph that asks something of you: a question, an opening instruction like “Run” or “Check”, a risk word, or an admission like “not verified”. Small word lists decide it. Marks are off for a turn whose prompt asks Claude to write, draft, translate or summarize something.
  • A Bottom line card. A reply that opens with **Bottom line** followed by Verified:, Issue: or Fix: rows becomes a tinted card with colored labels. It forms only when a reply takes that shape.
  • Private notes. A paragraph that starts with “Private” or “Privately” draws in quiet italics.
  • A background band. While subagents run, a frame above the prompt lists up to five of them with model, effort, current tool, tokens and the last file touched. Its chevron folds it to one strip.

glass reply with a numbered list, colored command and file names, a gutter mark, then the You and Claude turn headers

It also takes things away. The Baked for 12s line after each turn is hidden, since the dots line carries the counts. The hint under the prompt loses its key reminders (shift+tab to cycle, ← for agents) and keeps the permission mode and vim mode, colored by what they mean. While tools run, the spinner adds how many actions the turn has taken. A background task’s notification and a message from another agent each shrink to one row; ctrl+o still opens the message.

Install

Needs Claude Code 2.1.287 or later and a terminal with a dark background: all five palettes assume one.

claude plugin marketplace add rashedInt32/glass
claude plugin install glass@glass

Restart Claude Code. Choose a palette in /config, under Glass: tidepool (the default), water, undertow, codex or rose. The switch is live, but rows already on screen keep their old colors until they redraw. /fold tucks away the tool trees of finished turns and /unfold opens them again; /expand and /collapse do the same for the folded runs of reads and searches. To try a clone for one session, run claude --plugin-dir /path/to/glass.

How it works

glass hooks ui.render for Claude’s replies, your prompt rows, tool rows and results, folded tool groups, the spinner, the hint line, the turn-duration line and the band above the prompt, and draws each one itself. It parses a reply’s markdown on its own, which is how it knows a code block’s language and where inline code ends.

The other hooks only watch. prompt.submit reads your prompt to time its row and to check its first six words for a writing verb. tool.call records each call’s tool, status and wall time, plus the file a subagent touches, and passes the call through unchanged. turn.step relays Claude’s stream untouched while it counts subagent tokens. turn.start and turn.complete read the session’s usage to work out each turn’s cost.

The mod keeps the last 48 prompts and turns in its state for the session. Each turn record holds its cost, its tokens and up to 20,000 characters of Claude’s answer, which glass stores but does not draw. It makes no network calls, starts no processes, opens no files and never asks the model anything.

Limitations

  • Terminal only. Every drawing hook steps aside on any other surface, so the desktop app and the rest keep Claude Code’s own look.
  • glass draws each reply itself instead of passing it down the hook chain, so a mod that redraws replies and sits below it in that chain, such as claude-mermaid, never sees them.
  • The mod is a week old and already at version 0.4.25. Elements come and go between releases: a status line under the prompt shipped in 0.4.2 and was dropped in 0.4.6.

Similar Claude Mods

The whole directory →