Files
fleet/tools/screencap

screencap

A CLI tool that automatically captures screenshots of Fleet UI pages using a headless Chrome browser. It supports a built-in workflow that covers all major pages and modals, as well as custom recorded workflows that can be saved and replayed.

Prerequisites

  • Go (1.25+)
  • Google Chrome installed (the tool uses Chrome via the Chrome DevTools Protocol)
  • A running Fleet instance to capture

Building

cd tools/screencap
make build

This produces a screencap binary in the current directory.

To remove the binary:

make clean

Authentication

The tool persists a Chrome profile at ~/.fleet/screencap-profile/, so sessions survive across runs. On the first run (or when your session expires), authenticate using one of these methods:

Flag Description
-sso Opens a visible browser for SSO login. Complete the flow, then press ENTER.
-email / -password Logs in with email and password.
-cookie / -cookie-name Sets a session cookie directly (cookie name defaults to Fleet-Session).
-login Re-authenticate interactively (opens a visible browser).
(no auth flag) Reuses the saved session from a previous run.

Usage

Run the built-in full workflow

Captures all major Fleet pages (dashboard, hosts, queries, policies, software, controls, settings, account) including modals and tabs:

./screencap https://fleet.example.com

Or with authentication:

./screencap -sso https://fleet.example.com
./screencap -email admin@example.com -password secret https://fleet.example.com

Run a saved workflow

./screencap -workflow my-flow https://fleet.example.com

Record a custom workflow

Opens a visible browser where you click through the pages you want to capture. Clicks, radio buttons, checkboxes, tabs, and tooltip hovers are recorded automatically.

./screencap -record my-flow https://fleet.example.com

During recording:

  • Browse around in the browser window
  • Press ENTER to save a screenshot step (optionally type a name first)
  • Type done to finish and save the workflow

Workflow files are saved as JSON in the workflows/ directory and can be committed to the repo.

List saved workflows

./screencap -list

Additional flags

Flag Default Description
-wait-time-seconds 6 Seconds to wait for each page to load before capturing.
-workflows-dir (repo tools/screencap/workflows/) Override the directory used to read/write workflows.
-insecure false Ignore TLS certificate errors (use only for self-signed/dev certs).

Output

Screenshots are saved to screenshots/<timestamp>-<workflow>-<host>/ as numbered PNG files. Each page produces one or more images (one per viewport height if the page scrolls), and modals/tabs get their own files.

Example output structure:

screenshots/2026-03-11_113840-full-fleet.example.com/
  dashboard-1.png
  dashboard-modal-add-hosts-1.png
  dashboard-modal-add-hosts-macos-1.png
  hosts-manage-1.png
  hosts-manage-2.png
  ...