--- title: "The sidebar" description: "Tabs grouped by repository automatically, groups you pin kept above them, and 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 ## Groups The sidebar groups tabs by repository automatically. Pin what you want to keep. **Auto groups** sit below the pinned ones. Every tab you have not pinned is filed under the git repository its working directory is in — a linked worktree under the repository it belongs to, a submodule under itself — and an SSH tab under the host it is connected to, so `/home/ubuntu` on two machines is two groups. Everything else collects in a trailing **Ungrouped** section. An auto group follows the tab's working directory, not its history: `cd` into another repository and the row moves; switching branches never does. When its last tab leaves, the group is gone. **Pinned groups** sit at the top, each marked ◆ beside its name, in the order you put them, and stay until you delete them — an empty one keeps its place with a **+ New Tab** row. A tab in a pinned group never leaves it on its own. There are two kinds: - A **folder group** keeps a directory. A tab whose working directory *enters* the folder joins it — a tab opened there, a `cd` into it, or a worktree of the repository the folder is. When folders nest, the deepest one wins, so pinning a monorepo and one package in it files the package's tabs under the package. A tab you drag out while it is still inside stays out until it leaves the folder and comes back. Hover the header for the folder's path; click its ◆ to unpin it, and its tabs go back to auto groups. - A **label group** is just a name, for tabs that belong together for a reason no directory shows. Tabs go in and out of it by hand. Ways to pin: | To get | Do this | |---|---| | A folder group from an auto group | Click the ◆ on its header, or drag the header up among the pinned groups | | A folder group from a folder | Drop it from Finder onto the sidebar, choose **Pin as Group** on it in the Files panel, or run **Open Folder as Group…** from Search Everywhere | | A label group | Right-click a tab → **Move to Group → New Group…**, or run **New Group** from Search Everywhere | Right-click a pinned group's header to rename it, point it at a folder (**Set Folder…**, or **Use Current Tab's Folder**), clear its folder, open a tab in it, or delete it. Deleting a group closes nothing: its tabs go back to auto grouping. An auto group has no rename — pin it first. The **+** on a header opens a tab in that group's folder (a label group's opens where ⌘ T would), and ⌘ T itself joins the group of the tab you are in. Groups, their order, and which ones are folded are kept with the workspace, so every window onto it — and the next launch — shows the same thing. **Settings → General → Auto grouping** turns auto groups off. The tabs you have not pinned then sit in one flat list below your pinned groups, which show either way. ## 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. ## Rearranging Drag a row to reorder it within its group, or drag a group header to move the group — pinned groups among pinned groups, auto groups among auto groups. Drag a row onto a pinned group to put it there, or anywhere below the pinned groups to hand it back to auto grouping. A row cannot be dragged into an auto group: its membership comes from the 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.