| Crates.io | shellshot |
| lib.rs | shellshot |
| version | 0.3.0 |
| created_at | 2025-11-25 21:56:23.207599+00 |
| updated_at | 2026-01-05 22:01:22.276367+00 |
| description | Transform your command-line output into clean, shareable images with a single command. |
| homepage | https://crates.io/crates/shellshot |
| repository | https://github.com/lhenry-dev/shellshot |
| max_upload_size | |
| id | 1950504 |
| size | 2,735,192 |
Shellshot is a fast, cross-platform tool written in Rust that captures terminal sessions and transforms them into polished screenshots. Perfect for documentation, presentations, social media, or showcasing terminal workflows.
cargo install shellshot
--shell to execute correctly (forces execution inside Bash on Windows).--output <file> or --clipboard must be specified, otherwise shellshot will fail.On Linux, commands usually work directly:
# Linux
shellshot -o out.png echo "Hello from ShellShot!"
On Windows, some commands (like echo) are shell builtins, not executables.
You need to force execution inside a shell using --shell
# Windows
shellshot --shell -o out.png echo "Hello from ShellShot!"
This will execute the command, capture its output, and generate an image file named out.png in the current directory.

shellshot -o out.png ping -c 5 localhost

--shell — Force execution inside a shellThe --shell flag forces Shellshot to execute the command inside a shell instead of running it directly.
Why this is needed:
sh. Most commands are either executables or shell builtins, so they usually run correctly without --shell. Use it if you want consistent shell behavior (e.g., for complex scripts or shell operators like pipes and redirects).echo or dir are shell builtins, not standalone executables. Using --shell ensures these commands run correctly.Example:
# Linux — works directly
shellshot -o out.png echo "Hello from ShellShot!"
# Windows — must use --shell because echo is a shell builtin
shellshot --shell -o out.png echo "Hello from ShellShot!"
--no-decorationRemove window decorations (title bar and control buttons):
shellshot -o out.png --no-decoration node --version
--decoration <style> / -dSpecify the decoration style (default: classic):
# Linux
shellshot -o out.png --decoration classic ls --color=always
# Windows
shellshot --shell -o out.png --decoration classic dir
--output / -oSpecify a custom output filename:
shellshot --output out.png cargo build
shellshot -o screenshots/out.png cargo test
--clipboardCopy the screenshot directly to your clipboard:
shellshot --clipboard git status
--width / -W et --height / -HSpecify the final image dimensions in columns (width) and rows (height), or use 'auto' (default: auto):
# Linux
shellshot -o out.png --width 70 --height 50 echo "Hello, world!"
# Windows
shellshot --shell -o out.png --width 70 --height 50 echo "Hello, world!"
--timeout / -tSet a timeout in seconds for command execution:
shellshot -o out.png --timeout 5 ping -c 10 localhost
shellshot -o out.png cargo --version
shellshot --clipboard git log --oneline -5
shellshot -o out.png --no-decoration python --version
# Linux
shellshot -o out.png echo "Hello, Shellshot!"
shellshot -o out.png --decoration classic ls --color=always
# Windows
shellshot --shell -o out.png echo "Hello, Shellshot!"
shellshot --shell -o out.png --decoration classic dir
For issues and questions:
This project is licensed under either of
at your option.