Dashboard Overview
The OpenSync dashboard is a single-page React application that provides a central view of all your AI coding sessions across tools. It updates in real time using Convex subscriptions, so new sessions and messages appear without refreshing.Main sections
Overview cards
The dashboard landing page shows summary statistics at the top:| Card | What it shows | Data source |
|---|---|---|
| Total Sessions | Count of all sessions for your account | sessions table, filtered by userId |
| Total Tokens | Sum of promptTokens + completionTokens across all sessions | Aggregated from sessions.totalTokens |
| Total Cost | Sum of estimated USD cost across all sessions | Aggregated from sessions.cost |
| Active Sources | Count of distinct source values across your sessions | Distinct values of sessions.source |
Session list
Below the summary cards, you see a paginated list of your sessions sorted by creation time (most recent first). Each session card shows:| Field | Description | Schema field |
|---|---|---|
| Title | Auto-generated from the first user message | sessions.title |
| Source | Plugin that synced the session (e.g., “opencode”, “claude-code”) | sessions.source |
| Model | AI model used (e.g., “claude-sonnet-4-20250514”, “gpt-4o”) | sessions.model |
| Messages | Number of messages in the conversation | sessions.messageCount |
| Tokens | Total tokens (prompt + completion) | sessions.totalTokens |
| Cost | Estimated USD cost based on model pricing tables | sessions.cost |
| Created | Timestamp of session start | sessions.createdAt |
| Project | Project name extracted from the working directory | sessions.projectName |
Filters
The filter bar lets you narrow the session list:- Source filter selects sessions from a specific tool (OpenCode, Claude Code, Codex CLI, Cursor). Maps to the
sessions.sourcefield. - Date range filters sessions by their
createdAttimestamp. Presets include Today, Last 7 Days, Last 30 Days, and All Time. - Search does a full-text search across
sessions.searchableText, which is built from the concatenation of session title and message content. - Eval status (on the Evals tab) filters by the
sessions.evalStatusfield: golden, correct, incorrect, or needs_review.
Session detail view
Click any session to open the detail panel. This shows:- Full conversation with each message displayed in a chat-like layout. User messages appear on the right, assistant messages on the left.
- Message metadata including per-message token counts (
messages.promptTokens,messages.completionTokens) and duration. - Tool calls are shown inline when the message role is “tool”. The tool name and result are displayed.
- Copy button copies the entire conversation as markdown.
- Export buttons for DeepEval JSON, OpenAI Evals JSONL, and plain text.
- Delete permanently removes the session and all its messages and parts.