
Beautify Screenshots for X, LinkedIn and Product Hunt in 30 Seconds
How to beautify screenshots for social media in 30 seconds: capture, preset, background, designed shadow, drag-drop. The build-in-public pipeline, and where it stops.

Zero. That is how many input fields the Lazy Shot library has for naming a screenshot by hand. We went looking for one while writing this post.
We open the library table. The keyword column reads nav-bug, deploy-log, pricing-v2. We click a cell and the word lands on the clipboard. We look for the box where a human types a new keyword. The table offers search, copy, and delete. No input.
That absence explains the design better than any feature list. In Lazy Shot the naming happens where the captures happen, and captures increasingly come from agents. The human side of the keyword column is read-only today: search it, copy from it, filter by it. Whether an edit box belongs there is a roadmap question, not a marketing one.
The problem the keyword solves is older than agents. Open a screenshots folder. A graveyard of files named Screenshot 2026-07-12 at 09.41.22.png, four hundred deep, and somewhere in the pile sits the pricing-page capture needed right now. The retrieval tool on offer is scrolling, plus squinting at thumbnails.
The problem isn't storage. It's addressing. To organize a screenshots library that a human can actually use, the files need the thing human memory runs on: words.
Timestamps answer "when." The real question is almost never "when." The real question is "which." A timestamp name isn't a name. It's a coordinate: perfect precision, zero recall, the way GPS coordinates identify a favorite café.
Folders front-load the cost. They demand a prediction, at capture time, of every future context in which the file will be wanted. Nobody makes that prediction. The taxonomy degrades into misc/, misc2/, and whatever counts as sort-later/ this month.
Tag systems get the theory right and the ergonomics wrong. The advice is always "just tag everything." Five tags per file, a vocabulary to maintain, a small ceremony on every save. If the tagging were just anything, the folder would not be full of untagged files. The overhead exceeds the payoff, and the habit dies by week two.
A single memorable keyword is the minimum-viable address. One word. It costs a second at capture time and pays back at recall, because the recall is the word. "Open rabbit." That is the entire query.
Retrieval fails at naming time, not at search time.
keyword argument, and takes it as required, so a capture and its name land in one call. Naming isn't a step after capture. The schema refuses the capture without it. The assign_keyword tool renames a capture later. The tool's own description tells the model to invent something short and memorable.rabbit becomes rabbit-2, then rabbit-3. No dialog, no naming negotiation.id, an integer ID and a keyword are interchangeable. No UUIDs anywhere in the system: the numeric ID exists for the database, the word exists for the conversation. The word isn't a label on the record. It's the address of the record.{date}, {time}, {datetime}, {timestamp}, and {ext} placeholders, with a live preview in Settings, keep the on-disk files sorted for every tool that isn't Lazy Shot: the file manager, the uploader, the backup.Two weeks in, "find the pricing shot" is a two-second keyword search. The graveyard becomes a database.
Lazy Shot's built-in MCP server exposes the same library to AI agents, and agents carry the same addressing problem humans do, amplified. An agent that captures ten screenshots holds ten numeric IDs in its context: precise, meaningless, indistinguishable from each other in conversation.
So the MCP contract bakes the pattern in. The agent shoots a window and names it nav-bug. A terminal becomes deploy-log. In one of our own test sessions the model named a capture заяц, Russian for rabbit. The word survived the session. The ID didn't.
Later, in the same conversation or the next one:
You: Put markers on nav-bug and give me the path.
Claude: [looks up
nav-bugby keyword → forks a copy → adds markers] Done. Saved asnav-bug-markers.
No IDs crossed the conversation. The keyword is a shared vocabulary between the reader, the agent, and the library, and the same word works when someone searches the table by hand on Thursday. One addressing scheme for both sides. Neither side translates for the other.
This composes with the bug-report workflow: the capture named login-bug at report time stays findable by that name when the ticket reopens three weeks later. The full workflow is here.
A house note, because the name isn't accidental. We lifted the memorable-keyword pattern from Watchword, our MCP key-value store, where agents stash specs, reports, and files under short words and retrieve them across sessions by saying the word. Watchword proved something we didn't expect to generalize so cleanly. Screenshots turned out to be the visual case of the same rule.
A store shared between a human and an agent needs addresses both sides can say out loud.
That premise drives the whole Heretic line: tools made for humans and agents, with one vocabulary between them.
The library organizes itself from there. Not because software sorted it. Because everything in it finally has a name you'd say out loud.
Heretic Lazy Shot: screenshot, annotation, and beautification for macOS and Windows, built for humans and for agents. One-time license, €14.99 for one device or €29.99 for three. No subscription, no account, no telemetry. Activation is online with an offline grace period. The trial ships inside the download, no card. Try Lazy Shot →

How to beautify screenshots for social media in 30 seconds: capture, preset, background, designed shadow, drag-drop. The build-in-public pipeline, and where it stops.

A screenshot alone is not a bug report. The workflow: point at the defect, number the repro steps, redact the secrets, paste into Jira. For humans and for agents.

A screenshot app with a built-in MCP server: 23 tools, file paths not base64, memorable keywords, headless capture. Setup in two minutes.