johnpphd

Claude Code Skill Statusline — Development skill for Claude Code

Development community

Show active skills in Claude Code's statusline with session isolation for multi-session projects.

How to install Claude Code Skill Statusline

This entry records only its repository, not the path inside it, so there is no exact command to give. Open johnpphd/claude-code-skill-statusline and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude Code Skill Statusline does

Show active skills in Claude Code's statusline with session isolation for multi-session projects.

Alternatives in Development

  • Microsandbox — Open-source self-hosted MicroVM sandboxes with sub-200ms startup, hardware-level isolation via libkrun 5k ★
  • Telegram — Show Telegram bot status and manage global session 1.3k ★
  • Session Help — Show help for the session management system 1.2k ★

README

Claude Code Skill Statusline

Show which skill is active in your Claude Code statusline -- with correct session isolation when running multiple sessions simultaneously.

██ dev ~/my-project [main] 8a3f1c02 /agent-orchestrator [general-purpose] Opus 4.6 $1.23 [ctx:45.2k in:602.1k out:89.3k]
||  |       |         |      |         |                    |               |        |          |
project user cwd    branch session   skill              agent type       model     cost      tokens
color

Install

git clone https://github.com/johnpphd/claude-code-skill-statusline.git
cd claude-code-skill-statusline
bash install.sh

This installs to `~/.claude/` (user-level, works across all projects):

  • Copies scripts to ~/.claude/scripts/statusline/
  • Merges hooks into ~/.claude/settings.json (preserves your existing hooks)
  • Sets statusLine in ~/.claude/settings.json

Restart Claude Code after installing.

Uninstall

bash uninstall.sh

Removes scripts, hooks, and statusLine. Preserves all other settings.

Upgrading

Pull and re-run `bash install.sh`. The installer removes the old PostToolUse Bash hook (`copy-skill-to-session.sh`) and adds the new ones.

Older versions needed a `` block at the top of every SKILL.md. Hooks now record the active skill, so delete those blocks. A leftover block does no harm, but nothing reads the file it writes.

The Problem

The statusline should show the skill each session is running. When two sessions run in the same project, a single shared marker file lets Session A show Session B's skill. The marker has to be keyed by session ID.

How It Works

Two hooks write the marker, because a skill starts in one of two ways:

PreToolUse hook, matcher Skill (mark-skill-active.sh)
  fires when the model loads a skill
  reads session_id and tool_input.skill from hook JSON
  writes -> /tmp/.claude-/.claude-skill-active-

UserPromptSubmit hook (mark-skill-on-prompt.sh)