Exporting sessions
Every conversation Vis runs is stored in its session database, and any stored session can be exported for sharing, archiving, or showing off. One command covers all three formats:
vis sessions export <SESSION-ID> [--md | --html PATH | --mp4 PATH]
<SESSION-ID> is the full UUID or any unambiguous prefix (the short 8-char id
Vis prints in vis sessions list works). Pick exactly one format — passing
more than one is an error.
Formats
| Flag | Output | Where it goes |
|---|---|---|
--md (default) |
Markdown transcript | stdout |
--html PATH |
Styled, self-contained HTML | file at PATH |
--mp4 PATH |
H.264 screencast of the TUI transcript | file at PATH |
Markdown — --md
The default. Prints the whole transcript — user turns, thinking, answers, tool calls — as Markdown to stdout, so you can pipe or redirect it:
vis sessions export 3a7b2c1d > session.md
vis sessions export 3a7b2c1d --md | pbcopy
HTML — --html
Writes a styled, standalone HTML rendering of the session to the given path. Requires the web extension on the classpath (present in the standard build).
vis sessions export 3a7b2c1d --html report.html
MP4 screencast — --mp4
Renders a headless, humanized replay of the session as a pure-JVM H.264
.mp4 — no browser, no screen recorder, no ffmpeg. It re-enacts the
conversation as if it were happening live rather than dumping the transcript and
scrolling through it:
- User turns are typed in, character by character, at a brisk human-keyboard pace.
- Before each answer, the real TUI progress bubble holds in place — spinner
animating, elapsed clock ticking (
⠿ Vis is calling the provider… 1.2s) — so it reads as real work being done. - The finished answer jumps in near the bottom of the viewport, holds a beat, then scrolls slowly into view.
- Disclosures render collapsed, in their natural resting view, instead of a fully-expanded dump.
vis sessions export 3a7b2c1d --mp4 session.mp4
The MP4 path needs the channel-tui extension (present in the standard build).
On completion Vis prints the frame count and approximate duration, e.g.
Exported MP4: ~/session.mp4 (1303 frames, ~108s).
Nice-to-knows
- The extension is auto-appended. If you forget it, Vis adds the right one
for you —
--mp4 siemawritessiema.mp4,--html reportwritesreport.html(case-insensitive, sosiema.MP4is left alone). - Output paths are home-abbreviated. The "Exported …" line shows
~/…instead of your full/Users/you/…home path. - Parent directories are created as needed for
--htmland--mp4.
Examples
# Markdown to stdout (default)
vis sessions export 3a7b2c1d --md
# Styled HTML report
vis sessions export 3a7b2c1d --html out.html
# Humanized MP4 screencast (extension auto-added)
vis sessions export 3a7b2c1d --mp4 demo
