Skip to main content

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:
CardWhat it showsData source
Total SessionsCount of all sessions for your accountsessions table, filtered by userId
Total TokensSum of promptTokens + completionTokens across all sessionsAggregated from sessions.totalTokens
Total CostSum of estimated USD cost across all sessionsAggregated from sessions.cost
Active SourcesCount of distinct source values across your sessionsDistinct values of sessions.source
These numbers update in real time as new sessions are synced.

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:
FieldDescriptionSchema field
TitleAuto-generated from the first user messagesessions.title
SourcePlugin that synced the session (e.g., “opencode”, “claude-code”)sessions.source
ModelAI model used (e.g., “claude-sonnet-4-20250514”, “gpt-4o”)sessions.model
MessagesNumber of messages in the conversationsessions.messageCount
TokensTotal tokens (prompt + completion)sessions.totalTokens
CostEstimated USD cost based on model pricing tablessessions.cost
CreatedTimestamp of session startsessions.createdAt
ProjectProject name extracted from the working directorysessions.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.source field.
  • Date range filters sessions by their createdAt timestamp. 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.evalStatus field: 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.

Real-time updates

The dashboard uses Convex’s real-time subscription model. When a plugin syncs a new session or message, the dashboard updates automatically. There is no polling. The Convex client maintains a WebSocket connection and pushes changes as they happen. This means you can start a coding session in your terminal and watch the session appear in the dashboard within seconds.

Dark mode

The dashboard supports light and dark modes. Toggle between them using the theme switcher in the header. The preference is saved per browser and follows your system setting by default.

Next steps