[ 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.
The name is the silver dome that presents a dish cleanly. Cloche does that for your screen.
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
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.
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.
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.
| File | What it holds |
|---|---|
| shot.png | The raw captured image, exactly as the compositor saw it. |
| shot-card.png | A presentation image with background cleanup, rounded corners, padding, and a soft shadow. |
| metadata.json | The same stable JSON object that is printed to stdout for scripts and agents. |
| text.txt | Optional best-effort accessible text from the focused app, when the OS exposes it. |
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 →| Command | What it does |
|---|---|
| cloche capture --target active | Capture the focused app or window. The default target. |
| cloche capture --target window --title Firefox | Capture a named window by title match. |
| cloche capture --target screen | Full-screen capture, a fallback and debugging mode. |
| cloche preview | Open the most recent capture. |
| cloche latest | Print the path of the most recent shot directory. |
| cloche gallery --limit 10 | Build a self-contained HTML gallery of recent shots. |
| cloche list-windows --format json | Enumerate capturable windows as JSON. |
| cloche codex-payload --thread-id ID DIR | Emit a Codex turn/start payload from a shot. |
| cloche schema | Print the stable JSON schema for capture output. |
| cloche doctor --format json | Validate capture support on this machine. |
| cloche mcp | Run 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.
Cloche is part of the Brigade fleet from Escoffier Labs: small, sharp tools for running an always-on agent stack. Browse the source, grab a release, or explore the rest of the kitchen.