Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

## What is this

CodeDash (`codedash-app` on npm) is a zero-dependency Node.js browser dashboard for managing AI coding agent sessions. Supports 6 agents: Claude Code, Codex, Cursor, OpenCode, Kiro CLI, Kilo CLI. Single `npm i -g codedash-app && codedash run` opens a local web UI.
CodeDash (`codedash-app` on npm) is a zero-dependency Node.js browser dashboard for managing AI coding agent sessions. Supports 7 agents: Claude Code, Codex, Cursor, OpenCode, Kiro CLI, Kilo CLI, Copilot Chat. Single `npm i -g codedash-app && codedash run` opens a local web UI.

## Project structure

```
bin/cli.js CLI entry point (run/list/stats/search/show/handoff/convert/export/import/update/restart/stop)
src/
server.js HTTP server + all API routes
data.js Session loading, search index, cost calculation, active detection for all 5 agents
data.js Session loading, search index, cost calculation, active detection for all 6 agents
terminals.js Terminal detection (iTerm2/Terminal.app/Warp/Kitty/cmux) + launch/focus
html.js Assembles HTML by inlining CSS+JS into template
migrate.js Export/import sessions as tar.gz
Expand All @@ -37,6 +37,7 @@ docs/
| OpenCode | SQLite | `~/.local/share/opencode/opencode.db` | tables: session, message, part |
| Kiro CLI | SQLite | `~/Library/Application Support/kiro-cli/data.sqlite3` | table: conversations_v2 |
| Kilo CLI | SQLite | `~/.local/share/kilo/kilo.db` | tables: session, message, part, project |
| Copilot Chat | JSON/JSONL | `~/.config/Code/User/workspaceStorage/*/chatSessions/` | `{version, requests: [{message, response}]}` |

## Key architecture decisions

Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Codbash

Control room for AI coding sessions. Search, replay, and resume Claude Code, Codex, Cursor, OpenCode, and Kiro sessions without digging through scattered logs.
Control room for AI coding sessions. Search, replay, and resume Claude Code, Codex, Qwen, Cursor, OpenCode, Kiro, Kilo, and Copilot Chat sessions without digging through scattered logs.

[Russian / Русский](docs/README_RU.md) | [Chinese / 中文](docs/README_ZH.md)

Expand All @@ -24,6 +24,7 @@ codedash run
| Cursor | JSONL | Yes | Yes | Yes | - | Yes | Open in Cursor |
| OpenCode | SQLite | Yes | Yes | Yes | - | Yes | Terminal |
| Kiro CLI | SQLite | Yes | Yes | Yes | - | Yes | Terminal |
| Copilot Chat | JSON/JSONL | Yes | Yes | - | - | Yes | - |

Also detects Claude Code running inside Cursor (via `claude-vscode` entrypoint).

Expand All @@ -40,7 +41,7 @@ Also detects Claude Code running inside Cursor (via `claude-vscode` entrypoint).
- Themes: Dark, Light, System

**Live Monitoring**
- LIVE/WAITING badges on all 5 agent types
- LIVE/WAITING badges on all agent types
- Animated border on active session cards
- Running view with CPU, Memory, PID, Uptime
- Focus Terminal / Open in Cursor buttons
Expand All @@ -54,7 +55,7 @@ Also detects Claude Code running inside Cursor (via `claude-vscode` entrypoint).
**Cross-Agent**
- Convert sessions between Claude Code and Codex
- Handoff: generate context document to continue in any agent
- Install Agents: one-click install commands for all 5 agents
- Install Agents: one-click install commands for all agents

**CLI**
```bash
Expand Down Expand Up @@ -82,6 +83,10 @@ codedash stop
~/.cursor/projects/*/agent-transcripts/ Cursor agent sessions
~/.local/share/opencode/opencode.db OpenCode (SQLite)
~/Library/Application Support/kiro-cli/ Kiro CLI (SQLite)
<vscode-user-data>/workspaceStorage/ Copilot Chat (JSON/JSONL)
# Linux: ~/.config/Code
# macOS: ~/Library/Application Support/Code
# Windows: %APPDATA%\Code
```

Zero dependencies. Everything runs on `localhost`.
Expand Down
40 changes: 38 additions & 2 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Overview

CodeDash is a zero-dependency Node.js dashboard for AI coding agent sessions. Supports 6 agents: Claude Code, Claude Extension, Codex, Cursor, OpenCode, Kiro. Single process serves a web UI at `localhost:3847`.
CodeDash is a zero-dependency Node.js dashboard for AI coding agent sessions. Supports 8 agents: Claude Code, Claude Extension, Codex, Cursor, OpenCode, Kiro, Kilo, Copilot Chat. Single process serves a web UI at `localhost:3847`.

```
Browser (localhost:3847) Node.js Server
Expand All @@ -21,10 +21,11 @@ Browser (localhost:3847) Node.js Server
| convert/export/ | | +-- changelog.js |
| import/update | +-------------------------------+
+-------------------+ |
reads from 5 locations:
reads from 6 locations:
~/.claude/ ~/.codex/ ~/.cursor/
~/.local/share/opencode/opencode.db
~/Library/Application Support/kiro-cli/data.sqlite3
~/.config/Code/User/workspaceStorage/*/chatSessions/
```

## Project Structure
Expand Down Expand Up @@ -197,6 +198,40 @@ FROM conversations_v2 ORDER BY updated_at DESC
}
```

### 7. Copilot (VS Code Extension)

| Item | Location |
|------|----------|
| Sessions | `~/.config/Code/User/workspaceStorage/[hash]/chatSessions/` (JSON/JSONL) |

**Storage formats**: Two file formats coexist in `chatSessions/`:
- **`.json`** — complete session state as a single JSON object
- **`.jsonl`** — mutation-based format (kind:0 init, kind:1 set, kind:2 splice)

**Session JSON structure**:
```json
{
"version": 3,
"creationDate": 1772452223289,
"requests": [
{
"requestId": "request_uuid",
"message": {"text": "user prompt"},
"response": [
{"kind": "text", "value": "assistant response"},
{"kind": "thinking", "value": "..."},
{"kind": "toolInvocationSerialized", "value": {...}}
],
"modelId": "copilot/claude-sonnet-4.6"
}
]
}
```

**Project mapping**: `workspaceStorage/[hash]/workspace.json` contains `folder` URI → decoded to local path.

**Cost**: No token usage stored locally — returns empty cost.

---

## Data Flow
Expand All @@ -209,6 +244,7 @@ FROM conversations_v2 ORDER BY updated_at DESC
3. scanOpenCodeSessions() → merge (tool: "opencode")
4. scanCursorSessions() → merge (tool: "cursor")
5. scanKiroSessions() → merge (tool: "kiro")
5a. scanCopilotSessions() → merge (tool: "copilot-chat")
6. Enrich Claude sessions with detail files:
- Count messages, get file size
- Check entrypoint → change tool to "claude-ext" if not "cli"
Expand Down
5 changes: 3 additions & 2 deletions docs/README_RU.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CodeDash

Дашборд + CLI для сессий AI-агентов. 5 агентов: Claude Code, Codex, Cursor, OpenCode, Kiro.
Дашборд + CLI для сессий AI-агентов. 7 агентов: Claude Code, Codex, Cursor, OpenCode, Kiro, Kilo, Copilot Chat.

[English](../README.md) | [Chinese / 中文](README_ZH.md)

Expand All @@ -19,12 +19,13 @@ npm i -g codedash-app && codedash run
| Cursor | JSONL | LIVE/WAITING | - | Open in Cursor |
| OpenCode | SQLite | LIVE/WAITING | - | Терминал |
| Kiro CLI | SQLite | LIVE/WAITING | - | Терминал |
| Copilot Chat | JSON/JSONL | - | - | - |

## Возможности

- Grid/List, группировка по проектам, trigram поиск + deep search
- GitHub-стиль SVG heatmap активности со стриками
- LIVE/WAITING бейджи для всех 5 агентов, анимированная рамка
- LIVE/WAITING бейджи для всех агентов, анимированная рамка
- Session Replay с ползунком, hover превью, раскрытие карточек
- Аналитика стоимости из реальных usage данных
- Конвертация сессий Claude <-> Codex, Handoff между агентами
Expand Down
5 changes: 3 additions & 2 deletions docs/README_ZH.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CodeDash

AI 编程代理会话仪表板 + CLI。支持 5 个代理:Claude Code、Codex、Cursor、OpenCode、Kiro。
AI 编程代理会话仪表板 + CLI。支持 7 个代理:Claude Code、Codex、Cursor、OpenCode、Kiro、Kilo、Copilot Chat

[English](../README.md) | [Russian / Русский](README_RU.md)

Expand All @@ -19,12 +19,13 @@ npm i -g codedash-app && codedash run
| Cursor | JSONL | LIVE/WAITING | - | 在 Cursor 中打开 |
| OpenCode | SQLite | LIVE/WAITING | - | 终端 |
| Kiro CLI | SQLite | LIVE/WAITING | - | 终端 |
| Copilot Chat | JSON/JSONL | - | - | - |

## 功能

- 网格/列表视图、项目分组、Trigram 搜索 + 深度搜索
- GitHub 风格 SVG 活动热力图
- 所有 5 个代理的 LIVE/WAITING 徽章
- 所有代理的 LIVE/WAITING 徽章
- 会话回放、成本分析、跨代理转换和交接
- 导出/导入迁移、Dark/Light/System 主题

Expand Down
Loading
Loading