Skip to content
§1

Ghostty Dock help

Every Claude Code session, one window.

The whole Ghostty Dock window: the sidebar of sessions on the left, three of them needing an answer, the selected session asking a multiple choice question in the middle, and Claude Burst's usage panel on the right.
The whole window. Left, the sidebar: three sessions need you, and each row shows what it is waiting on. Middle, the selected session asks a multiple choice question, under a line from Claude Burst saying it compacted the context in the background. Right, Burst's usage panel for that session. (The conversation is a made up example.)

Ghostty Dock is the Ghostty terminal with a sidebar down the left, like vertical tabs in a browser. Each Claude Code session is a row, coloured by whether it needs you, is running or has finished, with its context size and what it has cost so far. You stop hunting through tabs for the one that is waiting on a question.

Before and after.

Ten Claude Code sessions in plain Ghostty are ten tabs that all say Claude Code. You cannot tell which one is working, which one has finished and which one has been waiting on you for twenty minutes. In Ghostty Dock each one is a named row with its state, its colour and what it has cost.

A Mac running plain Ghostty: a stack of Ghostty windows, the front one with ten tabs all titled Claude Code, and ten identical Ghostty icons along the Dock at the bottom of the screen.
Before: plain Ghostty. A stack of windows, ten identical Ghostty icons in the Dock, and every tab says Claude Code.
Ghostty Dock with twelve sessions in the sidebar, coloured by project, two running with gold borders and the selected one raised on a drop shadow.
After: Ghostty Dock. Running sessions glow gold, the one you are in stands out on a shadow, and every row says what it is doing.
§2

Install

One line, nothing to build.

You need a Mac with Apple silicon (M1 or newer), macOS 13 or later and Claude Code.

  1. 1Open Terminal: press Cmd Space, type Terminal, press Return.
  2. 2Paste this line and press Return:
    curl -fsSL https://raw.githubusercontent.com/andrewbakercloudscale/ghossty-dock/main/get.sh | bash
  3. 3Ghostty Dock opens by itself. From then on it is in your Applications folder (~/Applications) and in Launchpad, like any other app. Drag it to the Dock to keep it there.

The installer downloads the latest release, installs the app and the small Claude Code hook that tells the sidebar what each session is doing, then opens it. macOS does not ask before opening it.

  • No Claude Code yet? Install it first:
    curl -fsSL https://claude.ai/install.sh | bash
  • macOS 13 or 14: run brew install jq first. macOS 15 and later include it.
  • To remove it:
    bash ~/.local/share/ghostty-dock/install.sh --uninstall && rm -rf ~/.local/share/ghostty-dock
§3

Your first session

Open a tab, start Claude.

  1. 1Press Cmd T or the + at the top of the sidebar. A new tab opens and a teal Shell row appears.
  2. 2Go to your project and start Claude Code, for example cd ~/code/my-app && claude.
  3. 3The row takes the project’s name and turns green while Claude works, peach when it asks you something and blue when it is done.
  4. 4Open a tab for each project. When one needs you, press Cmd Shift J (or Ctrl Opt J from any app) to jump straight to it.

Sessions already running in another terminal keep running there. To bring one in, end it and run claude --resume in a Ghostty Dock tab; the conversation carries on where it was. When Ghostty Dock restarts or updates, every session that was open comes back as a tab by itself.

§6

Working with a session

The buttons on each row.

  • Click the row

    Go to that session.

  • Compact (arrows pointing in)

    Compacts the session in the background with Claude Burst while it sits at its prompt, so you never wait for it. Greyed out while it runs.

  • Restart (circular arrow)

    Stops claude and resumes the same session in a fresh tab (Cmd Shift R).

  • Close (cross)

    Closes the tab. Cmd Shift T brings it back.

  • Undock (arrow out of a box)

    Moves the session to its own Ghostty window (Cmd Shift U). Its Dock icon in the sidebar brings it back.

  • Grip (six dots)

    Drag to put rows in your own order. The sort becomes As you drag them.

  • Right click

    Rename, Pin to the top, Move Up or Down, Colourise (pick from the list, or Colour… for the swatch grid), Compact, Restart, Undock, open its pull request or port, or Close.

