{"id":48547716,"url":"https://github.com/adinhodovic/ai-dash","last_synced_at":"2026-04-08T07:30:38.854Z","repository":{"id":348738159,"uuid":"1196366633","full_name":"adinhodovic/ai-dash","owner":"adinhodovic","description":"A terminal UI for browsing coding sessions across multiple tools from local transcripts, session logs, and databases. It currently supports Claude Code, Codex, and OpenCode.","archived":false,"fork":false,"pushed_at":"2026-04-02T15:27:56.000Z","size":14103,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T03:43:15.561Z","etag":null,"topics":["ai","ai-agents","claude-code","codex","opencode","session","session-management"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adinhodovic.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":".github/CODEOWNERS","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-30T16:21:18.000Z","updated_at":"2026-04-02T23:06:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/adinhodovic/ai-dash","commit_stats":null,"previous_names":["adinhodovic/ai-dash"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/adinhodovic/ai-dash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adinhodovic%2Fai-dash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adinhodovic%2Fai-dash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adinhodovic%2Fai-dash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adinhodovic%2Fai-dash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adinhodovic","download_url":"https://codeload.github.com/adinhodovic/ai-dash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adinhodovic%2Fai-dash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31545904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"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":["ai","ai-agents","claude-code","codex","opencode","session","session-management"],"created_at":"2026-04-08T07:30:38.214Z","updated_at":"2026-04-08T07:30:38.845Z","avatar_url":"https://github.com/adinhodovic.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Dash\n\n![AI Dash](./docs/images/demo.gif)\n\nA terminal UI for browsing coding sessions across multiple tools from local transcripts, session logs, and databases. It currently supports Claude Code, Codex, and OpenCode.\n\n## What it does\n\n- Parses Claude Code JSONL transcripts, Codex session logs, and the OpenCode SQLite database\n- Fuzzy search across sessions, live as you type\n- Filter by tool, project, or date range\n- Sort per table (last active, tool, project, summary)\n- Project overview with session counts and tool breakdown\n- Detail pane with tokens, cost, metadata, related sessions\n- Picks up subagent/child sessions (Claude subagents, OpenCode parent/child)\n- Nerd Font icons when available, falls back to Unicode\n- Resume or start sessions from the dashboard\n\n## Install\n\n### From source\n\n```bash\ngit clone https://github.com/adinhodovic/ai-dash.git\ncd ai-dash\nmake build\n./ai-dash\n```\n\n### Binary\n\nPre-built binaries are available on the [releases page](https://github.com/adinhodovic/ai-dash/releases).\n\n**Linux:**\n\n```bash\ncurl -L https://github.com/adinhodovic/ai-dash/releases/latest/download/ai-dash-linux-amd64 -o ai-dash\nchmod +x ai-dash\n```\n\n**macOS:**\n\n```bash\ncurl -L https://github.com/adinhodovic/ai-dash/releases/latest/download/ai-dash-darwin-arm64 -o ai-dash\nchmod +x ai-dash\n```\n\nFor other architectures, see all binaries on the [releases page](https://github.com/adinhodovic/ai-dash/releases).\n\n## Configuration\n\nConfig file: `~/.config/ai-dash/config.json`\n\n### Sources\n\nSessions are discovered from default paths. Override them if needed:\n\n| Tool | Default path | Config key |\n|------|-------------|------------|\n| OpenCode | `~/.local/share/opencode/opencode.db` or `~/Library/Application Support/opencode/opencode.db` on macOS | `opencode_path` |\n| Codex | `~/.codex/config.toml` | `codex_path` |\n| Claude Code | `~/.claude/projects/` | `claude_path` |\n\n### Options\n\n```json\n{\n  \"$schema\": \"https://raw.githubusercontent.com/adinhodovic/ai-dash/main/config.schema.json\",\n  \"terminal\": \"ghostty\",\n  \"poll_interval\": \"10s\",\n  \"default_age_filter\": \"14d\",\n  \"default_tool\": \"claude\",\n  \"auto_select_tool\": false,\n  \"nerd_font\": null,\n  \"age_presets\": [\"1h\", \"1d\", \"3d\", \"7d\", \"14d\", \"30d\"]\n}\n```\n\n| Option | What it does | Default |\n|--------|-------------|---------|\n| `terminal` | Terminal emulator used to open/resume sessions (e.g. `ghostty`, `kitty`) | `$TERMINAL` |\n| `poll_interval` | How often sessions reload | `10s` |\n| `default_age_filter` | Default age filter used on load and when clearing filters | `14d` |\n| `default_tool` | Pre-selected tool when pressing `n` | none |\n| `auto_select_tool` | Skip the tool picker for new sessions | `false` |\n| `nerd_font` | Force Nerd Font on/off, `null` auto-detects | auto |\n| `age_presets` | Options when cycling with `D` | `1h,1d,3d,7d,14d,30d` |\n\nAdd the `$schema` line to get autocompletion in your editor. You can also run `ai-dash schema` to print it.\n\nOn macOS, `terminal` should be a CLI terminal binary like `ghostty` or `kitty`.\n\n## Keys\n\n| Key | Action |\n|-----|--------|\n| `/` | Search |\n| `r` | Resume session |\n| `n` | New session |\n| `t` / `p` | Filter by tool / project |\n| `s` | Cycle sort |\n| `D` | Cycle age range |\n| `a` | Toggle subagents |\n| `c` | Clear filters/search |\n| `tab` | Switch focus |\n| `?` | Full help |\n| `q` | Quit |\n\nPress `?` in the app to see the full context-aware keymap.\n\n## Development\n\n### Common tasks\n\n```bash\nmake fmt\nmake build\nmake test\ngolangci-lint run ./...\n```\n\nRun the app locally with:\n\n```bash\n./ai-dash\n```\n\n### Project layout\n\n- `cmd/ai-dash` - cobra entrypoint\n- `internal/config` - config loading and schema generation\n- `internal/session` - shared session model and sorting\n- `internal/sources/claude` - Claude Code parser\n- `internal/sources/codex` - Codex parser\n- `internal/sources/opencode` - OpenCode parser\n- `internal/sources/shared` - shared source discovery helpers\n- `internal/ui` - Bubble Tea TUI\n\n### Source support\n\nOnly official provider files are supported:\n\n- Claude Code transcripts\n- Codex session JSONL files\n- OpenCode SQLite database\n\nDo not add generic or custom session JSON loaders.\n\n### Testing notes\n\n- Add provider-specific tests when changing importer or parser logic\n- Keep fixtures under each source package's `testdata/` directory\n- Run `make fmt`, `make build`, `make test`, and `golangci-lint run ./...` before finishing changes\n\n## License\n\nApache License 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadinhodovic%2Fai-dash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadinhodovic%2Fai-dash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadinhodovic%2Fai-dash/lists"}