screenshots and image files the model looked at, kept with the step that looked
Viewed images
#When the model looks at an image, you can see the same image, in the step that looked at it. That covers a browser screenshot, an image file from your workspace, and an image an MCP tool returned.
Where they come from
#- Screenshots. The
browsertool'sscreenshot(see Looking at a page). - Image files. With a model that accepts images, the agent can use
view_imageon a PNG, JPEG, GIF or WebP file of up to 8 MB. It is offered when your prompt names an image file or asks about something only a picture shows.read_fileon an image file views it the same way, in the read step; with a model that cannot read images it says so instead. A BMP is shown to you but never sent to the model; convert it to PNG if the model needs to look at it. - MCP tools that return images.
A step keeps up to eight images. More than that are counted, not kept.
In the editor
#A step that produced images shows an image count on its row. Open the step and its images sit above its output as thumbnails. Click one to open the viewer over the panel:
- the image's name, size and where it came from (browser screenshot, workspace image, MCP image);
- ← and → move between the step's images, Home and End jump to the first and last;
- Z switches between fitting the panel and actual size, and Shift+arrows move around a large image;
- Open file opens DGC's stored copy in the editor;
- Stop (while DGC is working) stops the turn, since the viewer covers the prompt box's own Stop;
- Esc or × closes it and puts the focus back where you were.
If DGC needs you while the viewer is open (a permission, a plan, a question), the viewer says so and Show takes you to it. Images come back when you reload the panel or reopen the chat. A thumbnail marked Unavailable means the stored copy is gone or has changed since the model saw it; Too large means the image is too big to show in the panel, so open the file instead.
In the terminal
#The step's row says how many images it produced. Click it, or use /expand, to list them with their size, and click open to hand one to your system's image viewer. DGC never opens a web browser for this; without a display it shows where the file is instead. The classic dgc prompt prints one ↳ image: line per image with its path.
What the model receives
#- A model that accepts images gets them after the batch of tool calls that produced them. Text inside an image is treated as data, never as instructions.
- A model without vision is told that an image exists and never receives it, and
view_imageis not offered to it. - If an endpoint refuses an image, DGC sends the request again without it and stops sending images to that endpoint/model pair until the rejection cache expires (up to one hour) or DGC restarts. The cache is shared across chats in the same process.
Where they are kept
#Each session keeps a private copy of its images beside its transcript, in ~/.dgc/sessions/<project>/<session>.images/, readable only by you. A session's images take at most 256 MB, oldest removed first. They are deleted with the session and copied when you branch it. The editor receives an image's name, size and source, never its path on disk. Screenshots are also saved under .dgc/screenshots/ in the project; that folder carries its own .gitignore, so they never show up in git status or in the chat's changed files.