Colours and groups

Give a session a colour with the palette button or right click, Colourise. Its row is tinted and its terminal takes a little of the colour too, so you can tell at a glance which session you are typing in. Colours, names and pins stay with the session across restarts. Settings, Sidebar, Groups folds rows under their folder or their colour. Thirty colours: twenty round the colour wheel and ten vivid ones (Scarlet, Blaze, Gold, Volt, Neon, Aqua, Electric, Ultra, Fuchsia, Flamingo) for the rows that have to stand out.

The bell

The bell keeps a list of notifications, with a red count of the unread ones. Click one to go to its session. Mark All Read clears the count, Clear empties the list, and the gear opens Settings, Bell, where you choose:

  • whether the bell shows in the sidebar at all
  • how many to keep: the last 50, 100, 200 or 500
  • what goes in it: a session needs you, a session finishes, a script sends one
  • whether going to a session marks its notifications read

The bell is separate from macOS notifications, which are set in Settings, Notifications.

Compacting without waiting

The Compact button needs Claude Burst. See Claude Burst below.

§7

Claude Burst

Compact without the pause.

Claude Burst is a free local gateway for Claude Code, from the same author. Ghostty Dock works without it. With it, sessions never stop to compact, each repository compacts at the size that costs least, and sessions working in the same repository stop treading on each other.

  • Pauseless Compaction

    The Compact button on a row, or right click, Compact (Pauseless), has Burst summarise the session in the background while you keep working. The summary swaps in with your next prompt, a line under the prompt says how much smaller the context got, and the row’s ctx figure drops with it. The button is greyed out while the session is busy.

  • Intelligent compaction

    Burst can also compact on its own, at a size it learns for each repository from what compactions saved there over the last 14 days.

  • Session coordination

    When several sessions in the sidebar work in the same repository, the first to edit a file owns it and commits it. Others can still edit it, but cannot sweep it into their own commit or overwrite it whole.

A session in Ghostty Dock: under the prompt, a Claude Burst line says compaction is done, 79% smaller, 702k to 148k. On the right, Burst's usage panel shows the context bar, Auto Compact at 175k (Intelligent) and the cost of each turn.
Burst in a Ghostty Dock tab. The lightning line under the prompt is Burst reporting a background compaction; the panel on the right shows the context, where it will next compact and what each turn cost.

Setting it up

  1. 1Click the Compact button (arrows pointing in) on any row. Without Burst it offers Set Up Claude Burst, which opens a tab running Burst’s one line setup. Claude Code says what will change and waits for your go ahead.
  2. 2Or paste the setup line into any tab:
    claude "$(curl -fsSL https://raw.githubusercontent.com/andrewbakercloudscale/claude-burst/main/SETUP_PROMPT.md)"
  3. 3Settings, Sidebar, Compaction then says Claude Burst is set up, with Repair, Turn Off and Turn On. Each runs in a new tab so you can watch it.
Settings, Sidebar, Compaction: Pauseless Compaction, Claude Burst is set up, with Repair, Turn Off and Turn On buttons.
Settings, Sidebar, Compaction.

Burst’s dashboard

Burst has its own app: press Cmd Space, type burst, press Return. These are the parts that matter most alongside Ghostty Dock. (Screenshots use example data.)

Claude Burst's Pauseless Compaction panel: 72 compactions in 30 days, biggest drop 946k to 60k, 1.79B tokens compacted, $321.84 saved after costs, and the settings for it.
Pauseless Compaction: how often it ran, what it saved, and whether it reports under your prompt.
Claude Burst's compaction mode set to Intelligent, with each repository's learned compaction size, what a compaction leaves, how fast context grows and how soon it pays back.
Intelligent compaction: a size learned for each repository from its last 14 days.
Claude Burst's session coordination: issues such as a session stopping with uncommitted work, who is editing what, and the sessions taking part with a Message button for each.
Session coordination: the sessions in your sidebar that share a repository, what each is editing, and anything left uncommitted.
§8

