RecordDeck
Cut a nine-minute terminal recording to ninety seconds without re-recording it.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get RecordDeck
Cut a nine-minute terminal recording to ninety seconds without re-recording it.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, RecordDeck is included in every plan along with the rest of the range.
Five operations
cut removes a range and closes the gap. trim keeps one window and rebases it to zero. speed scales a range by an exact factor. hold freezes the picture. And gap --max 1.2 collapses every dead pause longer than 1.2 seconds, which on a real recording does most of the work on its own.
Every time refers to the source timeline, so adding an operation at the top of your edit list never forces you to recompute the ones underneath. Run preview first: it draws the source and edited timelines as two text rulers, prints the exact resulting duration, and writes nothing.
Two things it takes seriously
Time is carried as exact rationals, never float64. There is one rounding in the whole program, applied once per timestamp at write time, so error cannot accumulate across a hundred thousand events.
Cutting also doesn’t wreck the picture. The removed bytes are replayed through a cursor and colour state model, and a synthetic escape sequence goes in at the cut point so everything after it still renders where it expects to. Preview lists each one before you commit.
It edits when things happened, never what was printed. No audio, no video formats, no recording, no GUI timeline. Input is a SessionForge cast and so is the output.
Reading on the job itself
- How to record a terminal session and share it Record the output and its timings rather than the pixels. The result is a fraction of the size, it is text ...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working command-line build of the timeline editor: cuts, trims, speed ramps, holds and dead-pause collapsing, with every timestamp held as an exact rational and quantised once at write time so a chain of edits lands on the duration you predicted rather than near it. Where a cut removes output it replays the removed region through a terminal-state model and emits a synthetic escape sequence so the surviving recording still renders correctly. The original file is never modified. It edits recordings; it does not capture them.
Naming status
Working name only — brand verdict **CAUTION** (Medium). Collision: Record Deck. Possible, but weakly ownable and expensive exact .com.
What it draws on
Existing paid software whose best ideas shaped this program: Bandicam, Snagit, FastStone Capture, Action! Screen Recorder.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
recorddeck - the edit pass for a terminal recording (Techlosoft Screen Studio Lite)
USAGE
recorddeck info <cast.jsonl> [--top N] [--json]
recorddeck preview <cast.jsonl> [--edl <file>] [--op "cut 12-20"]... [--width N] [--json]
recorddeck apply <cast.jsonl> --out <new.jsonl> [--edl <file>] [--op "..."]... [--force] [--json]
recorddeck help | -h | --help | version
COMMANDS
info What is in this recording: duration, event count, byte volume, the
longest dead pauses with their timestamps, what collapsing them would
save, and a ready-to-paste EDL an editor would plausibly start from.
preview Resolve an EDL against a cast and print the resulting timeline as a
text ruler. Reads only; writes no files.
apply Write a NEW cast with the edit applied. The input is opened read only
and is never modified. An existing --out is refused unless --force.
EDIT DECISION LIST
--edl <file> An EDL, either JSON or the compact command form (auto-detected).
--op "<text>" One compact-form operation, repeatable, applied after --edl.
cut A-B remove a source range and close the gap
trim --start A --end B keep only this window, rebased to zero
speed A-B xN play a range N times faster (exact rational)
hold AT --for D freeze the picture at AT for D
gap --max D collapse EVERY dead pause longer than D down to D
Times: 12, 12.5, 12.5s, 500ms, 250us, 2m, 1:30, 1:30.250, 0:01:05.
Ranges may be written A-B or A..B. Factors may be 4, x4, *4 or 3/2.
Ranges are in SOURCE time (the timestamps in the input file), so an EDL never
has to be recomputed as you add operations above it. Ranges must be listed in
ascending order and must not overlap; either mistake is an error, not a guess.
FLAGS
--out <file> Output cast for apply. Required. Never the input file.
--force Overwrite an existing --out. Off by default.
--top N How many pauses info should list. Default 5.
--width N Ruler width in columns for preview. Default 64.
--json Machine-readable output. Accepted by info, preview and apply.
...
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
ansi.go · cast.go · console.go · console_test.go · edl.go · guided.go · main.go · main_test.go · timeline.go
SHA-256 checksums · build instructions & scope notes · full build plan