One-time screenshots for AI agents.

claude-code — oneshot

How it works

Three steps. No config required.

1

Capture

Ctrl+Shift+S → select a region. Take as many as you need.

2

Paste

Clipboard gets curl commands. Paste into your agent.

3

Gone

Agent reads them, screenshots expire. 410 Gone.

Terminal — agent fetches 3 screenshots
$ curl -s -o /tmp/shot-A1B2C3D4.png http://localhost:9853/s/A1B2C3D4.png
$ curl -s -o /tmp/shot-E5F6G7H8.png http://localhost:9853/s/E5F6G7H8.png
$ curl -s -o /tmp/shot-I9J0K1L2.png http://localhost:9853/s/I9J0K1L2.png
$ # Agent reads all 3 screenshots

$ curl -s http://localhost:9853/s/A1B2C3D4.png
Gone (HTTP 410)
$ curl -s http://localhost:9853/s/E5F6G7H8.png
Gone (HTTP 410)
$ curl -s http://localhost:9853/s/I9J0K1L2.png
Gone (HTTP 410)
Batch Capture

Multiple screenshots, one paste

Snap multiple regions. One paste, all screenshots.

Clipboard contents
| Screenshot | Fetch |
|------------|-------|
| shot-1     | `curl -s -o /tmp/shot-A1B2C3D4.png http://localhost:9853/s/...` |
| shot-2     | `curl -s -o /tmp/shot-E5F6G7H8.png http://localhost:9853/s/...` |
| shot-3     | `curl -s -o /tmp/shot-I9J0K1L2.png http://localhost:9853/s/...` |

Built for the AI workflow

Menu bar only

No dock icon, no windows. Lives in your menu bar, out of the way until you need it.

Nothing on disk

Screenshots live in memory only. When the app quits, everything is gone.

Configurable expiry

Unread screenshots expire after 10 minutes. Read screenshots stay for 60 seconds after first fetch. Both configurable.

Curl, not URLs

Clipboard gets a curl command, not a URL. AI agents can't fetch localhost, but they can run shell commands.

Configurable

Change the port, expiry times, capture shortcut, and launch-at-login from the settings window.

Open source

MIT licensed. Read the code, fork it, contribute. Built with Swift, ScreenCaptureKit, and FlyingFox.