iris logo

iris

Screenshots of live websites. Minimal interface, powerful engine.

GitHub

What is it?

What it is

Iris is a Rust-based command-line tool (and MCP server) that captures screenshots of web pages using the Chrome DevTools Protocol, providing a reliable visual camera for coding agents.

Why it exists

To give coding agents the ability to obtain trustworthy, programmatic images of web UI so they can verify, debug, and act on visual information without leaving their workflow.

Who should use it

Developers, coding agents, and automation scripts that need reliable, programmatic screenshots of web pages or elements. Ideal for CI/CD pipelines, documentation generation, visual testing, and providing visual context to AI assistants.

Who should avoid it

Users seeking interactive browser automation, cross‑origin iframe captures, or capturing multiple matching elements. Also not suitable for environments without a Chrome-family browser or for those wanting advanced diffing/review workflows.

Stars over time

+2 stars in the last 1 day

258256
Aug 30, 2026Aug 31, 2026

How it works

A quick walkthrough in plain English

How iris works

Step 1 of 3

You interact with it

Open iris, send a request, or connect it to your stack.

Features

CLI tool for capturing website screenshots with one command
MCP server integration for coding agents (stdio-based)
Chrome DevTools Protocol rendering for accurate visuals
Element capture using CSS selectors with auto-scrolling
Full page capture option for tall pages
Multiple output formats: PNG, JPG, WebP (quality 90)
Batch capture from CLI arguments or stdin input
Concurrent URL processing with configurable job count
Device viewport presets: desktop, iphone, ipad
Dark mode emulation via prefers-color-scheme
Smart waiting for fonts, images, animations, and lazy-loaded content
JSON Lines output for machine-readable results
Retina @2x output by default with automatic fallback
Customizable padding around selected elements
Automatic browser binary detection (Chrome, Chromium, Edge, Brave)

Advantages

  • Produces trustworthy, accurate screenshots using real Chrome rendering
  • Fast one-command capture suitable for CI/CD and automation workflows
  • Integrates directly with coding agents via MCP for inline image responses
  • Concurrent batch processing reduces total capture time
  • Smart waiting ensures visually complete captures before shutter
  • High-resolution Retina output by default
  • Failed URLs in batch mode don't terminate the entire operation
  • Flexible input: CLI args, stdin, or file paths
  • Element-specific capture with precise framing and padding
  • JSON output enables programmatic parsing and pipeline integration
  • Single binary with no external runtime dependencies beyond Chrome
  • Configurable timeouts and concurrent job limits for resource management

Disadvantages

  • Requires a Chrome-family browser to be pre-installed
  • No support for capturing cross-origin iframe contents
  • Only captures the first matching CSS selector (no multiple matches)
  • CLI mode spawns a new Chrome process per invocation (slow for repeated calls)
  • No built-in browser interaction scripting or automation
  • No diff or visual comparison tooling included
  • Element capture conflicts with --full page mode
  • Full pages exceeding Chrome's ~16k px limit auto-fallback to @1x scale
  • No support for capturing Shadow DOM or nested frame contents selectively
  • Batch filenames derived from URLs may be unwieldy or conflict
  • Exit code 1 on any batch failure requires error handling in scripts

Installation

native

curl -fsSL https://raw.githubusercontent.com/brijr/iris/main/install.sh | sh or cargo install iris-screenshot

FAQ

How do I install Iris?

Iris can be installed via the official installer script: `curl -fsSL https://raw.githubusercontent.com/brijr/iris/main/install.sh | sh`. Alternatively, with a Rust toolchain, run `cargo install iris-screenshot` which installs the `iris` command. The only runtime dependency is an installed Chrome-family browser (Chrome, Chromium, Edge, or Brave).

What are the most useful CLI flags for capturing images?

Key flags include `--selector` (CSS selector to target specific elements), `--padding` (nonnegative pixel padding around the selection), `--size` (WxH dimensions or presets like desktop, iphone, ipad), `--full` (capture the entire page height), `--dark` (emulate dark theme), `--format` (output format: png, jpg, or webp), `--json` (emit JSON lines for programmatic access), and `--wait-for` (wait for a selector to exist before capturing).

How do I integrate Iris's MCP server with coding agents?

Add Iris's stdio MCP server to an agent using `codex mcp add iris -- iris mcp` or configure it directly in another MCP client with: ```json { "mcpServers": { "iris": { "command": "iris", "args": ["mcp"] } } } ``` The server exposes a `capture` tool that returns images inline with structured metadata. Pass `output` when the agent also needs a file.

What browser is required for Iris to function?

Iris requires a Chrome-family browser (Chrome, Chromium, Edge, or Brave) running locally. It uses this browser via the DevTools Protocol to capture screenshots. The browser is either auto-detected or specified with the `--chrome` flag.

How can I verify my Iris installation works correctly?

Run `iris --version` to check the installed version. Then perform a smoke test: `iris https://example.com --selector h1 --padding 8 --scale 1 --json -o /tmp/iris-smoke.png` should return `status: ok` and a non-empty PNG file. For MCP verification, call `iris mcp get iris` or use the configured MCP server to confirm the `capture` tool is available.

Can I capture images from standard input?

Yes. Use `cat urls.txt | iris - -o shots/` to batch capture multiple URLs from stdin (comments are ignored). You can also specify individual files with `iris -o shots/ a.com b.com c.com` for batch processing.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for iris

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
iris | MushyBook