Clawsync
ClawSync, OpenClaw for the cloud. Deploy an open source personal AI agent with chat UI, skills system, MCP support, and multi-model routing. Built on Convex.
Install / Use
/learn @waynesutton/ClawsyncREADME
Features
- Multi-Agent System - Run multiple agents simultaneously, each with independent config, skills, MCP servers, and memory
- Shared Soul Documents - Define reusable agent personalities that can power one or many agents
- Agent Controls - Auto-run, pause, restart, single task, or think-to-continue modes per agent
- Agent-to-Agent Interaction - Agents can communicate and delegate tasks to each other
- Public Chat UI - Clean, real-time chat with streaming responses and agent selector
- SyncBoard Admin - Private dashboard to manage agents, souls, skills, and integrations
- Skills System - Template, webhook, or code-based skills with a marketplace for external registries
- Multi-Model - Claude, GPT, Grok, Gemini, or any OpenRouter model (configurable per agent)
- MCP Support - Connect to MCP servers or expose your agent as one (assignable per agent)
- Channel Integrations - Telegram, Discord, WhatsApp, Slack, Email
- X (Twitter) Integration - Read, reply, and post tweets from your agent
- AgentMail - Email inboxes for your agent with rate limits
- File Storage - Upload and manage files with Convex native storage or Cloudflare R2
- Browser Automation - Extract data, act, or run autonomous agents on any URL via Stagehand
- Web Scraping - Scrape any URL to markdown with durable caching via Firecrawl
- AI Analytics - Weekly or manual deep analysis of metrics with anomaly detection and recommendations
- Agent Research - Competitive, topic, and real-time X research with external API sources
- Persistent Memory - Supermemory integration for long-term recall across conversations
- Live Activity Feed - Public real-time log of agent actions with per-agent filtering
- Unified Agent Feed - Combined activity view across all agents with filter chips
Quick Start
Prerequisites
- Node.js 18+
- npm or pnpm
- A Convex account (free tier works)
- An Anthropic API key (or OpenAI/OpenRouter)
Setup
- Clone and install:
git clone https://github.com/waynesutton/clawsync.git
cd clawsync
npm install
- Initialize Convex:
npx convex dev
This will prompt you to create a new Convex project. Follow the prompts.
- Set environment variables:
In the Convex Dashboard (dashboard.convex.dev), go to Settings > Environment Variables and add:
ANTHROPIC_API_KEY=sk-ant-...
Optional for multi-model support:
OPENAI_API_KEY=sk-...
XAI_API_KEY=xai-...
OPENROUTER_API_KEY=sk-or-...
Optional for SyncBoard features (each feature activates when its key is set):
FIRECRAWL_API_KEY=... # Web scraping
BROWSERBASE_API_KEY=... # Stagehand browser automation
BROWSERBASE_PROJECT_ID=... # Stagehand browser automation
SUPERMEMORY_API_KEY=... # Persistent agent memory
R2_ACCOUNT_ID=... # Cloudflare R2 file storage
R2_ACCESS_KEY_ID=... # Cloudflare R2 file storage
R2_SECRET_ACCESS_KEY=... # Cloudflare R2 file storage
R2_BUCKET_NAME=... # Cloudflare R2 file storage
- Start the frontend:
npm run dev
- Complete setup:
Visit http://localhost:5173 and complete the setup wizard. This creates your agent configuration.
- Open in browser:
- Landing Page: http://localhost:5173
- Chat: http://localhost:5173/chat
- SyncBoard: http://localhost:5173/syncboard
Deployment
Deploy to Production
# Deploy everything (backend + frontend)
npm run deploy
# Or deploy static files only
npm run deploy:static
Your app will be available at https://your-project.convex.site.
Deployment Options
| Mode | Description | Best For | | ----------------------- | -------------------------------- | -------------------------- | | Convex Storage | Files in Convex, served via HTTP | Simple apps, development | | Convex + Cloudflare CDN | Files in Convex, cached at edge | Custom domains, production |
See @convex-dev/self-static-hosting for advanced options.
Authentication
SyncBoard Password Protection
Protect your admin dashboard with a password:
- Generate a password hash:
node -e "console.log(require('crypto').createHash('sha256').update('your-password').digest('hex'))"
-
Set
SYNCBOARD_PASSWORD_HASHin Convex Dashboard > Settings > Environment Variables. -
Restart your app. SyncBoard will now require login.
WorkOS AuthKit (Coming Soon)
Enterprise SSO support via WorkOS AuthKit is planned. The codebase is prepared for this integration:
convex/auth.config.ts- JWT validation configuration (placeholder)src/main.tsx- Comments for AuthKit provider setupsrc/App.tsx- SyncBoardAuthGuard ready for WorkOS
See Convex AuthKit docs when ready to enable.
X (Twitter) Integration
Connect your agent to X (Twitter) to read tweets, reply to mentions, and post updates.
Setup
- Create a project at X Developer Portal
- Get your API credentials (OAuth 1.0a for posting, Bearer Token for reading)
- Set environment variables in Convex Dashboard:
X_BEARER_TOKEN=... # For reading tweets
X_API_KEY=... # OAuth 1.0a Consumer Key
X_API_SECRET=... # OAuth 1.0a Consumer Secret
X_ACCESS_TOKEN=... # OAuth 1.0a Access Token
X_ACCESS_TOKEN_SECRET=... # OAuth 1.0a Access Token Secret
- Enable in SyncBoard > X (Twitter)
- Configure options:
- Show on Landing - Display agent tweets on your landing page
- Auto-Reply - Automatically reply to mentions
- Post from Agent - Allow the agent to post tweets
Features
- Read tweets and thread conversations
- Reply to mentions automatically
- Post tweets from the agent
- Display selected tweets on landing page
- Activity logging for all X interactions
xAI (Grok) Models
ClawSync supports xAI's Grok models alongside Claude, GPT, and others.
Setup
- Get an API key from xAI Console
- Set
XAI_API_KEYin Convex Dashboard - Select Grok models in SyncBoard > Models or during setup
Available Models
| Model | Description | | ----------- | ---------------------------------- | | grok-3 | xAI flagship model | | grok-3-fast | Fast variant for quicker responses |
Project Structure
clawsync/
├── convex/ # Convex backend
│ ├── agent/ # Agent core
│ │ ├── clawsync.ts # Agent definition with multi-agent factory
│ │ ├── security.ts # Security checker
│ │ ├── toolLoader.ts # Per-agent tool loading with ask_agent tools
│ │ └── modelRouter.ts # Per-agent model routing
│ ├── agents.ts # Multi-agent CRUD
│ ├── souls.ts # Shared soul document CRUD
│ ├── agentAssignments.ts # Per-agent skill/MCP assignments
│ ├── agentInteractions.ts # Agent-to-agent interaction log
│ ├── auth.config.ts # WorkOS config (placeholder)
│ ├── xTwitter.ts # X/Twitter integration
│ ├── staticHosting.ts # Self-static-hosting API
│ ├── media.ts # Convex native file storage
│ ├── r2Storage.ts # Cloudflare R2 storage (optional)
│ ├── stagehand.ts # Stagehand job storage
│ ├── stagehandActions.ts # Browser automation actions
│ ├── firecrawl.ts # Web scraping via Firecrawl
│ ├── analytics.ts # Metrics snapshot aggregation
│ ├── analyticsReport.ts # AI analytics report CRUD
│ ├── analyticsReportAction.ts # AI report generation (Node.js)
│ ├── analyticsCron.ts # Weekly analytics cron
│ ├── research.ts # Research projects and findings
│ ├── researchActions.ts # Research execution actions
│ ├── skillsMarketplace.ts # Skills marketplace management
│ ├── skillsMarketplaceActions.ts # Skills sync from registries
│ ├── supermemory.ts # Supermemory config
│ ├── supermemoryActions.ts # Persistent memory actions
│ ├── schema.ts # Database schema
│ ├── convex.config.ts # Component registration
│ └── http.ts # HTTP endpoints
├── src/ # React frontend
│ ├── pages/
│ │ ├── LandingPage.tsx # Public landing with tweets + activity
│ │ ├── ChatPage.tsx # Chat UI with agent selector
│ │ ├── SetupWizard.tsx # First-run setup
│ │ ├── SyncBoardAgents.tsx # Multi-agent management
│ │ ├── SyncBoardAgentDetail.tsx # Agent configuration
│ │ ├── SyncBoardSouls.tsx # Shared soul documents
│ │ ├── SyncBoardAgentFeed.tsx # Unified agent activity feed
│ │ ├── SyncBoardX.tsx # X/Twitter config
│ │ ├── SyncBoardMedia.tsx # File manager
│ │ ├── SyncBoardStagehand.tsx # Browser automation
│ │ ├── SyncBoardFirecrawl.tsx # Web scraping
│ │ ├── SyncBoardAnalytics.tsx # AI analytics reports
│ │ ├── SyncBoardResearch.tsx # Research projects
│ │ ├── SyncBoardMemory.tsx # Supermemory config
│ │ ├── SyncBoard*.tsx # Other admin pages
│ │ └── SyncBoardLogin.tsx # Password login
│ ├── components/
│ │ ├── agents/ # Multi-agent UI components
│ │ │ ├── AgentCard.tsx # Agent summary card
│ │ │ ├── AgentControls.tsx # Run/pause/restart controls
│ │ │ ├── AgentSelector.tsx # Chat agent
