Ghostty is a fast, native terminal, and one of the most common questions from people setting it up is whether it can show tabs vertically — a side list of tabs down the edge of the window instead of a horizontal row across the top. It is a familiar layout from browsers like Arc, Edge, and Firefox, and it scales much better once you keep many sessions open.
This article explains how tabs work in Ghostty today, why a vertical or side layout is hard to get there, and how Otty — a native macOS terminal that reads Ghostty-style configuration — ships vertical tabs as its default layout.
How tabs work in Ghostty
On macOS, Ghostty uses the native macOS tabbing model, which places tabs in a horizontal strip at the top of the window. That gives you system-native behavior — tab switching shortcuts, the tab overview, and full-screen tabs — but the orientation is fixed: tabs run left to right across the top.
As of this writing, Ghostty does not ship a built-in vertical or side tab layout where tabs are listed down the left or right edge of the window. Terminal projects move quickly, so if you are evaluating the current state, check the Ghostty documentation for the version you are running.
Why people want vertical tabs in a terminal
Vertical tabs are not only an aesthetic preference. They solve real problems once you keep more than a handful of sessions open:
- Readable titles. A horizontal strip truncates tab titles fast. A vertical list gives each tab a full-width row, so
api-server,web-client, andmigrationsstay legible. - Scales with tab count. Ten or twenty terminals are painful to scan in a top strip. A vertical list stays scannable because you read it top to bottom.
- Uses wide displays. On a wide monitor there is plenty of horizontal room to spend on a sidebar, while vertical space is the scarce resource for terminal output.
- Matches modern browsers. Arc, Edge, and Firefox trained a lot of people to expect a side tab list, and that habit carries straight over to the terminal.
Workarounds in Ghostty
There is no native side-tab layout in Ghostty, but people approximate one in a few ways:
- tmux with a status line. Run tmux inside Ghostty and configure its status bar to list windows. This gives you a persistent session list, but it lives inside a single pane and is styled by tmux, not the terminal.
- A tiling window manager. Tools like yabai or Aerospace can arrange terminal windows so you navigate between them spatially instead of through tabs. That replaces tabs rather than turning them vertical.
- Splits instead of tabs. Lean on split panes for parallel work and keep tab count low. That reduces the need for a long tab list, but it does not give you a vertical tab index.
These help, but none of them is a true native vertical tab bar. If that is specifically what you want, a terminal that supports it directly is the cleaner answer.
Otty: vertical tabs as the default layout
Otty is a native macOS terminal whose default layout is a vertical tab sidebar on the left of every window. You do not have to enable anything — open Otty and your tabs are already a vertical list.
The layout is controlled by a single Ghostty-style configuration key:
# Vertical tab sidebar on the left (this is the default)
window-layout = sidebar-left
# Prefer a horizontal bar instead? Both are supported:
# window-layout = tabs-top
# window-layout = tabs-bottom
Because the sidebar is a first-class layout and not a workaround, it comes with the organizational features a long tab list actually needs:
- Grouping by project or by date, so related sessions cluster together.
- Sorting by created time, updated time, or a manual order you set by dragging.
- Custom dividers with your own labels to section the list.
- Drag to reorder tabs within the sidebar.
- Tear a tab off into its own window, or drag a tab onto another tab's pane area to merge it as a split.
- Status badges on each row — running, done, awaiting input, SSH, and more — so you can see at a glance which session needs you.
You can also auto-hide the sidebar when you only have a single tab, so it stays out of the way until you need it:
# always | default | auto
auto-hide-tabs-panel = auto
And Otty has full split panes — horizontal and vertical — so a vertical tab list and a split layout are not mutually exclusive.
Migrating from Ghostty is low-friction
Otty uses the same Ghostty-style key = value configuration format, so the syntax you already know carries over. Setting your tab orientation is one line (window-layout), and the rest of your config reads the way you expect.
If you are weighing the two terminals more broadly — not just on tabs — see Otty vs Ghostty for a side-by-side of where each one fits.