By thomast8
Synchronous Haiku-generated kebab-case session titles, emitted via hookSpecificOutput.sessionTitle on the first prompt of each Claude Code session. One-shot per session, recursion-safe, 20s timeout with a slugified-prompt fallback.
A one-plugin Claude Code marketplace that auto-names your sessions.
On the first prompt of each new session, a UserPromptSubmit hook shells out to claude -p --model haiku to summarize what you're about to work on, and emits the result as the session title. The pill in the bottom-left (and your /resume list, and your session JSON files) rename themselves.
You pay ~9 seconds of latency on prompt 1. Prompts 2+ are untouched. If Haiku is slow, unavailable, or the call fails, the script falls back to a slugified truncation of your prompt so the title still populates with something reasonable.
/plugin marketplace add https://github.com/thomast8/claude-session-title.git
/plugin install session-title@claude-session-title
The plugin bundles its hook, so nothing needs to go into your settings.json.
Claude Code sessions default to titles like untitled-session or a timestamp. Once you have more than a handful of active sessions (Graphite stacks, parallel investigations, worktrees), "which one was which?" becomes a real cost. /resume becomes a guessing game.
The sessionTitle field in the UserPromptSubmit hook output is honored only on the hook's first invocation per session — the harness ignores it after that. So the one viable place to generate a good title is at the first user prompt, which is also the earliest moment the session has anything meaningful to summarize. That's what this hook does.
you: why is the ingestion pipeline dropping chunks 403-417 for Arabic BRDs?
→ title becomes: debug-arabic-brd-chunk-drops
you: extract the LLM retry logic out of AIClient into a standalone decorator
→ title becomes: extract-llm-retry-decorator
If the claude -p call exceeds the 20s internal timeout or fails, the hook slugifies the first 50 characters of your prompt instead. You still get a title, just less editorial.
claude — the Claude Code CLI (you already have this if you're installing plugins)bash, jq, perl — standard on macOS and all mainstream Linux distrosclaude -p --model haiku --no-session-persistence, which goes through your usual credentialsThe hook is recursion-safe: the nested claude -p call itself fires UserPromptSubmit, which re-invokes this hook; the inner invocation short-circuits via the CLAUDE_TITLE_HOOK_NESTED=1 env var. Once-per-session state lives in a marker file at $TMPDIR/claude-session-titles/<session-id>.done.
If the first-prompt latency bothers you, uninstall the plugin and your sessions go back to their default titles.
/plugin uninstall session-title@claude-session-title
/plugin marketplace remove claude-session-title
Nothing lingers in your settings.json. The $TMPDIR/claude-session-titles/ marker directory can be deleted by hand; it's rebuilt automatically if you reinstall.
MIT. See LICENSE. Use it freely, modify it freely, no warranty.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Rank a repo's active contributors by their current capacity to review a new PR. Defaults to the current branch's PR; accepts a PR number or --repo-only. Scoring is min(load, fitness) where fitness blends familiarity with the changed files, breadth across the repo, and in-repo review engagement.
Create git worktrees from PR numbers / branch names / a live picker (your open PRs and PRs needing your review), and reclaim worktree branches back into main. Graphite-aware. Bundles WorktreeCreate/WorktreeRemove hooks so the session's project directory follows the worktree.
Negotiate a code or plan review to convergence between Claude and Codex via a shared MCP scratchpad, or get a quick single-shot second opinion from Codex, including mid-planning.
npx claudepluginhub thomast8/claude-session-title --plugin session-titleConsult multiple AI coding agents (Gemini, OpenAI, Grok, Perplexity, plus codex, antigravity, and grok CLIs when installed) to get diverse perspectives on coding problems
v9.54.1 — Reliability wave: tangle contextual review correction loop with hard round ceiling, progress-supervised review rounds (per-agent stall watch, descendant-tree kills), council diversity and agy pin fixes, marketplace generator source-of-truth fix, provider troubleshooting runbook and cost-expectations docs. Run /octo:setup.
Persistent coding companion for Claude Code, Pi, and Oh My Pi. MCP-based terminal pet with ASCII art, stats, reactions, and personality.