Documentation

Everything you need to know about the AllScreenshots CLI.

Quick start

Get up and running with AllScreenshots CLI in under a minute.

1. Install via Homebrew
brew tap allscreenshots/allscreenshots
brew install allscreenshots
2. Add your API key
allscreenshots config add-authtoken YOUR_API_KEY
3. Take your first screenshot
allscreenshots https://github.com

Get your API key at dashboard.allscreenshots.com/api-keys

Installation

Choose your preferred installation method.

Homebrew (macOS/Linux)

brew tap allscreenshots/allscreenshots
brew install allscreenshots

Cargo (Rust)

cargo install allscreenshots

Install script

curl -fsSL https://screenshots.sh/install.sh | sh

Authentication

Configure your API key to start capturing screenshots.

Store API key (recommended)

allscreenshots config add-authtoken YOUR_API_KEY

This stores your API key securely in ~/.config/allscreenshots/config.toml

Environment variable

export ALLSCREENSHOTS_API_KEY=your_api_key

Command line flag

allscreenshots https://example.com --api-key YOUR_API_KEY

View current config

allscreenshots config show

Basic usage

The simplest way to capture a screenshot.

Capture and display in terminal
allscreenshots https://github.com
Save to file
allscreenshots https://github.com -o github.png
Full page screenshot
allscreenshots https://github.com --full-page
Mobile screenshot
allscreenshots https://github.com --device "iPhone 14"

Commands

Available commands in the AllScreenshots CLI.

Command Description
capture Take a synchronous screenshot
async Take an async screenshot with job tracking
batch Capture multiple URLs (bulk operation)
watch Watch mode - re-capture at intervals
compose Combine multiple screenshots into one image
schedule Manage scheduled screenshots
jobs List and manage screenshot jobs
gallery Browse screenshots with thumbnails
usage Show API usage and quota
config Manage authentication and settings
devices Show available device presets
completions Generate shell completions

Capture options

Fine-tune your screenshots with these options.

Option Description
-o, --output <FILE> Save screenshot to file path
-d, --device <NAME> Device preset (e.g., "iPhone 14", "Desktop HD")
--width <PIXELS> Viewport width in pixels
--height <PIXELS> Viewport height in pixels
--full-page Capture the full scrollable page
--format <FORMAT> Image format: png, jpeg, webp, pdf
--quality <1-100> Image quality (for jpeg/webp)
--delay <MS> Delay before capture in milliseconds
--display Display image in terminal
--no-display Don't display image in terminal
--clipboard Copy image to clipboard
--json Output as JSON
-v, --verbose Verbose output

Device presets

Use device presets to simulate different screen sizes.

List all devices
allscreenshots devices

Desktop

Device Resolution
Desktop HD1920x1080
Desktop1440x900
Laptop1366x768

Tablet

Device Resolution
iPad Pro 12.91024x1366
iPad Pro 11834x1194
iPad820x1180
iPad Mini744x1133
Tablet Landscape1024x768
Tablet Portrait768x1024

Mobile

Device Resolution
iPhone 14 Pro Max430x932
iPhone 14 Pro393x852
iPhone 14390x844
iPhone SE375x667
Android Large412x915
Android Medium393x873
Android Small360x800
Example usage
allscreenshots https://example.com --device "iPhone 14 Pro"

Batch processing

Capture multiple URLs efficiently with batch processing.

From a file
allscreenshots batch -f urls.txt -o ./screenshots/
Multiple URLs inline
allscreenshots batch https://github.com https://gitlab.com https://bitbucket.org -o ./screenshots/
With progress bar
allscreenshots batch -f urls.txt -o ./screenshots/ --progress

Batch options

Option Description
-f, --file <FILE> Read URLs from file (one per line)
-o, --output <DIR> Output directory for screenshots
--progress Show progress bar
--poll-interval <SEC> Polling interval in seconds (default: 2)

Watch mode

Continuously capture screenshots at specified intervals.

Every 30 seconds
allscreenshots watch https://example.com -i 30s
Every 5 minutes, max 10 captures
allscreenshots watch https://example.com -i 5m --max-captures 10
Save to directory
allscreenshots watch https://example.com -i 1m -o ./snapshots/

Watch options

Option Description
-i, --interval <TIME> Interval between captures (e.g., "5s", "1m", "30s")
--max-captures <N> Maximum number of captures (0 = unlimited)

Advanced options

Power user options for fine-grained control.

Option Description
--wait-for <SELECTOR> CSS selector to wait for before capture
--wait-until <EVENT> Wait until: load, domcontentloaded, networkidle, commit
--selector <CSS> CSS selector to capture specific element
--custom-css <CSS> Custom CSS to inject before capture
--dark-mode Enable dark mode
--block-ads Block advertisements
--block-cookies Block cookie banners
--block-level <LEVEL> Block level: none, light, normal, pro, pro_plus, ultimate

Examples

Common use cases and recipes.

Capture with dark mode

allscreenshots https://github.com --dark-mode -o github-dark.png

Wait for dynamic content

allscreenshots https://example.com --wait-for ".loaded" --delay 1000

Capture specific element

allscreenshots https://example.com --selector "#hero-section" -o hero.png

Hide cookie banners and ads

allscreenshots https://example.com --block-ads --block-cookies

PDF export

allscreenshots https://example.com --format pdf --full-page -o page.pdf

High quality JPEG

allscreenshots https://example.com --format jpeg --quality 95 -o photo.jpg

Responsive testing

# Desktop
allscreenshots https://example.com --device "Desktop HD" -o desktop.png

# Tablet
allscreenshots https://example.com --device "iPad Pro 11" -o tablet.png

# Mobile
allscreenshots https://example.com --device "iPhone 14" -o mobile.png

Custom CSS injection

allscreenshots https://example.com --custom-css "body { background: #000; }"

JSON output for scripting

allscreenshots https://example.com --json --no-display | jq '.url'

Need help? Open an issue or check out the API documentation.