Is there a desktop app or GUI for managing multiple Claude Code sessions in different projects?

Yes. Anthropic ships a Claude Code desktop app for macOS, Windows, and Linux (beta) whose sidebar runs several sessions in parallel, each with its own project folder, and it is free with your existing plan. Beyond it, VS Code’s Agents window, JetBrains Air, the Claude Squad TUI, and crystl all manage multiple sessions across multiple projects, with real differences in which agents they run and what they do when a session needs you.

Updated October 20, 2026.

This page covers each option, what it is good at, and where it stops. Disclosure before the comparison: crystl is our tool, and it is one entry in a field where the first-party app is the right answer for a lot of people.

The field at a glance

Tool Platforms Agents it runs Multiple projects at once Cost
Claude Code desktop app macOS, Windows, Linux (beta) Claude Code Yes, a project folder per session Included with your Claude plan
VS Code Agents window macOS, Windows, Linux Copilot, Claude, Codex (experimental) Yes, across workspaces Included with VS Code and a Copilot subscription
JetBrains Air JetBrains IDEs, browser, CLI Claude Agent, Codex, Junie, Copilot, OpenCode, anything over ACP Yes, several projects each with its own sessions Phased rollout; see JetBrains for current terms
Claude Squad anywhere tmux runs Claude Code, Codex, OpenCode, Amp Yes, one worktree per agent Free, AGPL-3.0
crystl macOS any CLI agent Yes, projects in one window Free tier; Guild $170/year or $18/month
tmux or iTerm2 by hand anywhere any Yes, a session per project Free

Tool capabilities were checked against each vendor’s own documentation on 20 October 2026. This category changes fast, so read the vendor page before you commit. Conductor, Vibe Kanban, and Sculptor are three more desktop options covered in the orchestration tool comparison.

Claude Code’s own desktop app

Anthropic’s Claude Code desktop app is the first thing to try, because it is free with your plan, it is cross-platform, and parallel sessions in different project folders is a feature it ships rather than a workaround. Anthropic’s desktop documentation describes the model directly: in the Code tab, each conversation is a session with its own chat history and project folder, independent of any other session, and the sidebar lists your sessions and lets you run several in parallel.

