Cloud-synced dashboards for OpenCode and Claude coding sessions
Quick option: Want to deploy first and configure later? Use one-click deploy to get the frontend running on Vercel or Netlify, then follow the post-deploy checklist.
Full local setup: Follow the steps below to run everything locally.
I want you to set up OpenSync for me. Execute all the steps below autonomously.
OBJECTIVE: Deploy a self-hosted OpenSync instance with Convex backend, WorkOS auth, and local development server.
DONE WHEN: You have the dashboard running locally at http://localhost:5173 and can log in with WorkOS authentication.
- Clone the repository and install dependencies
- Set up a Convex project and deploy the schema
- Configure WorkOS authentication
- Set up OpenAI API key for embeddings
- Configure environment variables
- Run the development server
- Verify login and basic functionality
You need:
- Node.js 18+ installed
- npm or bun package manager
- Git
You will need accounts at (create during setup if needed):
- Convex (free tier): https://convex.dev
- WorkOS (free up to 1M MAUs): https://workos.com
- OpenAI: https://platform.openai.com
git clone https://github.com/waynesutton/opensync.git
cd opensync
npm installInitialize and deploy the Convex backend:
npx convex devThis will:
- Prompt you to log in (first time)
- Ask you to create or select a project
- Deploy the schema and functions
- Start watching for changes
Keep this terminal running. Note your deployment URL (e.g., https://happy-animal-123.convex.cloud).
- Go to https://dashboard.workos.com and create a project
- Enable Email + Password authentication in the Authentication section
- Add redirect URIs in the Redirects section:
http://localhost:5173/callback
- Copy your Client ID (
client_xxxxx) from API Keys
- Go to https://platform.openai.com/api-keys
- Create a new API key
- Copy it (you won't see it again)
This is used for generating embeddings for semantic search.
In the Convex dashboard (https://dashboard.convex.dev):
- Select your project
- Go to Settings > Environment Variables
- Add these variables:
| Name | Value |
|---|---|
| OPENAI_API_KEY | sk-xxxxx (your OpenAI key) |
| WORKOS_CLIENT_ID | client_xxxxx (your WorkOS client ID) |
Create .env in the project root:
VITE_CONVEX_URL=https://your-project-123.convex.cloud
VITE_WORKOS_CLIENT_ID=client_xxxxx
VITE_REDIRECT_URI=http://localhost:5173/callbackReplace with your actual values from above.
In a second terminal (keep Convex dev running):
npm run dev- You should see the OpenSync login page
- Click "Get Started" to sign in with WorkOS
- After login, you should see the empty dashboard
- Go to Settings and generate an API key
To sync sessions from your coding tools:
For OpenCode:
npm install -g opencode-sync-plugin
opencode-sync loginFor Claude Code:
npm install -g claude-code-sync
claude-code-sync loginEnter your Convex URL and API key when prompted.
To deploy to Netlify:
npm run build
npx netlify deploy --prod --dir=distOr connect your GitHub repo to Netlify for automatic deployments.
Remember to:
- Add production redirect URI to WorkOS (e.g.,
https://your-domain.com/callback) - Set environment variables in Netlify dashboard:
VITE_CONVEX_URLVITE_WORKOS_CLIENT_IDVITE_REDIRECT_URI(production URL)
- Verify
WORKOS_CLIENT_IDis set correctly in Convex environment variables - Redeploy:
npx convex deploy
- Check plugin is authenticated:
opencode-sync statusorclaude-code-sync status - Check Convex dashboard logs for errors
- Verify
OPENAI_API_KEYis set in Convex environment variables - Embeddings generate asynchronously, wait a minute
EXECUTE NOW: Complete the above TODO list to achieve: Dashboard running locally with WorkOS authentication working.
If you need more context about this project, see the llms.txt file at: https://www.opensync.dev/llms.txt