sessy is a terminal-native session picker and launcher for Claude Code and Codex.
It stays in the shell: no browser, no server, no network round-trips, and a single binary per platform.
CI produces two release archives:
sessy-<version>-darwin-arm64.tar.gzsessy-<version>-linux-x86_64-musl.tar.gz
Extract the archive for your platform, move sessy onto your PATH, then verify the install:
tar -xzf sessy-<version>-darwin-arm64.tar.gz
install -m 0755 sessy-darwin-arm64/sessy /usr/local/bin/sessy
sessy doctorYou can also build from source with opam:
opam install . --deps-only --with-test
opam exec -- dune build --profile release ./bin/main.exe
install -m 0755 _build/default/bin/main.exe "$(opam var bin)/sessy"If Claude Code or Codex already use their default local storage paths, sessy works without extra configuration.
sessy
sessy last
sessy list --jsonUseful follow-ups:
sessy resume <id>resumes a specific session.sessy preview <id>shows the hydrated metadata and launch command.sessy doctorchecks config, source paths, parser health, and tool binaries.sessy last --dry-runprints the exact command instead of launching it.
Sessy reads configuration from:
~/.config/sessy/config.toml./.sessy.toml
No config is required if you use the default Claude Code and Codex paths. A small override looks like this:
[ui]
scope = "repo"
preview = trueThe full example config lives in fixtures/config.toml.
- macOS packages are native single-file binaries for the runner architecture. They do not require OCaml or opam on the destination machine.
- Linux packages target
x86_64with a musl static build path. - CI builds, tests, packages, and uploads both archives on every push and pull request.
The product architecture is documented in .context/architecture.md.