by dob323
Many AI coding sessions. One place to see which one needs you. A local, keyboard-first picker for Claude Code, Codex, and shell sessions that survive SSH disconnects.
# Add to your Claude Code skills
git clone https://github.com/dob323/session-kitGuides for using cli tools skills like session-kit.
session-kit is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by dob323. Many AI coding sessions. One place to see which one needs you. A local, keyboard-first picker for Claude Code, Codex, and shell sessions that survive SSH disconnects. It has 77 GitHub stars.
session-kit's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/dob323/session-kit" and add it to your Claude Code skills directory (see the Installation section above).
session-kit is primarily written in Python. It is open-source under dob323 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh session-kit against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Many AI coding sessions. One place to see which one needs you.
Session Kit is a local picker for Claude Code, Codex, and shell sessions. Type kit and every session you are running is in one list, with a stable number, a name, and a state word that says whether it is waiting on you or still working. The sessions run on the host, so closing the terminal or dropping SSH does not end them.
Public beta.
v0.4.2supports Linux with systemd and macOS 14 or newer. Start on a single trusted Unix account where provider conversations can be recovered. Session Kit is not a security boundary against another process already running as the same Unix user.
| Capability | What it means |
|---|---|
| One list | Managed Claude Code, Codex, and shell sessions in a single keyboard-first picker. |
| States that mean something | question, needs you, working, and idle have exact definitions and sort consistently. |
| Stable session numbers | Open, inspect, close, and find sessions without copying internal shpool IDs. |
| Survives disconnects | The session stays on the host when a terminal window closes or SSH drops. |
| Guarded actions | Every mutation rechecks exact live identity immediately before it runs, and refuses on any doubt. |
| Recoverable conversations | Closing a Claude Code or Codex session records the exact conversation for restore. |
| Isolated working copies | A delegated session gets its own git worktree on its own branch, and hands it back when it closes — kept instead, with the reason named, whenever giving it back could lose work. |
| Account-aware | Provider accounts are enrolled and shown per session. A conversation whose weekly quota runs out is carried to another enrolled account once, and you are told afterwards. |
| Local only | No hosted account, no analytics, no update beacon, no telemetry. |
| Provider-aware display | Names, account aliases, models, terminal titles, and per-session colors stay visible without becoming identity evidence. |
It fits best if you run several AI coding sessions at once, work on a remote host over SSH, and want to know at a glance which session is blocked on you rather than opening each one to find out.
Here is what it does not do:
If what you actually need is reviewing the diff each agent produced, a different tool will serve you better.
Session Kit installs per user, on the Linux or macOS machine where the work runs.
mkdir session-kit-download
cd session-kit-download
gh release download --repo dob323/session-kit --pattern 'session-kit-*'
if command -v sha256sum >/dev/null; then
sha256sum --check session-kit-*.sha256
else
shasum -a 256 --check session-kit-*.sha256
fi
tar -xzf session-kit-*.tar.gz
cd session-kit-*/
./install.sh --check
./install.sh
session-kit doctor
session-kit services enable
session-kit doctor
./install.sh --check is read-only. Do not work around a refusal — Session Kit prints the reason and the remedy it expects.
0.11.0Linux additionally needs a readable /proc, a systemd user manager, Bash 4+, and Python 3.10+.
macOS additionally needs macOS 14+, an active desktop login for the per-user launchd GUI domain, Homebrew Bash 4+, and Python 3.11+.
For supported shpool paths, provider setup, manual asset download, project import, and activation, read Install Session Kit.
If Claude Code, Codex, or another terminal agent is doing the installation, give it this:
Install Session Kit from
https://github.com/dob323/session-kit. Use the latest release artifact, not a clone ofmain. Download the release archive with its.sha256and.provenance.jsonfiles, verify the checksum, extract it, and run./install.sh --checkfirst. Fix only the remedies that preflight explicitly names. Then run./install.sh,session-kit doctor,session-kit services enable, andsession-kit doctoragain. Never bypass a refused step. Show me the final doctor output and finish by telling me to typekit.
kit
New session defaults to Claude Code. A session can also be started directly:
sp new claude
sp new codex
sp new shell
Project aliases, provider choice, account selection, and configured models make those launches more specific. See Projects and Use Session Kit.
Ready sessions come first. Sessions already attached to another window appear under Open elsewhere. Within a group, attention state determines the first part of the order, followed by provider and activity.
The state words are deliberately small and literal:
| State | Meaning |
|---|---|
question |
Claude has a blocking prompt open now. Codex does not claim this state yet. |
needs you |
The provider finished its turn and is waiting for you. |
working |
The provider is driving the current turn. |
idle |
A needs-you transcript has not moved for the configured idle window. |
pending |
A launch that has not finished, or a value Session Kit cannot currently read. It is not a fifth state. |
Pressing a narrows the list to just those sessions, with how long each has
waited.
The home screen keeps the common actions one key away:
| Input | Action |
|---|---|
Enter or a session number |
Open the first visible session, or the numbered session. |
k <numbers> |
Close one or more visible sessions. Lists and ranges work. |
n |
Start a new session. |
m |
Open More. |
a |
Show everything that needs you. |
h <number> |
Read settled history without opening the session. |
? |
Show picker help. |
b or q |
Leave the home screen for an ordinary shell. |
A session that is open elsewhere defaults to Move it here after a fresh identity check. The earlier window returns to its picker, and the provider conversation is not duplicated.
Press ? for the full key reference — filtering, ranges, grouping, forking, renaming, and g to jump to the next session that needs you are all there. See Picker navigation for the cursor-driven picker, mouse behavior, action panels, machine sessions, and closed-session restore.
A session started as machine-origin is given its own git worktree, on a branch the kit cuts for it, so two workers on one repository never edit the same files. Any session can ask for one by branch:
sp new claude --worktree <branch>
Closing the session gives the copy back, and every close does it — sp close, the picker's k, bye or a clean provider exit, and the scheduled cleanup pass. The copy is kept instead, with the reason named out loud, whenever giving it back could lose work: uncommitted, staged or untracked files, ignored files that were created there, a commit not yet in the reference, somebody still working in the directory, or a check that could not run at all.
A directory that is not a git repository has nothing to isolate, and a person's own session is never moved out of the directory they chose. See Use Session Kit for the complete rules.
Install Session Kit where the work actually runs.
There is no Session Kit server to deploy.
Session Kit deliberately separates what you see from what it trusts.