Skip to content
All writing
Engineering4 min read

claix: a terminal UI for your Claude Code sessions

Claude Code scatters your sessions across every project you have ever opened, with no way to find the one you want. claix indexes them all, makes them searchable, and resumes any of them in the right directory.


Browse, search, tag, resume. One binary, no config.

The problem

I use Claude Code across a dozen repositories. Sessions accumulate in each one, and after a few weeks the picture looks like this:

  • I remember solving something, but not which project I was in
  • I remember the conversation, but not the day
  • I want to pick up where I left off, and the only way is to cd around guessing

Claude Code stores every session locally. The data is all there. What is missing is anything that treats those sessions as a collection rather than a per-directory accident.

That is a small, specific, boring problem. It is also one I hit three or four times a week, which is usually the sign that something is worth building.

What claix does

brew install sayantanghosh-in/tap/claix
claix

On first launch it offers to set up auto-sync hooks. Press Enter and you are done — it scans and indexes every Claude Code session across every project you have ever opened.

After that it is a list you can actually work with:

Fuzzy search/ filters by title, branch, project or tag as you type
Smart titlesgenerated from the PR, Claude's responses, or your first message — not the filename
One-key resumeEnter opens Claude Code in the correct directory
Tags and notest to tag, x to untag, n to annotate
Clickable PR linksterminal hyperlinks straight to GitHub
Dashboardactivity sparkline, token usage, busiest projects

There is also an MCP server, so Claude can tag and query your sessions mid-conversation — which is a strange and slightly recursive thing to have built, and genuinely useful.

Why Go, and why a TUI

Three reasons, in order of how much they mattered:

It has to start instantly. This is a tool you reach for because you are interrupted. Anything with a runtime to boot — Node, Python — is already too slow for something you open twenty times a day. A Go binary is running before you have lifted your finger off Enter.

It has to be one file. brew install and you are done. No version manager, no virtualenv, no node_modules. The whole point is that it is there when you need it.

The terminal is where the sessions already are. Claude Code runs in a terminal. Switching to a browser to find a terminal session would be a strange thing to ask of anyone.

I built it with Bubble Tea, which makes a TUI feel like writing React — a model, a view, and messages that update state. If you have written a reducer you already know how it works.

The part that took the longest

Not the UI. Not the search. Titles.

A session file does not have a name. It has a directory, a timestamp, and a transcript. Showing a list of timestamps is useless — you cannot recognise your own work in 2026-04-02T14:22:09.

So claix derives a title, in order of preference:

  1. The pull request the session is associated with, if there is one
  2. Something Claude said that reads like a summary of the task
  3. Your first message, trimmed

The third is the fallback and it is the worst one, because first messages are often "hey can you look at this". The first is the best, because a PR title is a human-written summary of exactly the thing the session was about.

Getting this hierarchy right is the difference between a list you scan and a list you squint at. It is also the kind of problem that looks trivial on a whiteboard and takes an afternoon in practice.

Six themes, because of course

default, dracula, catppuccin, nord, gruvbox, tokyonight.

This was an hour of work and it is the feature people mention most. There is probably a lesson in that.

Where it is going

It is at v0.1.0 — early, but the core loop works and I use it every day. Next up is better session export, and smarter grouping for projects where sessions run long.

brew install sayantanghosh-in/tap/claix

It is open source, MIT, and runs on macOS, Linux and Windows as a single binary. If it breaks, open an issue — at this stage it very well might.


claix on GitHub · built with Bubble Tea

  • Claude Code
  • Go
  • Terminal
  • Open Source
  • Developer Tools