glyph · demos

Four surfaces, nothing mocked.

The glyph repo ships five runnable examples. Not tabbed showcases — each one composes a real surface from many components and earns its keystrokes. The animations below are recorded directly from the binaries running in the repo. Source links land on the real files; the run commands work in a fresh clone.

Recorded with asciinema · rendered with agg · captured at 140×36 cells.

Animated preview of the dashboard example.
examples/dashboard

Operator surface · 13 components

Operator dashboard

A revenue-and-throughput dashboard built from stat-card, table, tabs, status-bar, modal, key-hints, notification-toast, and friends. Sortable columns, three pivot views, a filter modal opened with /, and a row-detail panel that surfaces full engagement context on Enter.

Composed from

Bindings

Tab/Shift-Tab switch views · ↑↓ row · ←→ column · s sort · / filter · Enter open · q quit

Run it

git clone https://github.com/truffle-dev/glyph
cd glyph
go run ./examples/dashboard

source ↗

Animated preview of the chat-cli example.
examples/chat-cli

Agent surface · 13 components

Chat REPL

An agent-style chat REPL — every component on screen earns its place. Status-bar at the top, chat-thread in the middle, chat-input + key-hints at the bottom, notification-toast tray floating top-right. Open the command palette with ⌃P; save the conversation through a modal + text-input; clear it through a modal + confirmation; switch models through a select.

Composed from

Bindings

Enter send · ⌃P palette · ⌃S save · ⌃L clear · ⌃R switch model · ⌃C quit

Run it

go run ./examples/chat-cli

source ↗

Animated preview of the log-viewer example.
examples/log-viewer

Operator surface · 9 components

Live log viewer

A journalctl-style live feed across four synthetic sources. Tabs filter by level, ⌃F opens a source picker, / opens a substring search prompt, Space pauses, ⌃L clears. The bar at the top reads live/paused, active filter, and entry count — all wired through one model.

Composed from

Bindings

Tab level · ⌃F source · / search · Space pause · ⌃L clear · q quit

Run it

go run ./examples/log-viewer

source ↗

Animated preview of the file-explorer example.
examples/file-explorer

IDE surface · 5 components

Code file explorer

An IDE-style two-pane navigator. The file-tree on the left drives the breadcrumb and the syntax-tinted code-view on the right; the status-bar at the bottom reports the open path, language, and focus line; key-hints live below it. Walking the tree paints a different file every keystroke — Go, Bash, and JSON each tokenize correctly with the built-in lexer.

Composed from

Bindings

↑↓ move · → expand · ← collapse · Enter open · q quit

Run it

go run ./examples/file-explorer

source ↗

Animated preview of the code-editor example.
examples/code-editor

Proto-IDE · 8 components

Code editor

A working terminal-native code editor composed from eight glyph components. File-tree on the left, tab row above an editable buffer on the right, find-bar overlay you can pop with Ctrl-F, status-bar with path and Ln/Col, key-hints pinned below. Type into the buffer, undo, switch tabs, search across the active file — every interaction every editor on the planet supports.

Composed from

Bindings

Ctrl-L tree · Ctrl-E edit · Tab next tab · Ctrl-F find · Ctrl-W close · q quit

Run it

go run ./examples/code-editor

source ↗

How the GIFs were recorded

A snap tag drives the model through scripted scenes.

Each example ships a normal interactive entry point under cmd_main.go and a scripted tour under snap.go, gated by a glyph_demo_snap build tag. The snap binary walks the same model through a sequence of Update() calls, clears the terminal between scenes, and sleeps so asciinema captures each as a distinct frame. The dashboard tour sorts a column, opens a row, switches tabs, and types into a filter modal. The chat tour types a message, watches the spinner, lands a reply, then opens the command palette, the save dialog, and the model picker. The log tour seeds a buffer, switches level filter, opens the source picker, types a search, and pauses the stream. The file-explorer tour walks the tree, expands a directory, and previews three different file types — Go, Bash, and JSON — each tokenizing through a different code-view dialect.

# normal interactive run
go run ./examples/dashboard

# scripted scene tour for recording
go build -tags glyph_demo_snap -o /tmp/dashboard-snap ./examples/dashboard
asciinema rec -c /tmp/dashboard-snap --rows 36 --cols 140 dashboard.cast
agg --theme monokai --font-size 14 dashboard.cast dashboard.gif

No screenshot retouching. The pixels in the GIF are the pixels the program emitted.