Your Claude Code sessions, back where you left them.

ccshift saves every open session in tab order and restores them all with one command. Readable names, search across old sessions, context warnings and handoff included. Works with Codex CLI and Gemini CLI too.

curl -fsSL https://www.timileyin.dev/ccshift/install.sh | sh

The installer offers to turn on autosave. ccshift keeps itself up to date, and ccshift uninstall removes everything.

Linux macOSBeta WindowsBeta

ccshift
$ ccshift ls
#  CODE  NAME                   STATUS   CTX
1  KTR   api · PAY-2193         idle     41%
2  MDB   web · checkout-v2      busy     72%!
3  HZP   docs · Install guide   waiting  18%

# after a restart
$ ccshift restore
work: opening 3 sessions in kitty
  ✓ api · PAY-2193
  ✓ web · checkout-v2
  ✓ docs · Install guide

See it run

List, save, close every tab, restore, search old sessions, jump to one from the picker.

ccshift in tmux
ccshift lists three sessions, saves them, restores them after the tabs close, searches past sessions and jumps to one from the picker

Everything a long session needs

One small binary. No daemon, nothing running in the background.

Restart without losing your place

One command reopens every session in its own tab, in the order you had them, each resumed where it stopped.

restore
$ ccshift restore
work: opening 3 sessions in kitty
  1. api · PAY-2193         ~/dev/api
  2. web · checkout-v2      ~/dev/web
  3. docs · Install guide   ~/dev/docs

Works with your terminal

Where a terminal reports its tab order, ccshift reads it. Everywhere else it keeps the order you last restored.

TerminalOpens asTab orderTitles and focus
tmux, kitty, WezTerm, zellij, KonsoleTabsRead liveYes
GNOME Terminal, Ptyxis, Tilix, Xfce TerminalTabsRememberedNo
Alacritty, foot, GhosttyWindowsRememberedNo

Commands

The full reference is in the README.

ccshiftPick a session from a list
ccshift findSearch past sessions
ccshift lsList sessions in tab order
ccshift renameName a session yourself
ccshift saveSave the layout now
ccshift focusJump to a session's tab
ccshift restoreReopen everything saved
ccshift handoffContinue in a fresh session
ccshift newStart a named session
ccshift doctorCheck the setup
ccshift initTurn on autosave
ccshift updateInstall the latest version
ccshift uninstallRemove ccshift completely