Sessions 0.9 · for Claude Code

Sessions keeps all your Claude Code terminals in a single window. A blinking row needs you

A native Mac app for running many Claude Code sessions side by side. They're sorted by project and each shows a live status, so you see at a glance which are waiting on you, which are working and which just finished.

macOS 14+Apple SiliconSwift + SwiftTermNo dependencies besides Claude Code
The Sessions window: a session list grouped into Return to, Needs you, Finished, Idle, Side projects and Archived, with a Claude Code terminal on the right.

Why it exists

With 20–30 Claude Code sessions across repos and worktrees, terminal tabs stop working. You lose track of which session is waiting on a question, which is still working and which finished ten minutes ago.

Real terminalsEach session is the real Claude Code CLI in a fast GPU-drawn terminal. You type straight into Claude.
Live statusEvery row shows Needs you, Working, Background, Finished or Idle, updated as Claude works.
Survives the appQuit, crash or update the app: sessions keep running, and the app reattaches with full scrollback.
Review changesSee a session's branch like a merge request, comment on lines, send the comments to Claude.
NotificationsA Mac notification and Dock badge when a session needs you or finishes.

Status you can trust

Each state has its own shape, colour and motion, so the list reads even in greyscale. Only the states where something is happening move. When the status can't be read, the app says so instead of guessing.

Animation
The seven status icons side by side, animated: Needs you blinks, Working's dots light up in turn, Background breathes.
Needs you
Claude asked a question or wants permission
Working
Claude is busy on a turn
Background
Waiting on a background command
Finished
Done, and you haven't looked yet
Idle
Done and seen
Exited
Ended; click to resume
Unknown
Status can't be read
Animation

The list, live

The orange cursor on "Round order totals" blinks until you answer Claude. Nothing else moves, because nothing else needs you.

The session list with the Needs you row's orange cursor blinking.
Screenshot

Claude asks, the row waits

Claude asks whether order totals round half up or half to even. The session sits under Needs you until you pick an answer.

A session where Claude asks whether order totals should round half up or half to even.

Organised your way

One tab per project, each in its own colour. Git worktrees belong to their repo's tab, and a project needn't be a git repo.

Animation · 3 steps

Start one from the header New in 0.9

  1. Claude and Terminal sit in the list header, and a click starts one where you are
  2. The Claude arrow lists every project, and a new worktree
  3. Terminal has the same menu, for a plain shell
The list header's Claude and Terminal buttons, with the Claude menu open on the projects shop-api and storefront and In a New Worktree, then the same menu on Terminal.
Animation · 2 steps

Right-click a session

  1. The menu: return mark, done, rename, mute, sort by hand, disconnect, archive
  2. Move to Group puts it in one of your own sidebar groups
Right-click menu on a session with Move to Group open.
Animation · 4 steps

Archive, then bring it back

  1. Hover the Terminal row and click its archive button
  2. It moves to Archived
  3. Right-click it: Restore & Resume
  4. It's back in the list, running
A terminal session is archived from its row, then restored with Restore and Resume.

Review Claude's changes New in 0.7

Read a session's branch like a merge request, comment on the lines you question, and hand the comments to Claude with the file, line numbers and code attached.

Animation · 7 steps

From diff to Claude's prompt

  1. A session has finished editing
  2. Open Changes: its branch, like a merge request
  3. Drag over line numbers 21–22
  4. Start the comment
  5. Finish it and save
  6. The comment sits on its lines
  7. Add to Prompt puts it in Claude's prompt
Walkthrough: open Changes, drag over two lines, write a comment, save it, then Add to Prompt.
Screenshot

The Changes view

Files on the left with their added and removed counts, one file at a time on the right, and a saved comment under lines 21–22.

The Changes view with a file list and a saved comment under lines 21 and 22.

Lighter and steadier New in 0.8

Many sessions add up, so 0.8 gives memory back and removes small snags.

Updates itself New in 0.9

Sessions checks for a newer version when it opens and every six hours. It shows a banner, and from 0.9 it can install the update for you.

The top of the Sessions window. A banner reads Sessions 0.9 is ready, You have 0.8, with the buttons Restart to Update, Later and Skip This Version.
Once the download is checked, the banner says Sessions 0.9 is ready. Restart to Update installs it, Later waits until the next launch, and Skip This Version hides it.

Never lose a session

A small background host owns every terminal and outlives the app.

The small things

Screenshot

Links in the header

Top right of the header: merge request !38, coloured by its state, and the artifact "Shipping rules overview".

A session header showing merge request !38 and an artifact link.
Animation · 5 steps

Drafts

  1. The Drafts button in the session header
  2. Messages written ahead, per session
  3. Write one while Claude works
  4. It waits in the list
  5. Insert puts it in Claude's prompt
The Drafts popover: a new draft is written, saved, and inserted into Claude's prompt.
Animation · 2 screens

Help menu

Keyboard Shortcuts (⌘/), then What's New. It also opens once after each update, and now starts with 0.9.

The Keyboard Shortcuts sheet, then the What's New sheet listing version 0.9.

Keyboard shortcuts

⌘N
New Claude session
⌘T
New terminal
⌘W
Archive the session you're looking at
⇧⌘W
Close the window
⌘1
All projects
⌘2 – ⌘9
Project tabs, in order
⌘+ ⌘- ⌘0
Terminal text size
⌘↓ ⌘↑
Next or previous file in Changes
⌘D
Drafts
⌘/
All shortcuts

Try it

Download Sessions 0.96.4 MB · macOS 14+ · Apple Silicon

