🗂️xshell: pick your agent sessions back up
A Claude Code session manager with a real interface: every session, every project, found and resumed in one click. Handy on your working machine, but it's a local tool: we'll see why it's a poor fit for the screenless mini-PC.
After a few weeks, your agent has left traces everywhere. One session over here for the website, another over there for a script, three half-finished conversations in terminals you closed without thinking. Claude Code carefully keeps all of it in ~/.claude, but finding it again on the command line means knowing the --resume command, remembering which project, digging around. It works, but it isn’t comfortable.
xshell takes that pile of sessions and gives it a storefront. It’s a desktop app that reads your ~/.claude folder and shows, in a real interface, every project and every past session. You browse, you click, the session resumes in a terminal with its history. Nothing more, nothing less: a session manager built for Claude Code.
What it actually does for you
- Find a session without thinking. A sidebar lists your projects; each project unfolds its sessions. You recognize yesterday’s, you click, it comes back with its full history.
- Work in tabs. Several sessions open at once, each in its own tab, groupable side by side in a single pane so you can run them in parallel.
- See where you stand in git. A built-in git panel shows the branch, the worktrees and the number of changed files, without leaving the window.
- Know what it costs. xshell shows cost, context used and rate limits per session and across your whole account. Very handy for not discovering the bill at the end of the month.
- See the agent’s context. A tree recaps the skills, sub-agents and MCP servers active in the session, so you know what it’s working with.
- Move fast from the keyboard. Ctrl + K opens a quick-action palette: jump between projects, run a command, never touch the mouse.
Installing it
xshell is a real terminal (it uses native PTYs and xterm.js), not a cut-rate emulator: your sessions run inside it just like in any terminal.
Run the installer
On macOS or Linux, one line is enough:
# Downloads the right binary for your platform into ~/.xshell/bin/ and adds it to PATH
curl -fsSL https://xshell.sh/install.sh | bash
On Windows, in PowerShell:
irm https://xshell.sh/install.ps1 | iex
The script grabs the right binary from the latest GitHub release. If you’d rather use a classic installer, the project also offers downloadable files (.dmg for macOS, .deb/.rpm/.AppImage for Linux, .msi/.exe for Windows) on its releases page.
Open the app
On first launch, xshell reads ~/.claude and rebuilds the list of your projects and sessions on its own. Nothing to configure: if Claude Code has already run on the machine, it’s all there.
Customize (optional)
Give your projects a name, a color, an emoji. Pin the important ones to the top of the sidebar. It’s cosmetic, but with ten projects on the go it genuinely helps you find your way.
The limit to know: it doesn’t drive remotely
This is what decides whether xshell belongs in your setup. Let’s be clear: xshell reads the ~/.claude of the machine it runs on, and nothing else. No “remote client” mode that would SSH into the mini-PC to display its sessions. Its data is read locally, and nothing is sent over the internet.
In practice, that gives you two scenarios:
- You run the agent where you are (on your Mac or your work PC). The sessions live locally, xshell lands right on them, everything is smooth. That’s what it’s built for.
- Your agent runs on the remote, screenless mini-PC (this guide’s setup). Then xshell would need to run on the mini-PC, behind a graphical desktop you watch through VNC (see Working remotely). Technically possible, but for a deliberately headless machine it’s heavy and against the grain.
The honest bit
xshell works no magic: it replaces neither the agent nor your discipline. Your memory files, your skills and the way you frame a project remain what makes the difference. xshell is the comfort layer on top: find, resume, keep an eye on costs.
It’s also a young, community project. It moves fast, it can have its little bugs, and it depends on volunteers’ goodwill. Nothing serious: it doesn’t touch your data (it only reads ~/.claude), and you can uninstall it without breaking anything in your Claude Code setup. Worth a try if you work directly on the machine, worth skipping for remote driving.