Side panels
The desktop app's side panel and its tabs.
The side panel sits right of the conversation. Terminal, Browser, Files and Diffs exist only in the desktop app (what each app has).
| Tab | Shows |
|---|---|
| Artifacts | Pull requests, branches, commits and files the session produced |
| Diffs | The agent's edits, and the working tree against HEAD |
| Files | The session's folder as a tree, with a viewer and an editor |
| Terminal | The session's terminals |
| Browser | A browser for the app you are building |
| Inbox | Plans and questions waiting for you |
| Todos | The agent's todo list |
| Queue | Messages you sent during a run, waiting for it to end |
Open, resize and arrange the panel#
| Keys | Does |
|---|---|
| Control Shift AA | Shows or hides the panel |
| Control Shift ]] Control Shift [[ | Next or previous tab (opens the panel) |
| Command Option Right Arrow Command Option Left Arrow | Next or previous item inside the focused tab: an open file, a changed file, a terminal |
| Control WW or Command WW | Closes the open file or terminal, else the active tab |
| Control TT | Shows or hides Todos |
| Command \\ | Splits the active tab into a new group on the right |
| Option Command \\ | Splits the active tab into a new group below |
| Action or behavior | Detail |
|---|---|
| Show or hide | The button at the top-right of the window. It stays in the same place, with the panel open or closed. While the panel is closed, it shows the session's artifact count. |
| No tab open | The panel lists every tab it offers, with its icon and one line about it. Click one to open it. |
| Full screen | The button left of the toggle. The panel covers the conversation. Click it again, or hide the panel, to leave full screen. |
| Resize | Drag the edge (starts at 420 px) |
| Reorder tabs | Drag a tab |
| Narrow window | The panel opens over the conversation |
| Tab groups | Split a tab with the keys above to show two tabs side by side or one above the other. Drag the divider to resize the groups. |
| Badge | A tab that needs you shows a badge. The badge pulses when the agent waits on you. The composer's badges open Inbox, Todos and Queue too. |
+ at the end of the strip | Adds panels your extensions register |
| Drafts | A new chat draft has panels before the first message |
| Own window | The button left of full screen opens the side panels in a new window. The palette and the row menu also do this. |
The app saves the layout (open tabs, tab groups, width, terminal drawer, file tree) per session. A new session starts from the last layout of its project. Open files and the terminal order are per session. Files filters are per project.
Artifacts#
Pull requests, branches, commits and recorded files from the session, plus kinds extensions add. Click one to open it. Settings › Interface › Conversation › Artifacts turns tracking off.
Diffs#
| Source | Shows |
|---|---|
| Session | The edits the agent made, from the transcript |
| Working tree | git diff HEAD plus untracked files, live |
The left list shows every changed file (Hide file list folds it). Views are unified or split, with optional line wrap. Changed images, video and audio show Before and After side by side.
To review, select lines, then click the gutter + or right-click:
| Action | Does |
|---|---|
| Comment | Drafts a review comment. Command Return attaches the file, the range, the excerpt and your note to the next message. |
| Add to chat | Attaches the lines to the next message |
| Copy | Copies the lines |
Command FF finds in the diffs. Command Shift FF searches across the changes.
Files#
The session's folder as a tree with git status. A file opens in a tab. A dot marks unsaved changes.
| In the tree | Does |
|---|---|
| Search files | Filters the tree by name |
| Changed only / All files | Shows only changed files, or everything |
| Show ignored / Hide ignored | Shows or hides gitignored files |
| Refresh | Reads the folder again |
A changed file opens on its changes. Plain view shows the file alone. Editor and Finder open it in your editor or the system file manager.
| Settings › Interface › Files & editor row | Does |
|---|---|
| File tree side | Tree on the left or right |
| Open files and diffs in | Clicks go to the panels (default) or to $EDITOR. Command-click sends to the other one. |
| Edit files in the panel | Type in the viewer. The Save row picks when the app writes your edits: on Command SS (default) or on focus loss. If the file changed on disk since you opened it, the save stops and the tab shows a conflict bar. |
| Check files with the project's tools | A diagnostics chip and marks under problem lines, from tsc, ESLint, Biome, Ruff, cargo check or go vet. + Language servers adds hover cards and Command-click to a definition. |
Every option: Settings › Interface › Files & editor.
| Keys | Does |
|---|---|
| Command FF | Finds in the open file |
| Command Shift FF | Searches across the folder's files |
Files and Diffs read files where the session runs: a sandbox, a worktree or a server.
Terminal#
The session's terminals run where the session runs: this computer, its container or sandbox, or its server. The drawer under the conversation shows the same terminals.
Terminals run in the daemon, so they need Settings › Advanced › Experimental › Shared daemon runtime (Settings › Interface › Terminal & browser shows the connection state). They keep running after you close the window.
The header has no terminal button. Use the keys below, or Toggle terminal in the palette.
| Keys | Does |
|---|---|
| Control `` or Command JJ | Shows or hides the drawer |
| Control Shift `` | Opens a new terminal |
A session holds 12 terminals that you opened, plus the agent's task terminals. A tab shows starting, failed to start, disconnected or exited. Drag tabs to reorder them. Each session keeps its order.
Showing the drawer starts a shell when the session has none of yours. A drawer that is already open when you get to the session (a new session copies its project's layout, and the app restores it after a restart) starts none: it shows a New terminal button.
Archiving a session ends its shells, except those in a cloud sandbox (E2B, Daytona), which pause with the sandbox. A shell on this computer or on a server also ends after 30 minutes with no window showing it, no output and no typing, if nothing runs in it. A dev server, or a job you left in the background with &, keeps it running.
The host keeps the last 4 M characters of each terminal's output. A window that opens the terminal again shows that history, up to 5,000 lines of scrollback. The drawer and the Terminal tab each keep the last 3 terminals you looked at ready. An older one replays its history when you show it again. Only the focused terminal's cursor blinks.
| In a terminal's menu | Does |
|---|---|
| Restart terminal | Starts a fresh shell in the same tab |
| Reconnect | Reattaches after the daemon dropped |
| Hide from the agent / Show to the agent | Hides the terminal from the agent's terminal tools, or shows it again |
| Add to chat | Attaches the selected text to the next message |
| New terminal on this Mac | For a session on a server: opens a local terminal instead |
URLs, localhost:5173 and file:line:col paths in the output are links. On macOS the usual line-editing keys work, such as Option Left Arrow to move by word.
With Settings › Agent › Agent tools › Agent can use your terminals, the agent reads your terminals and types in them after you approve. With Agent's background tasks in terminals (on by default), each background command that the agent starts gets a tab. Stop in that tab ends the task. Show terminal in Running work brings a task's tab up, focused, without opening a shell of your own. With Settings › Interface › Terminal & browser › Close terminals that exit cleanly (on by default), a clean exit closes the tab. A failed shell stays open.
Browser#
The Browser tab is a browser for the app you are building, with one page per session. The address bar takes a URL or a bare port (5173). Only http and https pages load. An empty tab shows the last 6 pages of the project that loaded as cards, with their icon, title, address and how long ago you visited them, and lists dev servers running on this computer. A page counts once per address and path: a different query or hash, or a route change inside your app, is the same page. An address that failed to load does not count. Right-click a card, or use its ⋯ button, to open the page in your usual browser or remove it from the list. Press Enter in an empty address bar to go back to it.
| Control | Does |
|---|---|
| Back, Forward, Reload | Move through the page's history |
| Screenshot to the prompt | Attaches the visible page to the next message |
| Pick an element for the agent | Click an element on the page and the agent gets it |
| Annotate the page for the agent, Command .. | Mark elements and areas of the page, with a comment for each. The tray under the page sends the marks to the agent or discards them. You can rebind the key in keybindings.json (rebind a key). |
| Devices | Off, Responsive with a width and height, or a standard device. Rotate swaps the sides. |
| More › Color scheme | System, Light or Dark for the page |
| More › Open DevTools in a window | DevTools for the page. DevTools can also dock under it, with a drag handle. |
| More › Open in system browser | Opens the page in your usual browser |
| More › Clear site data for this project | Removes the project's cookies and storage |
Each project has its own browser profile, so logins and local storage stay after a restart. The pages of the last 2 sessions that showed the browser stay loaded. Another session's page reloads at its last URL when you show it again. A crashed page reloads at its last URL, 3 times in 30 seconds at most. After that, the tab shows a reload button.
With Settings › Agent › Agent tools › Agent can use the browser, the agent opens, reads, clicks and types with the browser_* tools. A cursor shows where it acts. Your own click or typing interrupts it. Settings › Interface › Terminal & browser › Show the browser when the agent uses it opens the tab the first time in a run that the agent uses the browser of the session on screen.
Inbox and todos#
Inbox holds the plans and questions that the agent waits on in the open session. The current one shows as a card, and older ones stack under it. A new request opens the tab (where requests wait).
Todos shows the agent's live todowrite list and keeps it with the session after the run. Click a status to cycle it, click an item to edit it, add or remove items, or clear the list. The badge counts open items. The Todos badge of the composer also opens the tab.
Queue#
Queue lists the messages you sent during a run, in the order they go out when the run ends. The tab's badge and the composer's Queued badge count them.
| Action | Does |
|---|---|
| Click the text | Edits it. Return saves, Shift Return adds a line, Command Return sends it now, Escapeesc cancels. |
| Play button | Pushes it into the running turn, between tool calls |
| Remove button | Drops it |
Attachments show as one chip that opens them in a preview. While you edit a message, paste, drop or attach files to add one, or remove one.
Reference#
- Extensions:
registerPaneland the panel content model. - Terminals: how terminals run in each environment.













