Reviewing what an agent did should not mean leaving. The files panel sits to the right of the terminal and answers three questions about the project's checkout, one tab each: what is in it, what changed, and what was committed. A fourth tab, Artifacts, holds the files the project keeps outside its repository. The tabs are icons, and the one in front says its name. The top bar's Show the files panel / Hide the files panel button puts it away and brings it back.
Explorer
The project's checkout as a tree, with Collapse all and Refresh. Its tab counts the entries at the top of the tree; the Changes tab counts changed files. Clicking a file opens it in a tab. The search field has two modes:
| Mode | What it searches |
|---|---|
| Names | paths across the whole project, not only the folders the tree has opened |
| Contents | text inside the files |
Three flags narrow either: Match case (Aa), Whole word (ab) and Regular expression (.*). Files dropped on the tree are copied into the folder under the pointer.
Changes
What git says has changed, in three groups — Staged, Changed and Untracked — under the branch name, how far ahead or behind it is, and the lines added and removed.
- Stage and Unstage one file from its row, or a whole group from the button beside the group's name.
- Discard one file from its row, or a whole group from beside the group's name. The confirmation says which of three things you would lose: nothing, because git already has this; every uncommitted edit in the file; or the file itself, when git has no earlier copy of it.
- Commit from the top of the panel. Under the message field is one button: Stage All while nothing is staged, then Commit
<n>, which stays disabled until there is a message and says so: "Say what changed, and why." ⌘Enter (Ctrl on Linux and Windows) commits from the field.
Under the branch, Fetch, Pull, Push and Sync (pull, then push) talk to the remote, with how many commits each would move. Pull only fast-forwards: a branch that went two ways is left for a terminal, never half-merged by a button. Push on a branch with no upstream sets one. The panels follow a commit made anywhere — in a terminal, by an agent — without waiting for the window to lose and regain focus.
Clicking a row opens that file's diff rather than the file, because the question the panel is answering is what changed, and the file alone does not answer it.
Diff
A diff opens in a tab of its own and says what it is against: against HEAD for a file from Changes, while a card's own diff is against the base its branch started from. Side by side and Unified switch the layout, Show whitespace makes spaces visible, and a long diff arrives forty hunks at a time. A binary file says there is nothing to line up; a renamed file says where it came from.
History
What was committed on this checkout, newest first, under the day it was made, with Filter commits above the list. It is local history only: nothing is fetched here. Older commits load as you scroll to the end. Clicking a commit opens its diff. Right-click one to copy its hash, short hash or message, or, when the remote is on a known forge, to open it there or copy its link.
Artifacts
Files that belong to the project but not in its repository — specs, exports, reports. They are kept in the project's devpit workspace, safe from clones, new worktrees and cleans, and never committed:
~/.devpit/projects/<name>-<suffix>/artifacts/
The tab lists them with Add files and Reveal folder. Click one to open it in a tab, Open in its app, or Remove, which asks first. Files dropped on the tab are kept there. Sessions keep and take them back with devpit's own tools — devpit_artifacts, devpit_artifact_save, devpit_artifact_restore and devpit_artifact_remove — so ask one to keep a file and it lands here.
The workspace
The sidebar's Files row opens something different: a browser over devpit's own folder rather than your checkout — the transcript of every session, the worktree a card actually runs in, the agents this machine has. It opens on this project's folder, and has breadcrumbs up to the rest, a Filter by name… field, and sorting by Name, Size or Changed.
All of it is under ~/.devpit. See Where your data lives.