{"id":50559274,"url":"https://github.com/lokkju/claude-session-index","last_synced_at":"2026-06-04T10:30:45.470Z","repository":{"id":359691745,"uuid":"1196448784","full_name":"lokkju/claude-session-index","owner":"lokkju","description":"Index, search, and report on Claude Code sessions. SQLite FTS5 database with CLI, MCP server, and TPS skill for work summarization.","archived":false,"fork":false,"pushed_at":"2026-03-30T17:57:48.000Z","size":145,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T02:17:30.763Z","etag":null,"topics":["claude-code","claude-code-plugin","cli","fts5","mcp","session-indexer","sqlite"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lokkju.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-30T17:56:36.000Z","updated_at":"2026-03-30T17:57:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lokkju/claude-session-index","commit_stats":null,"previous_names":["lokkju/claude-session-index"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/lokkju/claude-session-index","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lokkju%2Fclaude-session-index","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lokkju%2Fclaude-session-index/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lokkju%2Fclaude-session-index/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lokkju%2Fclaude-session-index/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lokkju","download_url":"https://codeload.github.com/lokkju/claude-session-index/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lokkju%2Fclaude-session-index/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33901305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","claude-code-plugin","cli","fts5","mcp","session-indexer","sqlite"],"created_at":"2026-06-04T10:30:44.814Z","updated_at":"2026-06-04T10:30:45.463Z","avatar_url":"https://github.com/lokkju.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# claude-session-index\n\nIndex Claude Code session transcripts into a searchable SQLite FTS5 database. Search, report, and summarize your work across projects.\n\n## Install\n\n```bash\nuv tool install --from git+https://github.com/lokkju/claude-session-index claude-session-index\n```\n\n## Quick Start\n\n```bash\n# Index all sessions (~10 seconds for a full scan)\nclaude-session-index index\n\n# Search across all sessions\nclaude-session-index search \"authentication bug\"\n\n# Today's work report\nclaude-session-index report --since 1d\n\n# Full details for a session\nclaude-session-index show \u003csession-id\u003e\n\n# Index statistics\nclaude-session-index stats\n```\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `index` | Index sessions into the database. `--full` rebuilds from scratch, `--since 7d` limits to recent files. |\n| `search \u003cquery\u003e` | Full-text search with BM25 ranking. `--project`, `--since`, `--limit`, `--json` options. |\n| `show \u003csession-id\u003e` | Full session detail including subagent IDs. `--json` for structured output. |\n| `report` | Sessions grouped by project for a date range. `--since`, `--until`, `--project-path`, `--json`. |\n| `stats` | Index overview: session counts, projects, recent activity. `--json`. |\n| `serve` | Start MCP stdio server (6 tools: search, get_session_detail, list, stats, report, resume_info). |\n| `timer install\\|uninstall` | Manage systemd user timer for 15-minute background indexing. |\n\n## Claude Code Plugin\n\nThis repo is also a Claude Code plugin with two skills:\n\n- **session-report** — Query the index for sessions from a time period\n- **tps** (Total Project Summary) — Gather session data and present flexible work summaries (standup notes, daily journals, weekly recaps)\n\n### Install as Plugin\n\nAdd the `lokkju` marketplace to your Claude Code settings, then install:\n\n```bash\n# Add marketplace (one-time)\nclaude plugin marketplace add lokkju --source github --repo lokkju/skills-marketplace\n\n# Install plugin\nclaude plugin install claude-session-index@lokkju\n```\n\nOr install directly from the repo:\n\n```bash\nclaude plugin add /path/to/claude-session-index\n```\n\n### Auto-Indexing\n\nThe plugin includes hooks that:\n- **SessionStart**: Warn if the CLI tool isn't installed\n- **Stop**: Automatically index recent sessions when a Claude Code session ends\n\n## How It Works\n\n### Three-Phase Indexing\n\n1. **sessions-index.json** — High-quality metadata (summaries, message counts) from Claude's own index files\n2. **Transcript JSONL** — Full session transcripts parsed for user prompts, assistant text, tool usage, files changed, commands run, and commit messages\n3. **history.jsonl** — Gap-fill from the global history log\n\nSubagent sessions are indexed with `parent_session_id` linking, so work done by subagents is discoverable and attributable.\n\n### Incremental by Default\n\nFile modification times are tracked — only changed files are reprocessed. Use `--full` to force a complete rebuild.\n\n### Data Stored\n\n| Field | Source |\n|-------|--------|\n| `first_prompt` | First user message |\n| `summary` | From sessions-index.json (if available) |\n| `user_prompts` | All user messages (capped at 3KB) |\n| `assistant_text` | Assistant text blocks, excluding thinking (capped at 3KB) |\n| `files_changed` | From Read/Write/Edit/Glob/Grep tool calls + file-history-snapshots |\n| `commands_run` | From Bash tool calls (max 500 chars each) |\n| `commit_messages` | Extracted from git commit commands (inline -m, heredoc, -F patterns) |\n| `git_branch` | Branch at session start |\n| `parent_session_id` | Links subagent sessions to their parent |\n\n## MCP Server\n\nThe `serve` command starts a stdio MCP server with 6 tools. Register it with:\n\n```bash\nclaude mcp add session-index -- claude-session-index serve\n```\n\n## Systemd Timer\n\nFor background indexing every 15 minutes:\n\n```bash\nclaude-session-index timer install    # symlinks + enables timer\nclaude-session-index timer uninstall  # stops + removes\n```\n\n## Development\n\n```bash\ngit clone https://github.com/lokkju/claude-session-index\nuv sync --dev\nuv run pytest tests/ -v        # 64 tests\nuv run ruff check src/ tests/  # lint\n```\n\n## License\n\n[PolyForm Shield 1.0.0](https://polyformproject.org/licenses/shield/1.0.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flokkju%2Fclaude-session-index","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flokkju%2Fclaude-session-index","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flokkju%2Fclaude-session-index/lists"}