[ DESKTOP CAPTURE · v0.1.0 ]

Lift the dome. Present the shot.

Cloche is agent-neutral desktop capture for people and agents. It lifts the active app or window, frames it into a polished card with raw image and metadata, and prints stable JSON so a script, a local tool, and an AI agent can all use the same command.

View on GitHub →

The name is the silver dome that presents a dish cleanly. Cloche does that for your screen.

[ 01 · CAPTURE ]

Point at a target

  • active: the focused app or window, the default
  • window: a named window by title match
  • screen: full screen, fallback and debugging
  • list-windows to enumerate what is capturable
  • doctor to check support before you trust it

Get a shot directory

  • shot.png and a polished shot-card.png
  • metadata.json, the same object on stdout
  • optional text.txt from the focused app
  • codex-payload to hand a shot to a Codex turn
  • gallery, latest, and preview to revisit history
[ 02 · MODES ]

Shots ship today. Reels and GIF export are on the roadmap, all sharing one presentation system so a still and a clip come out of the same kitchen.

Shots

available now

A still capture of the active app or window, with a raw image, a polished presentation card, metadata, and optional extracted text.

Reels

planned next

Short desktop recordings with the same Cloche presentation system: cursor emphasis, captions, and stable metadata. The Appreels prototype is the starting point.

GIF export

planned after Reels

Lightweight loops generated from finished Reels as a delivery format, not recorded as the primary source.

[ 03 · WHY CLOCHE ]

Agent-neutral by design

Use it with Codex, OpenClaw, Claude Code, Hermes, a local MCP client, or a plain shell script. Cloche fills the capture side without binding to any one agent stack.

Stable JSON contract

Every capture prints the same structured object on stdout. Pipe it, parse it, or feed it straight into an agent turn. The schema is published with cloche schema.

Linux first, Windows supported

OpenAI documents Appshots as a macOS feature for Codex. Cloche brings reliable captures to Linux and Windows from a normal CLI.

CLI or MCP server

Run directly as a command, or expose the same code path as a small stdio MCP server with cloche mcp. One tool, two front doors.

Honest exit codes

Capture exits 0 only when a raw image was written. Text and presentation-image failures are warnings, because accessibility and compositing vary by toolkit and OS.

Reproducible cards

A style-seed reproduces a randomized card style exactly, so a polished shot can be regenerated the same way every time.

[ 04 · OUTPUT ]

Each successful shot is a directory, not a single file. Raw and presentation images sit next to the metadata, so a human and an agent can both pick the form they need.

FileWhat it holds
shot.pngThe raw captured image, exactly as the compositor saw it.
shot-card.pngA presentation image with background cleanup, rounded corners, padding, and a soft shadow.
metadata.jsonThe same stable JSON object that is printed to stdout for scripts and agents.
text.txtOptional best-effort accessible text from the focused app, when the OS exposes it.
[ 05 · AGENTS ]

Codex can resume threads that contain local images. Cloche generates the exact turn/start payload from a shot, so a captured screen drops straight into an agent turn:

{ "type": "localImage", "path": "/abs/path/shot.png", "detail": "high" }

The same stable JSON feeds OpenClaw, Claude Code, Hermes, a local MCP client, or a plain shell script. One capture command, every harness.

Codex capture reference →
[ 06 · COMMANDS ]
CommandWhat it does
cloche capture --target activeCapture the focused app or window. The default target.
cloche capture --target window --title FirefoxCapture a named window by title match.
cloche capture --target screenFull-screen capture, a fallback and debugging mode.
cloche previewOpen the most recent capture.
cloche latestPrint the path of the most recent shot directory.
cloche gallery --limit 10Build a self-contained HTML gallery of recent shots.
cloche list-windows --format jsonEnumerate capturable windows as JSON.
cloche codex-payload --thread-id ID DIREmit a Codex turn/start payload from a shot.
cloche schemaPrint the stable JSON schema for capture output.
cloche doctor --format jsonValidate capture support on this machine.
cloche mcpRun the small stdio MCP server over the same code path.

The old appshots command remains as an alias for the same code path during the rename.