An open API service indexing awesome lists of open source software.

https://github.com/adinhodovic/ai-dash

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.
https://github.com/adinhodovic/ai-dash

ai ai-agents claude-code codex opencode session session-management

Last synced: 2 months ago
JSON representation

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.

Awesome Lists containing this project

README

          

# AI Dash

![AI Dash](./docs/images/demo.gif)

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.

## What it does

- Parses Claude Code JSONL transcripts, Codex session logs, and the OpenCode SQLite database
- Fuzzy search across sessions, live as you type
- Filter by tool, project, or date range
- Sort per table (last active, tool, project, summary)
- Project overview with session counts and tool breakdown
- Detail pane with tokens, cost, metadata, related sessions
- Picks up subagent/child sessions (Claude subagents, OpenCode parent/child)
- Nerd Font icons when available, falls back to Unicode
- Resume or start sessions from the dashboard

## Install

### From source

```bash
git clone https://github.com/adinhodovic/ai-dash.git
cd ai-dash
make build
./ai-dash
```

### Binary

Pre-built binaries are available on the [releases page](https://github.com/adinhodovic/ai-dash/releases).

**Linux:**

```bash
curl -L https://github.com/adinhodovic/ai-dash/releases/latest/download/ai-dash-linux-amd64 -o ai-dash
chmod +x ai-dash
```

**macOS:**

```bash
curl -L https://github.com/adinhodovic/ai-dash/releases/latest/download/ai-dash-darwin-arm64 -o ai-dash
chmod +x ai-dash
```

For other architectures, see all binaries on the [releases page](https://github.com/adinhodovic/ai-dash/releases).

## Configuration

Config file: `~/.config/ai-dash/config.json`

### Sources

Sessions are discovered from default paths. Override them if needed:

| Tool | Default path | Config key |
|------|-------------|------------|
| OpenCode | `~/.local/share/opencode/opencode.db` or `~/Library/Application Support/opencode/opencode.db` on macOS | `opencode_path` |
| Codex | `~/.codex/config.toml` | `codex_path` |
| Claude Code | `~/.claude/projects/` | `claude_path` |

### Options

```json
{
"$schema": "https://raw.githubusercontent.com/adinhodovic/ai-dash/main/config.schema.json",
"terminal": "ghostty",
"poll_interval": "10s",
"default_age_filter": "14d",
"default_tool": "claude",
"auto_select_tool": false,
"nerd_font": null,
"age_presets": ["1h", "1d", "3d", "7d", "14d", "30d"]
}
```

| Option | What it does | Default |
|--------|-------------|---------|
| `terminal` | Terminal emulator used to open/resume sessions (e.g. `ghostty`, `kitty`) | `$TERMINAL` |
| `poll_interval` | How often sessions reload | `10s` |
| `default_age_filter` | Default age filter used on load and when clearing filters | `14d` |
| `default_tool` | Pre-selected tool when pressing `n` | none |
| `auto_select_tool` | Skip the tool picker for new sessions | `false` |
| `nerd_font` | Force Nerd Font on/off, `null` auto-detects | auto |
| `age_presets` | Options when cycling with `D` | `1h,1d,3d,7d,14d,30d` |

Add the `$schema` line to get autocompletion in your editor. You can also run `ai-dash schema` to print it.

On macOS, `terminal` should be a CLI terminal binary like `ghostty` or `kitty`.

## Keys

| Key | Action |
|-----|--------|
| `/` | Search |
| `r` | Resume session |
| `n` | New session |
| `t` / `p` | Filter by tool / project |
| `s` | Cycle sort |
| `D` | Cycle age range |
| `a` | Toggle subagents |
| `c` | Clear filters/search |
| `tab` | Switch focus |
| `?` | Full help |
| `q` | Quit |

Press `?` in the app to see the full context-aware keymap.

## Development

### Common tasks

```bash
make fmt
make build
make test
golangci-lint run ./...
```

Run the app locally with:

```bash
./ai-dash
```

### Project layout

- `cmd/ai-dash` - cobra entrypoint
- `internal/config` - config loading and schema generation
- `internal/session` - shared session model and sorting
- `internal/sources/claude` - Claude Code parser
- `internal/sources/codex` - Codex parser
- `internal/sources/opencode` - OpenCode parser
- `internal/sources/shared` - shared source discovery helpers
- `internal/ui` - Bubble Tea TUI

### Source support

Only official provider files are supported:

- Claude Code transcripts
- Codex session JSONL files
- OpenCode SQLite database

Do not add generic or custom session JSON loaders.

### Testing notes

- Add provider-specific tests when changing importer or parser logic
- Keep fixtures under each source package's `testdata/` directory
- Run `make fmt`, `make build`, `make test`, and `golangci-lint run ./...` before finishing changes

## License

Apache License 2.0