Keyboard shortcuts

Keys worth learning.

  • Cmd 1 to Cmd 8, Cmd 9Go to that session in the sidebar, or the last one
  • Ctrl Tab, Ctrl Shift TabNext or previous session, in the sidebar’s order (also Cmd Shift ] and [)
  • Cmd Shift JNext session that needs you, then finished ones
  • Ctrl Opt JThe same, from any app
  • Cmd PFind a session by name, folder or question
  • Cmd Shift AAgents across all sessions
  • Cmd Shift TReopen the last closed session
  • Cmd Shift RRestart this session
  • Cmd Shift UUndock this session to its own window
  • Cmd Shift SShow or hide the sidebar
  • Cmd commaSettings
  • Cmd ?This help page

Cmd 1 to 9 and next or previous follow the sidebar’s order while it shows. Everything else (Cmd T, Cmd W, splits) works as in Ghostty. Settings, Shortcuts lists them too.

§9

Agents and spend

What your sessions are spending.

Press Cmd Shift A or the people button. Activity shows four tiles (spending now, today, agents running, sessions that need you), which sessions used agents today and what they cost, background runs with no tab, then every subagent your sessions started: what it is doing, its model, tool calls, tokens and cost. Live, Today and All switch the time range; click a row to go to its session.

The Agents window on Today: spending now $9.46 an hour, $100 today, no agents running, nothing waiting, then agents used today grouped by session.
Agents, Activity, Today.

Set Up lists every agent Claude Code can start: yours, each project’s, the plugins’ and the built in ones, with how often each ran. Yours can be edited here (description, model, colour, tools and instructions); a plugin’s can be duplicated as yours to change it (Duplicate as Mine). The green plus beside a group makes a new agent there: type a name and Create. Revert undoes unsaved changes, Open in Editor and Show in Finder open its file, and Move to Trash deletes it. The question mark explains how to ask Claude for agents. In Activity, right click an agent for Copy Agent ID or Show Worktree in Finder.

Agents Set Up: a list of agents on the left and the selected agent's description, model, colour, tools and instructions on the right.
Agents, Set Up.
§10

Settings

Cmd comma, or the gear.

Seven tabs. The defaults suit most people; these are the ones worth knowing.

Sidebar

Sort: Alphabetical (rows never move), Needs you first, Running first, Tab order or As you drag them. Groups folds rows by folder or colour. Cost and the branch line can be turned off. Compaction sets up, repairs or turns off Claude Burst.

Settings, Sidebar tab: show the sidebar, sort, groups, cost, git line, Ghostty's tab bar, and Compaction with Repair, Turn Off and Turn On.
Settings, Sidebar.

Notifications

The Ctrl Opt J hotkey, the Dock badge, macOS notifications when a session needs you or finishes, and whether the window should come to the front for them. It only comes forward while you are in another app, and waits until you stop typing, so it never switches tabs under you.

Settings, Notifications tab: hotkey, Dock badge, notify when a session needs you or finishes, bring the window to the front.
Settings, Notifications.

Theme

Twenty themes (Catppuccin, TokyoNight, Dracula, Nord, Gruvbox, GitHub and more). The terminal and the sidebar change together. Your Ghostty config file is not touched.

Settings, Theme tab: a theme menu set to GitHub Light Default with a preview of the state colours.
Settings, Theme.

App

Reopen Claude sessions when Ghostty Dock starts brings every open session back after a quit, crash or update. Open at login, and Edit Ghostty Config for fonts and keys.

Settings, App tab: reopen sessions at start, open at login, version, and Edit Ghostty Config.
Settings, App.
§11

Updates and sharing

Staying current.

Ghostty Dock checks GitHub a few seconds after it opens and every 6 hours. When there is a new version the gear turns green and flashes. Click it, then Update: it installs the new version and restarts once your sessions are quiet. They come back as tabs.

