claude-tracker-suite
Claude Session Management Suite
Search, browse, monitor, and manage Claude Code session history across all projects.
Tools Overview
| Tool | Purpose |
|---|---|
claude-tracker-search |
Search sessions by keyword or ID prefix (standalone script) |
open-sessions.js |
List top N sessions, open selected in cmux tabs/splits |
claude-tracker-resume |
Find and resume crashed/inactive sessions |
claude-tracker-alive |
Check which sessions have running processes |
claude-tracker-watch |
Daemon: auto-summarize new sessions, update active-projects.md |
claude-tracker |
List recent sessions with status badges (standalone script) |
new-session.sh |
Start a new session in Ghostty/VSCode/Cursor, with optional prompt or headless mode |
resume-session.sh |
Open a session in a cmux tab (optionally open project in VS Code/Cursor) |
detect-projects.js |
Scan sessions to find all projects, check CLAUDE.md coverage |
bootstrap-claude-setup.js |
Generate complete ~/.claude/ config for new machine |
update-active-projects.py |
Regenerate active-projects.md with enriched session data |
Standalone Scripts
Commands delegate to standalone Node.js scripts (avoids shell escaping issues with inline node -e):
| Script | Called By | Purpose |
|---|---|---|
scripts/search-sessions.js |
/claude-tracker-search |
Keyword search or --id prefix lookup across all sessions |
scripts/open-sessions.js |
Direct invocation | List top N sessions, open in cmux tabs/splits with confirmation |
scripts/list-sessions.js |
/claude-tracker |
List recent sessions with status badges |
scripts/new-session.sh |
/spawn |
Start new interactive or prompt-driven session in Ghostty/VSCode/Cursor or headless |
scripts/resume-session.sh |
Direct invocation | Open session in cmux tab, optionally open project in VS Code/Cursor |
scripts/detect-projects.js |
Direct invocation | Project discovery and CLAUDE.md scaffolding |
scripts/bootstrap-claude-setup.js |
Direct invocation | New machine setup generator |
All scripts use ~/.claude/lib/tracker-utils.js for shared utilities (path decoding, session parsing, git remote detection).
Quick Start
# Search by topic
claude-tracker-search "kothar mac mini"
# Lookup by session ID prefix (exact directory from JSONL ground truth)
node ~/.claude/skills/claude-tracker-suite/scripts/search-sessions.js --id d7b8f4dd
# Search by session name/slug only (fast — no JSONL body scan)
claude-tracker-search "thera" --name
# List top 10 sessions, open selected in cmux tabs
node ~/.claude/skills/claude-tracker-suite/scripts/open-sessions.js
# Open top 5 as vertical splits
node ~/.claude/skills/claude-tracker-suite/scripts/open-sessions.js --limit 5 --split right
# Check what's alive
claude-tracker-alive
# Resume crashed sessions in tmux
claude-tracker-resume --tmux
# Start auto-summarize daemon
claude-tracker-watch --daemon
Search
claude-tracker-search "$ARGUMENTS"
Search targets (weighted ranking): Summary (3x), First prompt (2x), Project name (1x), Git branch (1x).
| Flag | Description |
|---|---|
--limit <n> |
Max results (default: 20) |
--id <prefix> |
Lookup by session ID prefix (8+ chars) |
--project <name> |
Filter by project name (substring) |
--since <duration> |
Recent only: 7d, 24h, 30m, 2w |
--json |
Machine-readable JSON output |
--name |
Search only session names, slugs, summaries—skips JSONL body scan (fast) |
--fzf |
Interactive selection via fzf (outputs resume command) |
Resume Crashed Sessions
claude-tracker-resume # List crashed sessions with resume commands
claude-tracker-resume --tmux # Resume all in tmux windows
claude-tracker-resume --zsh # Resume all in Terminal.app tabs (macOS)
claude-tracker-resume --all # Include non-VS Code sessions
claude-tracker-resume --dry-run # Preview without acting
Smart fallback: if --resume fails on an expired session, automatically starts a fresh session in that project directory. Sessions older than 7 days show a STALE badge.
Alive Detection
Check which sessions have running Claude processes:
claude-tracker-alive # Running + stale sessions overview
claude-tracker-alive --running # Only sessions with active processes
claude-tracker-alive --stale # Only sessions with no process
claude-tracker-alive --json # Machine-readable output
Cross-references running claude PIDs (via pgrep + lsof) against recent session files. Sessions >3 days without a process show an OLD badge.
Auto-Summarize Daemon
Watch for new sessions and auto-populate summary cache:
claude-tracker-watch --status # Check if daemon is running
claude-tracker-watch --daemon # Start in background
claude-tracker-watch --stop # Stop running daemon
claude-tracker-watch --verbose # Foreground with debug output
The daemon watches ~/.claude/projects/*/sessions-index.json for changes. When new sessions appear, it caches summaries from Claude Code metadata and regenerates active-projects.md. See references/daemon-setup.md for launchd plist and lifecycle details.
Session Listing
claude-tracker # All recent sessions
claude-tracker vscode # VS Code sessions only
Detect Projects
node ~/.claude/skills/claude-tracker-suite/scripts/detect-projects.js # List all
node ~/.claude/skills/claude-tracker-suite/scripts/detect-projects.js --suggest # Suggest additions
node ~/.claude/skills/claude-tracker-suite/scripts/detect-projects.js --scaffold # Create CLAUDE.md stubs
node ~/.claude/skills/claude-tracker-suite/scripts/detect-projects.js --since 30d # Recent only
Update Active Projects
python3 ~/.claude/scripts/update-active-projects.py # Regenerate active-projects.md
python3 ~/.claude/scripts/update-active-projects.py --summarize # Show sessions needing summaries
The generated table includes Model, Turns, and Cost columns from enriched session data (extracted from JSONL transcripts). Git worktree sessions show a tree emoji badge. Sessions without summaries are auto-named via one-shot claude --model haiku call.
Bootstrap New Setup
Generate a complete ~/.claude/ configuration for a new machine:
node ~/.claude/skills/claude-tracker-suite/scripts/bootstrap-claude-setup.js --user "Name" --dry-run
node ~/.claude/skills/claude-tracker-suite/scripts/bootstrap-claude-setup.js --user "Name"
Creates directory structure, global CLAUDE.md, userModel template, agent_docs stubs, and project CLAUDE.md scaffolds. Follow up with /claude-md-manager to enrich generated files.
Resume in New Terminal
Open a session in a new cmux tab, optionally opening the project in an editor:
# Resume in cmux tab (default — auto-detects project directory)
~/.claude/skills/claude-tracker-suite/scripts/resume-session.sh <session-id>
# Resume in cmux + open project in VS Code
~/.claude/skills/claude-tracker-suite/scripts/resume-session.sh <session-id> --vscode
# Resume in cmux + open project in Cursor
~/.claude/skills/claude-tracker-suite/scripts/resume-session.sh <session-id> --cursor
# Explicit project directory
~/.claude/skills/claude-tracker-suite/scripts/resume-session.sh <session-id> --project ~/Desktop/Programming
cmux owns the terminal lifecycle. Editor flags (--vscode, --cursor) only open the project in the editor — the session always resumes in cmux. Falls back to printing the resume command if cmux is not running.
New Session / Spawn
Start a new Claude Code session in a terminal tab or headless:
# Interactive session in Ghostty (default)
~/.claude/skills/claude-tracker-suite/scripts/new-session.sh ~/my-project
# With a specific model
~/.claude/skills/claude-tracker-suite/scripts/new-session.sh ~/my-project --model opus
# Prompt-driven session in Ghostty tab
~/.claude/skills/claude-tracker-suite/scripts/new-session.sh ~/my-project --prompt "fix the login bug"
# Prompt-driven in VS Code terminal
~/.claude/skills/claude-tracker-suite/scripts/new-session.sh ~/my-project --vscode --prompt "fix the login bug"
# Headless — runs in current terminal, returns JSON
~/.claude/skills/claude-tracker-suite/scripts/new-session.sh ~/my-project --headless --prompt "summarize the README"
# Headless with specific model and output format
~/.claude/skills/claude-tracker-suite/scripts/new-session.sh ~/my-project --headless --prompt "fix tests" --model haiku --output-format text
Headless and prompt-driven modes use claude -p (the Agent SDK CLI). Note: -p is now officially part of the Claude Agent SDK—it uses SDK billing, not interactive session billing. Terminal modes use the clipboard-paste AppleScript pattern for reliable command delivery (handles special characters in prompts).
Workflow: Find and Resume
claude-tracker-search "topic"— find matching sessionsclaude --resume <session-id>— resume in current terminalopen-sessions.js— list top sessions, open selected in cmux tabs- Or
claude-tracker-resume --tmux— auto-resume all crashed sessions
Workflow: Open Sessions in cmux
List recent sessions and open them in cmux tabs or splits:
# List top 10, prompt for selection
node ~/.claude/skills/claude-tracker-suite/scripts/open-sessions.js
# Open as vertical splits
node ~/.claude/skills/claude-tracker-suite/scripts/open-sessions.js --split right
# Open all without confirmation
node ~/.claude/skills/claude-tracker-suite/scripts/open-sessions.js --yes
# JSON output for scripting
node ~/.claude/skills/claude-tracker-suite/scripts/open-sessions.js --json
Session directories are resolved from JSONL ground truth (decodeProjectPath), not from active-projects.md. Falls back to printing resume commands when cmux is unavailable.
For the full cmux CLI reference, see references/cmux-commands.md.
Workflow: Monitor Active Work
claude-tracker-alive— see what's running vs staleclaude-tracker-watch --daemon— keep summaries auto-updated- Read
~/.claude/agent_docs/active-projects.md— curated project overview
Related: Git Tracking
Git-aware session tracking via PreToolUse/PostToolUse hooks intercepts all git commands and tags sessions with repos they touch. Enables cross-directory session discovery.
| File | Purpose |
|---|---|
~/.claude/hooks/git-track.sh |
PreToolUse hook — logs git commands to JSONL |
~/.claude/hooks/git-track-post.sh |
PostToolUse hook — captures commit hashes |
~/.claude/hooks/git-track-rebuild.py |
Builds bidirectional index at SessionEnd |
~/.claude/git-tracking.jsonl |
Append-only event log (hot path) |
~/.claude/git-tracking-index.json |
Bidirectional session <-> repo index |
Query functions in tracker-utils.js:
loadGitTracking()— load the indexgetSessionsForRepo(path)— find sessions that touched a repogetReposForSession(sid)— find repos a session touchedgetRecentCommits({hours, repoPath})— recent commits across sessionsgetRecentGitEvents({hours})— raw event timeline
The /session-report command generates a Markdown dashboard combining session status with git activity.
Related: Soul Registry
The soul registry (~/.claude/hooks/soul-registry.py) tracks live sessions with heartbeats, topics, and Slack channel bindings. It complements the tracker suite:
| Tracker Suite | Soul Registry | |
|---|---|---|
| Scope | All sessions, all time | Active sessions only |
| Data source | JSONL transcripts, sessions-index.json | ~/.claude/soul-sessions/registry.json |
| Updates | After session ends (summaries) | Real-time (heartbeat every turn) |
| Purpose | Search, resume, project detection | Cross-session awareness, Slack binding |
To view the live registry: python3 ~/.claude/hooks/soul-registry.py list --md
To activate Claudicle identity in a session: /ensoul (opt-in per session). To bind a session to Slack: /slack-sync #channel.
References
For detailed schemas and infrastructure:
references/data-schemas.md— Session index, summary cache, and JSONL transcript schemas; data source locations; shared library APIreferences/daemon-setup.md— Watcher daemon lifecycle and launchd plist templatereferences/cmux-commands.md— Complete cmux CLI reference: hierarchy, splits, tabs, input, browser, sidebar, notifications, keyboard shortcuts
More from tdimino/claude-code-minoan
academic-research
Search academic papers, build literature reviews, and synthesize research findings — combines Exa MCP (research_paper category, arxiv filtering) with arxiv-mcp-server for paper discovery, download, and deep analysis. Triggers on academic paper, literature review, research synthesis, arxiv, find papers, scholarly search.
69travel-requirements-expert
Plan a trip, create an itinerary, or research a destination through a structured 5-phase workflow---discovery questions, Exa/Firecrawl research, expert detail gathering, and a day-by-day requirements spec. This skill should be used when a user says "plan a trip," "create an itinerary," "help me visit [place]," or needs travel research with specific venues, safety protocols, and dietary accommodations.
67twilio-api
Use this skill when working with Twilio communication APIs for SMS/MMS messaging, voice calls, phone number management, TwiML, webhook integration, two-way SMS conversations, bulk sending, or production deployment of telephony features. Includes official Twilio patterns, production code examples from Twilio-Aldea (provider-agnostic webhooks, signature validation, TwiML responses), and comprehensive TypeScript examples.
65figma-mcp
Convert Figma designs into production-ready code using MCP server tools. Use this skill when users provide Figma URLs, request design-to-code conversion, ask to implement Figma mockups, or need to extract design tokens and system values from Figma files. Works with frames, components, and entire design files to generate HTML, CSS, React, or other frontend code.
61firecrawl
Scrape web pages to clean markdown using Firecrawl v2 — handles JS-heavy pages, site crawls, URL mapping, document parsing (PDF/DOCX/XLSX), LLM-powered extraction, autonomous agent scraping, and post-scrape browser interaction (Interact API). Prefer over WebFetch for quality and completeness. Triggers on scrape URL, fetch page, crawl site, extract content, parse document, web to markdown, DeepWiki, Firecrawl.
51scrapling
Scrape pages locally with anti-bot bypass, TLS impersonation, and adaptive element tracking — no API keys, no cloud. Handles Cloudflare protection, CSS/XPath element extraction, and survives site redesigns. Complements firecrawl (cloud) with 100% local execution. Triggers on Cloudflare bypass, anti-bot scraping, stealth fetch, local scraping, Scrapling.
47