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.
Inspired by OpenClaw.ai
特性
- 多代理系统 -同时运行多个代理,每个代理都有独立的配置、技能、MCP服务器和内存
- 共享灵魂文档 -定义可重用的代理个性,为一个或多个代理提供动力
- 代理控制 -每个代理的自动运行、暂停、重新启动、单任务或考虑继续模式
- Agent到Agent交互 -代理可以相互通信和委派任务
- 公共聊天UI -通过流式响应和代理选择器进行干净、实时的聊天
- 同步板管理员 -管理代理、灵魂、技能和集成的私人仪表板
- 技能体系 -模板、webhook或基于代码的技能与外部注册表市场
- 多模态 -Claude、GPT、Grok、Gemini或任何OpenRouter模型(可按代理配置)
- MCP支持 -连接到MCP服务器或将您的代理公开为一个(可为每个代理分配)
- 渠道整合 -Telegram、Discord、WhatsApp、Slack、电子邮件
- X(推特)集成 -阅读、回复和发布代理的推文
- 代理邮件 -为您的代理发送带有费率限制的电子邮件收件箱
- 文件存储 -使用Converx原生存储或Cloudflare R2上传和管理文件
- 浏览器自动化 -通过Stagehand在任何URL上提取数据、执行操作或运行自主代理
- Web剪贴 -通过Firecrawl使用持久缓存将任何URL抓取到markdown
- 人工智能分析 -每周或手动对指标进行深入分析,并提出异常检测和建议
- 代理商研究 -具有外部API资源的竞争性、主题性和实时X研究
- 持久内存 -超级记忆集成,实现跨对话的长期回忆
- 实时活动订阅源 -具有每个代理过滤的代理操作的公共实时日志
- 统一代理源 -使用过滤芯片对所有代理进行组合活动视图
快速开始
先决条件
- Node.js 18+
- npm或pnpm
- Converx帐户(免费版有效)
- 人类API密钥(或OpenAI/OpenRouter)
设置
- 克隆并安装:
git clone https://github.com/waynesutton/clawsync.git
cd clawsync
npm install- 初始化凸形:
npx convex dev这将提示您创建一个新的Converx项目。按照提示操作。
- 设置环境变量:
在凸形仪表板(dashboach.uxply.dev)中,转到设置>环境变量并添加:
ANTHROPIC_API_KEY=sk-ant-...支持多型号可选:
OPENAI_API_KEY=sk-...
XAI_API_KEY=xai-...
OPENROUTER_API_KEY=sk-or-...SyncBoard功能的可选功能(每个功能在设置按键后都会激活):
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- 启动前端:
npm run dev- 完成设置:
访问http://localhost:5173并完成安装向导。这将创建您的代理配置。
- 在浏览器中打开:
- 登录页面:http://localhost:5173
- 聊天:http://localhost:5173/chat
- 同步板:http://localhost:5173/syncboard
部署
部署到生产
# Deploy everything (backend + frontend)
npm run deploy
# Or deploy static files only
npm run deploy:static您的应用程序将在 https://your-project.convex.site.
部署选项
| 模式 | 描述 | 最适合 |
|---|---|---|
| 凸存储 | 凸文件,通过HTTP提供 | 简单应用程序,开发 |
| Converx+Cloudflare CDN | Converx中的文件,缓存在边缘 | 自定义域,生产 |
看 @凸dev/自静态宿主 高级选项。
认证
同步板密码保护
使用密码保护您的管理员控制面板:
- 生成密码哈希:
node -e "console.log(require('crypto').createHash('sha256').update('your-password').digest('hex'))"- 集
SYNCBOARD_PASSWORD_HASH在凸形仪表板>设置>环境变量中。
- 重新启动应用程序。SyncBoard现在需要登录。
WorkOS AuthKit(即将推出)
计划通过WorkOS AuthKit提供企业SSO支持。代码库已为此集成做好准备:
convex/auth.config.ts-JWT验证配置(占位符)src/main.tsx-AuthKit提供程序设置的注释src/App.tsx-SyncBoardAuthGuard已为WorkOS做好准备
看 Converx AuthKit文档 当准备启用时。
X(推特)集成
将您的代理连接到X(推特)以阅读推文、回复提及和发布更新。
设置
- 在以下位置创建项目 X开发者门户
- 获取您的API证书(OAuth 1.0a用于发布,Bearer Token用于阅读)
- 在凸形仪表板中设置环境变量:
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- 在SyncBoard>X(推特)中启用
- 配置选项:
- 着陆时显示 -在您的登录页面上显示代理推文 - 自动回复 -自动回复提及 - 来自代理人的帖子 -允许代理发布推文
特性
- 阅读推文和话题对话
- 自动回复提及
- 发布代理的推文
- 在登录页面上显示所选推文
- 所有X交互的活动日志记录
xAI(Grok)模型
ClawSync支持xAI的Grok模型以及Claude、GPT等。
设置
- 从获取API密钥 xAI 控制台
- 集
XAI_API_KEY在凸形仪表板中 - 在SyncBoard>型号或设置过程中选择Grok型号
可用模型
| 型号 | 描述 |
|---|---|
| grok-3 | xAI旗舰型号 |
| grok-3-fast | 快速变体,反应更快 |
项目结构
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 picker
│ │ │ └── AgentFeedItem.tsx # Activity feed entry
│ │ ├── chat/ # Chat components
│ │ └── syncboard/ # SyncBoard layout
│ └── styles/
│ ├── tokens.css # Design tokens (Geist fonts)
│ └── global.css
├── features.html # Standalone features page
├── content/
│ └── soul.md # Default soul document
├── AGENTS.md # For AI coding agents
└── CLAUDE.md # For Claude Code设计系统
ClawSync使用Vercel的Geist字体定制设计系统。
| 令牌 | 值 | 用法 |
|---|---|---|
--bg-primary | #f3f3f3 | 页面背景 |
--bg-secondary | #ececec | 卡片、输入 |
--interactive | #ea5b26 | 按钮、链接 |
--text-primary | #223223 | 正文 |
--font-sans | Geist | 用户界面文本 |
--font-mono | 盖斯特单声道 | 代码 |
所有代币都在 src/styles/tokens.css。永远不要硬编码颜色。
命令
npm install # Install dependencies
npx convex dev # Start Convex backend
npm run dev # Start Vite frontend
npm run build # Production build
npm run deploy # Deploy to Convex
npm run lint # ESLint
npm run typecheck # TypeScript check添加技能
模板技能
- 同步板>技能>添加技能
- 选择“模板技能”
- 选择模板并配置
- 批准该技能
Webhook技能
- 同步板>技能>添加技能
- 选择“Webhook技能”
- 输入API端点URL
- 将域添加到列表
- 批准该技能
代码技能
在中添加文件 convex/agent/skills/ 并将其注册到技能注册表中。
安全
看 CLAUDE.md 对于安全规则:
- 切勿将秘密存储在代码中
- 从不修改
security.ts未经审查 - 所有技能开始时未经批准
- Webhook处理程序验证签名
- 不
.collect()没有.take(n)
贡献
- 分叉回购
- 创建要素分支
- 按照CLAUDE.md指南进行更改
- 提交拉取请求
许可证
MIT许可证。叉它,拥有它。
______________________________________________________________________
