--- title: "The sidebar" description: "Tabs grouped by repository, with branch, diff counts, and agent status on every row." --- The left sidebar is tty7's tab bar, and it is the default because a vertical row has room for things a horizontal chip does not: the repository a tab belongs to, the branch it is on, how much has changed there, and what a coding agent in it is doing. ⌘ B shows and hides it. Drag its right edge to resize. The tty7 tab sidebar ## Grouped by repository Rows sit under a header per git repository, with everything else collected in a trailing **Scratch** section. The grouping follows the tab's working directory, not its history — switching branches or `cd`-ing around inside a repository never moves a row out from under its header. **Settings → Window & Tabs → Sidebar grouping** switches between *By repo* (the default), *By repo or folder*, and *Flat*. The default collects every non-repo tab in Scratch; *By repo or folder* groups those tabs under their working directory instead — for agents running in plain folders — leaving Scratch to tabs whose shell has not reported a directory yet. ## What a row tells you A brand avatar when a coding agent is in the tab, plus a status dot — blue for working, amber for needs-your-input, green for done. The pane's git branch, refreshed on `cd` and whenever a command finishes. The working-tree diff as `+N −M`. Click the counts to open the [diff overlay](/git/diffs). An unread marker on tabs where a coding agent finished its turn while you were elsewhere. Agent tabs also carry *Mark as Unread* in the right-click menu, once there is a finished turn to mark. If you would rather the counts not be clickable, turn off **Settings → Window & Tabs → Open diff preview from sidebar counts**. The branch and the numbers stay; they simply stop opening the overlay. ## Rearranging Drag a row to reorder it within its group, or drag a whole group header to move the group. A row cannot be dragged into a different group: a tab's group comes from its working directory, so `cd` is what moves it. Drag a row out over the panes instead and it stops being a session of its own: it lands as a pane of the tab on screen, wherever the highlight says. Dragging a pane the other way — by its grip, onto the sidebar — gives it a row of its own, between whichever two the caret lands between. See [making one tab a pane of another](/window/tabs-and-splits#making-one-tab-a-pane-of-another). ## Naming Almost no tab has a name of its own, so the sidebar falls back: 1. a name you set (right-click → **Rename Tab…**) 2. the title the shell is reporting — the running command, usually 3. **Shell 3**, numbered by position, when there is no title at all `tty7 tab ls` answers the same question with more evidence, because a script has no screen to look at. Its `label` falls back through the name, then the coding agent running in the tab ("Claude Code"), then the last segment of the working directory, then the foreground process — while `name` stays literal, so a script can tell a real name from a stand-in. ## The switcher ⌘ ⇧ O opens the workspace switcher: every workspace on every machine you are connected to on the left, that workspace's tabs on the right. Type to filter both, ⇥ to cross into the tab column, ⏎ to open. From here you can also rename a workspace, open one in a new window, stop one, or connect to a machine you have a profile for.