explaingit

kitlangton/cellshot

Analysis updated 2026-05-18

72RustAudience · developerComplexity · 3/5Setup · moderate

TLDR

A Rust CLI and library for driving and capturing terminal applications: send keystrokes, screenshot output, and record sessions as MP4 video.

Mindmap

mindmap
  root((cellshot))
    What it does
      Drive terminal apps
      Capture screenshots
      Record sessions
    Tech stack
      Rust
      ffmpeg
    Use cases
      Test terminal UIs
      AI agent observation
      Record demo videos
    Modes
      One shot capture
      Named sessions
      Rust library use

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automate testing of terminal user interface applications by scripting keystrokes and checking screen output.

USE CASE 2

Let an AI coding agent observe and interact with what a terminal program is displaying.

USE CASE 3

Record a terminal session and export it as an MP4 video for documentation or demos.

What is it built with?

Rustffmpeg

How does it compare?

kitlangton/cellshotlq-259/legado_fluttertrystan-sa/rproc
Stars727271
LanguageRustRustRust
Setup difficultymoderateeasy
Complexity3/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Rust 1.93 or newer, video export additionally requires ffmpeg installed.

The README does not state a license, so usage rights are unclear.

In plain English

This is a command-line tool written in Rust for controlling and capturing terminal applications from the outside. You hand it a program to run, and it starts that program inside a virtual terminal, then lets you send keystrokes, read the visible text or take screenshots, and optionally record the session as a video file. The primary audiences named in the README are developers who want to automate testing of terminal user interface applications, and AI coding agents that need to observe what a terminal program is displaying. There are two modes of use. For quick, one-shot tasks, you give the tool a command to run and immediately capture its output as plain text, JSON, SVG, or a PNG image file. For longer sessions involving multiple interactions, you start a named session with a chosen terminal size, send keystrokes or typed text, wait for specific text to appear on screen, resize the viewport, capture screenshots at different moments, and stop when you are done. Scrollback logs are accessible for normal-screen programs, full-screen applications that take over the terminal are handled through visible-screen capture rather than logs. Recording a session timeline produces a file that can later be converted into an MP4 video using a separate command. The export step can trim quiet startup frames and shorten idle gaps. Recording files are described as potentially sensitive because they capture both terminal output and typed input, including any secrets. The tool also ships as a Rust library so you can drive a terminal application from Rust test code without going through the command line at all. Structured output formats like the JSON capture schema are versioned and documented with JSON Schema files for use by external tooling. The project requires Rust 1.93 or newer. Video export also requires ffmpeg.

Copy-paste prompts

Prompt 1
How do I capture a terminal application's output as JSON or a PNG screenshot using this tool?
Prompt 2
Write a test that starts a named cellshot session, sends keystrokes, and waits for specific text to appear.
Prompt 3
Explain the difference between scrollback logs and visible-screen capture for full-screen terminal apps.
Prompt 4
How would I record a terminal session and export it to MP4 with trimmed idle gaps?

Frequently asked questions

What is cellshot?

A Rust CLI and library for driving and capturing terminal applications: send keystrokes, screenshot output, and record sessions as MP4 video.

What language is cellshot written in?

Mainly Rust. The stack also includes Rust, ffmpeg.

What license does cellshot use?

The README does not state a license, so usage rights are unclear.

How hard is cellshot to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is cellshot for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.