The About tab (also Help, About Ghostty Dock) shows your version and has Share with a friend, which sends the install line by Messages, WhatsApp, Mail or AirDrop. Copy message puts it on the clipboard instead.

Help, Ghostty Dock Help (Cmd ?) opens this page. What changed in each version is in the release notes on GitHub.

Settings, About tab: Ghostty Dock version, Share with a friend, Copy message, and an Updates card saying Up to date with Check for updates.
Settings, About.
§12

Scripting

Drive it from a script.

The ghostty-dock command talks to the running app, for scripts and other agents. Name a session by its name in the sidebar, its folder, its session id or the start of its name.

  • ghostty-dock list

    Every session: status, name, branch, ports, cost and id.

  • ghostty-dock focus aws-cli

    Go to its tab.

  • ghostty-dock send aws-cli "run the tests" --enter

    Type into it.

  • ghostty-dock read aws-cli --lines 20

    What is on its screen.

  • ghostty-dock wait aws-cli 'passed|failed' --timeout 600

    Wait until its screen matches.

  • ghostty-dock notify "Deploy done" "prod is on 1.4.2"

    A notification from a script.

  • ghostty-dock open ~/code/repo --command claude

    A new tab in that folder.

§13

Questions

Common questions.

  • Does it change my normal Ghostty?

    No. Ghostty Dock is a separate app with its own name and settings. It reads the same Ghostty config file for fonts and keys, and only its Theme setting overrides colours, inside Ghostty Dock.

  • Can I run Ghostty and Ghostty Dock side by side?

    Yes. Sessions in plain Ghostty keep working; they just do not appear in the sidebar.

  • Does it run on an Intel Mac?

    No. It is built for Apple silicon (M1 and later) only.

  • What about more than one window?

    The sidebar lists the tabs of every Ghostty Dock window. Undock moves one session to a window of its own; its row stays in the sidebar to bring it back.

  • Where do I see what changed in each version?

    The release notes on GitHub list every version.

§14

Problems

If something is not right.

  • A session never shows Needs you or Running

    The state comes from a Claude Code hook the installer adds to ~/.claude/settings.json. Sessions started before the install need a restart: click the row’s Restart button. If it still stays Shell, run the install line again; it puts the hook back.

  • A row says Running but the session stopped

    Update to the latest version. A turn stopped with Esc shows Idle within a few seconds.

  • Sessions did not come back after a restart

    Settings, App, Reopen Claude sessions when Ghostty Dock starts must be on. The sidebar offers Reopen for any that did not start, and sessions already open elsewhere are skipped so none runs twice. The log is ~/.local/state/ghostty-dock/restart-dock.log.

  • I quit Ghostty Dock and my sessions ended

    Quitting ends what runs in it, like any terminal. Use the Restart button instead: it waits until sessions are quiet and brings them back as tabs.

  • Restart says it waits for a session to finish, and never does

    Update to 1.0.113 or later: a turn that ended on an error or Esc now counts as finished. Or click the Restart button again and choose Restart Now, which does not wait (Cancel Restart stops it).

  • The window jumps to the front by itself

    That is Bring the window to the front, for a session that needs you or finishes. Turn it off in Settings, Notifications. If you only just switched away (within 3 seconds) it plays a sound instead of jumping.

  • A session I started in another terminal is not in the sidebar

    The sidebar lists sessions running in Ghostty Dock tabs. Quit it there, open a tab here and run claude --resume to pick it up.

  • Update does nothing

    The log is ~/.local/state/ghostty-dock/update.log. Running the install line again also updates.

  • Something else

    Open Console.app and search for ghosttydock, then open an issue on GitHub with the text from Settings, About, Copy details.

§15

Ghostty help

Fonts, colours and keys are Ghostty’s.

Ghostty Dock is built on Ghostty 1.3.1, so everything about the terminal itself (its config file, themes, fonts and key bindings) is in Ghostty’s own documentation. Settings, App, Edit Ghostty Config opens the file.