Desktop sidebar
The desktop app's session list, with search, filters, groups, row menus, favorites, spaces and session details.
Command BB shows or hides the sidebar. Drag its edge to resize it (220 to 480 px). The app keeps the width and the hidden state across launches. A narrow window hides the sidebar. What sessions, forks, archiving and spaces are: one engine, two apps.
In this demo, the sliders button opens the filter menu.
Search sessions#
The search box filters titles at once. A moment later it also searches every session's history (saved servers included), newest first, with up to 5 matching messages under each row.
| Key | Does |
|---|---|
| Up Arrow Down Arrow | Moves through the rows |
| Escapeesc | Clears the search and leaves the box |
Filter the list#
| Filter | Options | Default |
|---|---|---|
| View | Per directory, Per host (with remote hosts on), All projects, By date, By state, By agent, then the groupings extensions add | Per directory, or the space's own grouping |
| Status | Active, Archived, All | Active |
| Project | All projects, then each project with sessions | All projects |
| Last activity | 1d, 3d, 7d, 30d, All | All |
| Agent | All agents, then each agent the space's sessions run | All agents |
| Sort by | Recency, Created time, Alphabetically, then the sorts extensions add | Recency, or the space's own sort |
Extensions can add their own filters to the menu, as a switch, one choice or several. A space an extension adds can have its own grouping and sort: the menu shows them as Space default.
Each space keeps its own filters across launches, and the app reopens on the space you left.
With Spaces on, Save view as space, at the bottom of the menu, saves the filters you set as a new space named View 1, View 2 and so on. The new space lists the sessions those filters keep, wherever they were started. Rename or delete it in Settings › General › Spaces. The project filter matches the folder's name exactly, so the saved space also lists another folder with the same name, but not one whose name only starts with it.
Groups#
Per directory gives each project a header. Sessions with no folder group under Chats. A group's header stays at the top of the list while you scroll through its sessions, until the next group pushes it out.
| On a project header | Does |
|---|---|
| Click | Folds or unfolds the group |
| The icon | Sets the project's icon: any emoji, or an image you upload. Reset goes back to the default. |
| New session in project | Starts a draft in that folder |
| Show more | Appears at the bottom of a long group and shows the rest |
By agent gives each agent a header, named from the agent list. Sessions on the default agent group under Default agent.
Per host gives each host a header, This computer then each saved server, with its projects under it. The host header's dot shows the connection (hover for the error). Collapse a host to hide its sessions. The other views list every host's sessions together, and a server's project header ends with the server's name.
A session's row#
Each row shows the title and the last change time.
| On the row | Means |
|---|---|
| Status dot | The session waits for you, is running, or is open in another window (with the daemon). Waiting wins over running. |
| Run line | While a run goes: what it does, its time, and the commits and pull requests it made. Settings › Interface › Sidebar & usage › Run details in the sidebar turns it off. |
| Time left | With time estimates on: ~12m in place of the elapsed time, in the info color. It stops and dims while the run waits for you, reads almost done once the estimate is spent, and over once the run passes it. Hover it for the elapsed time. With Run details off, it shows after "Working". A muted warning mark instead means the run could not be estimated; its tooltip says why. |
| Badges | One per kind of artifact the session made: commits, pull requests, extension items. Right-click one to copy it, add it to the prompt or open it. They stay current without opening the session: the app checks the rows on screen when it opens, when you switch spaces, when you come back to the window, and every 5 minutes while the window shows. It asks only for what can still change (an open pull request, an unfinished ticket) and was not checked in the last 5 minutes. A hidden or minimized window asks for nothing. |
| Environment glyph | The session runs somewhere other than this computer, such as a worktree or a sandbox. A spinner shows while it starts. |
| Extension icon, chips and subtitle | What an extension shows about the session, such as its branch or the bot that started it. |
An extension can also add rows of its own among the sessions, such as a ticket or a scheduled job. A click opens what the row points to. Its menu holds the extension's actions, and the sessions it lists fold under it.
Extensions can also pin rows above the list, under the search box, and below it, over the footer, such as an inbox count or a sync state. They stay in place while the list scrolls. A click runs what the extension set. The footer strip itself can hold small status chips from extensions too.
Right-click a row for its menu:
| Item | Does |
|---|---|
| Rename | Edits the title in place. |
| Add to favorites / Remove from favorites | Pins the session above every group, in every view. |
| Archive / Unarchive | Moves the session out of the Active list, or back. |
| Open in new window, Open conversation in new window, Open side panels in new window | See more than one window. |
| Retry environment setup | Shown when the session's environment failed to start. |
| Environment actions | Whatever the session's environment offers. |
| Delete | Deletes the session after a confirmation. It warns you when a remote sandbox goes with it. |
A favorite outside its project group names its project. An archived session opens read-only, with an Unarchive banner in place of the composer.
Session details#
Control Shift XX opens the open session's details:
| Row | Does |
|---|---|
| Title | Edit it, or Generate one from the conversation (Control Shift TT). See automatic session titles. |
| Status, Activity, Model | What the session is doing and which model it uses |
| Space | Moves the session to another space |
| Created, Updated, ID | Dates, and the id with a copy button (Control Shift CC) |
| Folder | Change… picks another folder, Set folder… adds one to a chat, and Detach keeps chatting without one |
| Cache | What the prompt cache did for the last requests: the share not read from the cache, the cache breaks, when the cache likely expires, and one row per request. It shows after the first request. |
| Compact context | Compact now summarizes the conversation (Control Shift KK) |
| Export transcript | Markdown (Control Shift EE) or JSON (Control Shift JJ) |
| Delete session | Deletes it after a confirmation (Control Shift DD) |
Spaces#
With spaces on, the sidebar footer shows one icon per space. Click one to show its sessions. New sessions join the space on show.
| Keys | Does |
|---|---|
| Command Option Right Arrow | Next space, when the focus is outside a file, diff or terminal tab |
| Command Option Left Arrow | Previous space |
| Left, Right, Home, End, then Enter | Move between the space icons and pick one |
The palette lists Switch to space for each other space. Turn on and edit spaces in Settings › General › Spaces.
Extensions can add spaces too. An extension's space wears a small badge, and its tooltip names the extension. It lists the sessions the extension chose, plus the sessions started in it, and a session started there can use the extension's agent and model. You cannot rename or edit it, and it does not show in Settings.
Right-click a space icon to move it left or right, or to hide it from the switcher. Hidden spaces lists them, to show one again. The order and the hidden spaces are kept on this computer. The Default space cannot be hidden.
Start a session#
Command NN (Control NN on Windows and Linux) or New session starts a draft at the top of the list (pick its folder, host and environment). Import repository, in the palette, clones a git or GitHub URL into a new draft.
When the Main session is on, it is pinned above the list as Main. Control Shift MM jumps to it. It needs the daemon.
Reference#
SessionListandSessionFilterMenu: the list and the menu above.- Sessions in the UI kit: building the same list on your own host.

