Skip to content

v0.6.0 — The editor grows up

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Jul 18:12
· 4 commits to main since this release

Record it, then fix it. The visual editor is now a proper little IDE for your recordings: a timeline panel edits the cast itself — retype a flubbed command, retime a pause, delete a stray event — and the saved SVG embeds the edited recording, so extract hands your fixes back. Recorded with the terminal too big? --cols/--rows now resize a cast after the fact, replaying it through a different-sized terminal exactly as a real resize would. And the whole editor dresses itself in the built-in themes — solarized by default, or any of the nine, independent of what the SVG wears.

The editor as an IDE: activity bar, themed chrome, live preview with zoom, and the timeline panel editing the recording's events

Highlights

  • Timeline editing — the bottom panel lists every event in the recording (control characters shown as ␛␍␊ pictures or \e\r\n escapes, your pick). Click a row and the preview scrubs to that exact moment; edit its time, code, or text (with \e \r \n \t \\ \xNN escapes), insert, duplicate, delete, or reorder — with undo/redo (⌘Z/⇧⌘Z) and a dirty dot on the file chip. Edits rewrite the recording server-side, so Download and Save embed the edited cast and terminal-svg extract recovers it; an untouched session still round-trips the original bytes exactly. v2 stays v2, v3 stays v3.
  • Resize after recording-c/--cols and -r/--rows now apply to .cast inputs, replaying the recording through a different-sized grid (recorded resize events still apply, so the canvas never shrinks below the largest grid the recording uses). The override embeds in the SVG's metadata and survives re-renders. In the editor, the sidebar columns/rows are the same non-destructive override — the recording's own size shows as the placeholder — while the timeline's recording fields rewrite the header for keeps.
  • An IDE, properly — activity bar, resizable sidebar and panel, command-center file pill, uppercase collapsible sections, Lucide icons, slim status bar with grid/events/duration readouts, and preview zoom (fit/100%/±, ⌘0 ⌘1 ⌘±, ctrl+wheel, drag to pan). A settings view (gear icon) themes the editor chrome with any built-in theme — solarized-dark out of the box, or "follow preview" — plus stage background, default zoom, and timeline preferences, persisted in the browser.

Rendering is unchanged: existing invocations produce the same SVGs, and the CLI's default theme is still dracula. The editor's /api/state payload changed shape (themes now carry their colors), which only matters if you were scripting against it.

Install

brew install russmckendrick/tap/terminal-svg   # or: brew upgrade terminal-svg

Or grab a binary below (macOS arm64/amd64, Linux arm64/amd64, Windows amd64 — each with a SHA-256 checksum). rec is macOS/Linux only for now; rendering .cast files works everywhere.

Quick start

# recorded at 132 columns, want it narrower — no re-recording
terminal-svg demo.cast -c 80 -o demo.svg

# open the editor: scrub the timeline, fix the typo, save
terminal-svg editor demo.cast

# the saved SVG carries the edited recording
terminal-svg extract terminal.svg -o fixed.cast

Docs: README · CLI reference · theme format · how it works

Bundled JetBrainsMono Nerd Font faces are under the SIL OFL; the code is MIT.

Full Changelog: v0.5.0...v0.6.0