What the desktop app gives you:

  • A project folder per session. Before the first message you choose the environment, project folder, permission mode, and model for that session.
  • Session navigation that is actually built. Ctrl+Tab and Ctrl+Shift+Tab for next and previous session, Cmd+Shift+] and Cmd+Shift+[ on macOS, Cmd+N for a new session, and holding Cmd while clicking a session opens two side by side in split view.
  • Four execution environments. Local on your machine, cloud on Anthropic-managed infrastructure that continues even if you close the app or shut the computer down, SSH to a remote machine with the app as the interface, and WSL on Windows.

Where it stops:

  • It runs Claude Code. If you also run Codex, Antigravity CLI, Gemini CLI, or anything else, those sessions live somewhere else.
  • A session is a chat surface rather than a terminal. For work where you want to be in the directory running git, npm test, or a migration yourself, that matters.
  • Some limits are documented and worth reading first. An administrator can turn off local sessions, in which case your machine’s entry is greyed out in the environment selector. Cloud sessions cannot use bypass permissions. And for SSH sessions signed in with a Claude account, Anthropic’s own guidance is not to count on a task running overnight, because that sign-in is renewed only while Desktop is running and connected.

Try this first if you run Claude Code and nothing else. A meaningful share of people looking for a GUI for this are looking for something Anthropic already ships.

VS Code’s Agents window

VS Code’s Agents window is a dedicated window for running and watching several agent sessions, and it is the strongest option for people who want the editor and the agent roster in the same tool. Microsoft’s documentation describes it as a dedicated Visual Studio Code window for assigning higher-level tasks, coordinating work across projects, monitoring multiple sessions, and reviewing outcomes in one place, and states that the Agents window picks up your agent sessions across your workspaces.

Strengths:

  • Cross-workspace by design. Sessions from your different workspaces appear in the one window.
  • More than one harness. Copilot is the primary harness, with Claude available via API key or BYOK configuration, Codex as experimental and requiring a ChatGPT sign-in, and a local harness on desktop.
  • The editor is right there. Files, diffs, and a terminal pane are not a context switch.

Where it stops:

  • Not every session reaches the Agents window. Local harness sessions, and Codex sessions from the OpenAI extension, run only in the main VS Code window.
  • Claude and Codex arrive through configuration rather than as first-class installs. BYOK for Claude and experimental status for Codex are both worth testing before you depend on them.
  • The documentation does not describe a needs-attention signal. There is no documented indicator or notification for a session that is waiting on you, which is the thing that matters most once several sessions are running.

Try this if you already work in VS Code and Copilot is part of your setup.

JetBrains Air

JetBrains Air is the most agent-agnostic of the big-vendor options, and it is built around several projects at once rather than one. JetBrains describes Air as one system for building software with agents, working with the agents you already use: Claude Agent, Codex, Junie, Copilot, OpenCode, and any you can connect via ACP. On multiple projects it is explicit: keep several projects open, each with its own sessions, and track unread updates, changed files, and outgoing commits in all of them.

Air runs in JetBrains IDEs via a plugin, in a browser at air.jetbrains.cloud, and from a CLI, with mobile listed as coming soon.

Where it stops:

  • It is mid-rollout. JetBrains says cloud runs are already available for some customers in JetBrains IDEs and the browser, with rollout to remaining customers happening gradually over the coming months. The plugin is labelled Air-ALPHA, and Air Teams is early access.
  • Pricing and availability depend on when you read this. Check the JetBrains page rather than any third-party summary, this one included.

Try this if you are a JetBrains user, or if ACP-level agent neutrality is the feature you care about most.

Claude Squad

Claude Squad is the right answer for terminal people who want worktree isolation without writing the scripts. It is an open source TUI written in Go and licensed AGPL-3.0 that manages a tmux session and a git worktree for each agent and lets you tab between them, driving Claude Code, Codex, OpenCode, and Amp. No GUI, no install ceremony, and it works over SSH.

Where it stops: Claude Squad is a wrapper rather than a workspace. Review and merge are still your job, and the AGPL licence is worth a look if you plan to build on it internally.

Try this if you live in a terminal, want isolation per agent, and work on a remote box.

crystl

crystl is a macOS terminal built around projects and sessions in one window, and its design bet is on unblocking rather than spawning. Disclosure: this is our tool.

In crystl a project is a gem and an agent session is a shard. Both live in one window with a sidebar instead of being scattered across terminal tabs, and each gem carries its own sessions, its own approval mode, and its own icon and colour. Three things are different enough from the options above to be worth stating specifically.

Any CLI agent, not a fixed list. Claude Code, Codex, Antigravity CLI, and Kimi Code are the tested integrations, and anything else that runs in a terminal runs too. The options above each support a defined set.

Attention routing is the main feature rather than a side effect. Every project tile in the crystal rail carries a badge counting what needs a human: pending approvals, sessions waiting for input, and errored runs. The badge heats up as its oldest waiting item ages, so a request that has sat for ten minutes stops looking like one that arrived ten seconds ago. A pending approval arrives as a card naming the tool, the working directory, and the session that asked, answerable with Cmd+Return or Cmd+Esc. Auto-approval is set per project, so the three modes let a dependency-bump project run loose while the auth project asks about everything. If you came here from the symptom rather than the tool, that is the AFK permission-prompt problem.

It is still a terminal. Sessions are real shells, so you can run the migration yourself in the same window where the agent is working.

There is also a CLI the agents themselves can call, which lets one agent read another’s screen, send it input, or spawn a worker in its own worktree, and an iPhone app that pairs to your Mac and opens on the agents waiting on you.

Where it stops:

  • macOS only. Three of the five options above are cross-platform; crystl is not.
  • Approval depth varies by agent. It is deepest for Claude Code, partial for Codex, and other CLI agents are supervised at the terminal level.
  • The agent-callable control commands are paid. Reads are free on every tier. Spawning, sending, approving from the CLI, and the orchestration features need a Guild membership at $170/year or $18/month.

Try this if you run agents that are not Claude Code, if you want one window that spans every project, or if the thing that keeps costing you time is finding which agent is stuck.

tmux or iTerm2 by hand

A terminal multiplexer is the honest baseline, and it covers more than people expect. Claude Code ships --worktree to create a git worktree for a session and --tmux to create a tmux session for that worktree, so one agent on its own branch in its own session is a single command. For several, a session per project and a named window per agent is a setup many people build and keep.

Where it stops is specific and structural: tmux moves bytes between a process and a screen, so a blocked approval and an agent thinking hard look identical to it. We wrote that up in detail in the tmux setup people build for parallel agents.

Try this if you are on a remote host, on Linux with no GUI, or running three agents or fewer.

Which one fits

Pick by the constraint that actually binds you.

  • You run Claude Code and nothing else. The Claude Code desktop app. It is free, cross-platform, and built for this.
  • You want sessions to keep running with the laptop closed. The desktop app’s cloud environments.
  • You already live in VS Code. The Agents window.
  • You are a JetBrains user, or want ACP-level agent neutrality. JetBrains Air, accepting that it is mid-rollout.
  • You are on Linux or Windows and want a terminal answer. Claude Squad, or tmux by hand.
  • You run several different CLI agents, on a Mac, across several projects. crystl.
  • You have two agents and a mild annoyance. None of these. Two terminal tabs is a real answer and nobody should sell you a tool for it.

FAQ

Does Claude Code have an official desktop app? Yes. Anthropic ships a Claude Code desktop app for macOS, Windows, and Linux (beta). Each session in it has its own chat history and project folder, and the sidebar runs several in parallel.

Can one GUI show Claude Code sessions from different projects at the same time? Yes, in several of them. The Claude Code desktop app gives each session its own project folder. VS Code’s Agents window picks up sessions across your workspaces. JetBrains Air keeps several projects open, each with its own sessions. crystl puts each project in one window as a gem with its own sessions.

Is there a GUI that manages Claude Code and Codex together? Yes. VS Code’s Agents window runs Claude and Codex alongside Copilot, with Codex experimental. JetBrains Air supports both plus anything connected over ACP. Claude Squad drives both from a terminal TUI. crystl runs either along with any other CLI agent.

Which one tells me an agent is waiting for approval? This is where the options differ most, so test it rather than taking a feature list’s word for it. crystl is built around it: a per-project badge counts what needs a human and ages visibly, and approvals arrive as cards naming the session. VS Code’s Agents window documentation does not describe a needs-attention indicator. A terminal multiplexer cannot distinguish a blocked agent from a thinking one at all.

Do I need git worktrees for this? For more than one agent in the same repository, yes. Two agents in a single working directory will overwrite each other’s edits. See worktree vs branch and running two agents on the same repo.

How many sessions can one person actually manage? Most people top out around three to six on a single repository, limited by their own review capacity rather than by the tool. How many agents can you run covers why the number on a homepage is the wrong metric.

crystl is free. Sign up at crystl.dev/login.