Transform your command-line output into clean, shareable images with a single command.
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.
Features
- Beautiful Rendering: High-quality image generation with customizable window decorations
- ANSI Support: Correctly renders ANSI colors, styles, and formatting.
- Clipboard Integration: Copy screenshots directly to your clipboard with one flag
- Command Execution: Execute commands and capture their output automatically
- Customizable: Adjust window decorations, colors, padding, and output filename.
- Cross-Platform: Works on Windows and Linux
Installation
Usage Examples
Usage Notes
- On Windows, some commands may require
--shellto execute correctly (forces execution inside Bash on Windows). - Either
--output <file>or--clipboardmust be specified, otherwiseshellshotwill fail.
Basic Usage
On Linux, commands usually work directly:
# Linux
On Windows, some commands (like echo) are shell builtins, not executables.
You need to force execution inside a shell using --shell
# Windows
This will execute the command, capture its output, and generate an image file named out.png in the current directory.

ASCII Art Demo
Demonstrating ShellShot’s full support for ANSI colors and text styles:

Command Options
--shell — Force execution inside a shell
The --shell flag forces Shellshot to execute the command inside a shell instead of running it directly. This allows you to pass your command as a single string, enabling more complex shell operations like pipes, redirections, or command chaining.
Why this is needed:
- Linux/macOS: Forces execution inside
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). - Windows: Forces execution inside
Bash. Many common commands likeechoordirare shell builtins, not standalone executables. Using--shellensures these commands run correctly and supports more complex command strings.
Example:
# Linux — works directly
# Windows — must use --shell because echo is a shell builtin
--no-decoration
Remove window decorations (title bar and control buttons):
--decoration <style> / -d
Specify the decoration style (default: classic):
# Linux
# Windows
--theme <file|url>
Shellshot supports custom themes (Base16 .yaml or iTerm2 .itermcolors) that affect ANSI color rendering.
Popular sources for themes:
You can load themes from a local path or a URL:
# Local Base16 theme
# From URL (iTerm2)
--output / -o
Specify a custom output filename:
--clipboard
Copy the screenshot directly to your clipboard:
--width / -W et --height / -H
Specify the final image dimensions in columns (width) and rows (height), or use 'auto' (default: auto):
# Linux
# Windows
--timeout / -t
Set a timeout in seconds for command execution:
Examples
# Linux
# Windows
Support
For issues and questions:
- Open an issue on GitHub
- Check the documentation
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.