Image generation and editing, versioned in place
Shannon can now generate a new image from a prompt or edit an existing one by referencing its file. Every result versions in place, and the edit's origin — a fresh generation or a derivative of another image — shows up in the activity stream.
Shannon can now generate a new image from a prompt, or edit an existing one by referencing its file. Every result versions in place, and the edit’s origin shows up in the activity stream — the live log of everything the agent did while working. Ask for “a red fox in a forest” and a PNG lands in your file tree. Point at a photo already in your workspace and ask for it in anime style, and the same file gets a new version instead of a lookalike sitting next to it.
Generate an image from a prompt
Give the agent a prompt and a filename, and it writes a new image straight into your file
tree: logo.png, red-fox.png, whatever you call it. You can steer the frame too — square,
portrait, widescreen, whatever the layout calls for. The file behaves like any other one
Shannon writes: it shows up in the file tree, renders inline when you reference it from
markdown with , and goes through the same accept, reject, or modify review
as a text edit.
Edit an image by pointing at it
Instead of describing a picture from scratch, you can point the agent at one and ask for a change: “make this bluer,” “put a silly background on this dog.” Point at a file already saved in your workspace, or at a photo you just dropped into the chat box: both work as a source now. I kept saving separate from editing on purpose: if you just want to keep a chat upload as it arrived, saving it into your workspace copies the bytes as they are, no edit, no model call.
An edit versions the same file, not a new one
Early on, every edit forked a new file: ask for the sky to be bluer and you’d get a second, disconnected image next to the original. I changed that, because a pile of near-duplicate files is worse than a history on one. An edit now bumps the source file to a new version in place, the same way any other tracked change does, so “make this bluer” reads as another take on the photo, not a fresh upload that happens to look similar.
See where an edited image came from
The activity stream tells you which is which. An edit of a file already in your workspace
shows up as “Created splash.png from cat.png,” with a link back to the source. An edit
of something that arrived outside the workspace, like a chat upload, shows up as “Created
dog-party.png (edited).” Either way, you can tell a fresh generation apart from a
derivative at a glance, on the live stream while the agent works and on replay after you
reload the page.
Under the hood, image generation and editing runs on Google’s Gemini image model through Vertex AI, the same foundation Shannon is using to bring other models online over time. Each call is independent: no held conversation with the model between one generation and the next, just a prompt, an optional source image, and a result. That result comes back as a change like any other agent edit, reviewed the same way before it’s final.
Images have been second-class in most agent workspaces: something you paste in and hope sticks around. Here, Files form the foundation — an image the agent makes is a file like any other, not an attachment bolted onto a chat reply, and now its edits carry a history the same way a document’s do.
Try it in your workspace at shannon.bot: ask for an image, then ask for a change to it, and watch the activity stream show you exactly how the two are related.