Check the download: shasum -a 256 Sessions-0.9.zip in Terminal should print70e066a34b0ff8cd6f7ad05b82e22bb4e0f7a6fccf5a9481c8ba5afc6224e174

  1. Unzip Sessions-0.9.zip and move Sessions to Applications.
  2. The first open is blocked because the app isn't signed. Go to System Settings › Privacy & Security and click Open Anyway. You only do this once.

From here on Sessions updates itself: a banner offers each new version and Restart to Update installs it. A copy older than 0.9 can't do that yet, so install 0.9 by hand this one time.

Needs an Apple Silicon Mac on macOS 14 or later, and Claude Code with claude on your shell PATH (2.1.309 or later for the Background status). Optional: glab for merge request states.

Changelog

Every version so far, newest first. The same notes open in the app under Help › What's New.

0.93 changes
  • Sessions tells you when a newer version is out. A banner offers Download, Later and Skip This Version, and a notification comes once per version. It checks when it opens and every six hours; Sessions › Check for Updates… asks on demand, and Settings has the update address.
  • An update installs itself. Sessions downloads it in the background and checks it against a signing key built into the app, and Restart to Update swaps it in and reopens. Running sessions keep going. Copies before 0.9 have no key, so they install 0.9 by hand once.
  • The session list header has Claude and Terminal buttons. A click starts one where you are; the menu starts one in any project's main folder, or in a new worktree.
0.811 changes
  • Settings can disconnect Claude sessions that sat idle for 1 to 24 hours, to free the memory an idle Claude keeps, about 220 MB each. Sessions waiting for you, working or on screen stay. Resume brings one back with its conversation.
  • Option types what your keyboard puts on it, such as @, { and } on Swedish and Danish layouts. Option with the arrows or Backspace still moves or deletes a word. If you used Option for Claude's own shortcuts, such as Option+P, ⌘⌥O switches a terminal back until the app quits.
  • In Both, the session list makes room, so neither the terminal nor the changes are cut off in a small window.
  • Terminals keep 1,000 lines to scroll back through instead of 500.
  • Closing a bash terminal also ends the jobs it started in the background.
  • A terminal no longer keeps the keyboard mode of a program that has quit, such as Claude or vim, after the app reopens.
  • Pressing Esc in Claude no longer shows "[Request interrupted by user]" as your last message.
  • Shift-click and Select All in the session list keep the open session on screen.
  • New Session on a session whose worktree folder was deleted starts in the project instead of adding an extra project tab. A branch with a slash, such as feature/foo, gets one worktree section, not two.
  • A session's time no longer jumps to when Claude last compacted its context on its own, also after the app reopens.
  • The What's New window fits a small window, and when the session host can't start because its folder path is too long, the alert says so.
0.77 changes
  • You can review a Claude session's changes in the app. The Terminal, Changes and Both switch at the top right shows its branch against main like a merge request, uncommitted work included, and the window button opens it in its own window.
  • Click a line number to comment on that line, or drag over several. Comments stay on their lines while Claude keeps editing. Send gives Claude all of them in one message, with the file, the line numbers and the lines; Add to Prompt puts them in the prompt for you to add to.
  • Right-click a merge request link to remove one the app picked up by mistake. Restore Removed Links, on a link or in the session's menu, brings them back.
  • Your last message keeps its line breaks in the header.
  • The open session shows its time in the list like the others, with its archive button on hover.
  • Projects have 12 colours, the most distinct first. Existing projects may change colour once.
  • The Colour and Move to Group submenus stay open while Claude works.
0.62 changes
  • Claude in full screen keeps the terminal scroll speed when you spin the mouse wheel fast, and a new speed applies at once, also in sessions already running.
  • The scroll speed goes up to 10×, and you can type it in Settings.
0.53 changes
  • Opening an older session no longer puts older numbers back in the usage bar. Its tooltip says when the numbers last came in, and the bar fades once they're over 10 minutes old.
  • A session shows only the merge requests and artifacts it names itself, not ones quoted in tool output such as artifact templates, a Slack channel or git history. Links saved before are checked again once.
  • Settings has a terminal scroll speed. Claude in full screen takes it when a session starts.
0.41 change
  • Clicking the session list, even its empty space, no longer takes typing away from the terminal on screen.
0.38 changes
  • Archive from the session list: hover a row, or use the Archive button in the session header. Archiving selects the next session.
  • Restore & Resume brings an archived session back in one click. Delete removes it from the list.
  • The app reopens on the session you had selected.
  • With no session open, the empty pane offers New Session, New Terminal or Add Project.
  • Folders are called projects, since they needn't be git repos.
  • The right-click menu on sessions works again.
  • Naming a new group right after dropping sessions on it works.
  • Settings no longer cuts off its labels, and the first window opens larger.
0.210 changes
  • Keyboard shortcuts for new sessions, archiving, project tabs and text size. Help › Keyboard Shortcuts (⌘/) lists them.
  • ⌘W archives the session you're looking at instead of closing the window. ⇧⌘W closes the window.
  • An archive button in the session header.
  • The session list keeps its width when you reopen the app.
  • Links and header buttons show a pointing hand.
  • Settings has the interface and terminal text sizes.
  • Any group can keep your own order: click the arrows at the end of its title, then drag sessions up or down.
  • Dragging works wherever you let go: onto a session, a group's title or the gap between groups. A dragged group shows its place between groups.
  • Archiving or disconnecting asks first when something is still running: Claude, or a command in a terminal such as a build, a server or another AI CLI.
  • This window, once after each update. Help › What's New opens it again.
0.11 change
  • The first version shared with colleagues: Claude sessions and terminals for each project, with their status, merge requests, artifacts and drafts.