---
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.
## 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) and *Flat*.
## 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: with the default repo
grouping a tab's group comes from its working directory, so `cd` is what moves
it.
## 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.