Skip to content

Desktop sidebar

The desktop app's session list, with search, filters, groups, row menus, favorites, spaces and session details.

Command B 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.

Sessions

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.

KeyDoes
Up Arrow Down ArrowMoves through the rows
EscapeClears the search and leaves the box

Filter the list#

FilterOptionsDefault
ViewPer directory, Per host (with remote hosts on), All projects, By date, By state, By agent, then the groupings extensions addPer directory, or the space's own grouping
StatusActive, Archived, AllActive
ProjectAll projects, then each project with sessionsAll projects
Last activity1d, 3d, 7d, 30d, AllAll
AgentAll agents, then each agent the space's sessions runAll agents
Sort byRecency, Created time, Alphabetically, then the sorts extensions addRecency, 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 headerDoes
ClickFolds or unfolds the group
The iconSets the project's icon: any emoji, or an image you upload. Reset goes back to the default.
New session in projectStarts a draft in that folder
Show moreAppears 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 rowMeans
Status dotThe session waits for you, is running, or is open in another window (with the daemon). Waiting wins over running.
Run lineWhile 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 leftWith 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.
BadgesOne 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 glyphThe session runs somewhere other than this computer, such as a worktree or a sandbox. A spinner shows while it starts.
Extension icon, chips and subtitleWhat 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:

ItemDoes
RenameEdits the title in place.
Add to favorites / Remove from favoritesPins the session above every group, in every view.
Archive / UnarchiveMoves the session out of the Active list, or back.
Open in new window, Open conversation in new window, Open side panels in new windowSee more than one window.
Retry environment setupShown when the session's environment failed to start.
Environment actionsWhatever the session's environment offers.
DeleteDeletes 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 X opens the open session's details:

RowDoes
TitleEdit it, or Generate one from the conversation (Control Shift T). See automatic session titles.
Status, Activity, ModelWhat the session is doing and which model it uses
SpaceMoves the session to another space
Created, Updated, IDDates, and the id with a copy button (Control Shift C)
FolderChange… picks another folder, Set folder… adds one to a chat, and Detach keeps chatting without one
CacheWhat 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 contextCompact now summarizes the conversation (Control Shift K)
Export transcriptMarkdown (Control Shift E) or JSON (Control Shift J)
Delete sessionDeletes it after a confirmation (Control Shift D)

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.

KeysDoes
Command Option Right ArrowNext space, when the focus is outside a file, diff or terminal tab
Command Option Left ArrowPrevious space
Left, Right, Home, End, then EnterMove 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.

The desktop app's sidebar with Spaces on: three space icons in its footer.

Start a session#

Command N (Control N 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 M jumps to it. It needs the daemon.

Reference#