English | 中文
HexClaw Desktop (河蟹桌面客户端)
企业级安全的个人 AI Agent 一体化桌面客户端
Built with
Powered by
🌐 官网 hexclaw.net · 📖 在线文档 · ⬇️ 下载
macOS / Windows / Linux 原生运行 · Sidecar 架构本地部署 · 零云端依赖 · 数据完全私有
功能特性
| 功能 | 说明 |
|---|---|
| AI 对话 | 多模型支持: OpenAI / DeepSeek / Anthropic / Gemini / Qwen / Ollama,流式输出,Markdown + KaTeX 数学公式 / mhchem 化学式渲染,代码高亮,深度思考 |
| 图片/视频生成 | 智谱 CogView-4 图片生成 + CogVideoX-2 视频生成,统一文本对话框入口(无独立 mode 按钮),生成结果落盘到 {DataDir}/generated/ 后以 /api/v1/files/generated/... URL 引用(永不过期、不撑爆 SQLite),气泡内联预览 + 一直可见的下载按钮 |
| 本地模型 (Ollama) | 一键检测/关联本地 Ollama,自动发现已下载模型,状态机管理(检测→运行→关联),LM Studio/llama.cpp 走 OpenAI 兼容接入 |
| Agent 编排 | 自定义 Agent 角色/目标/背景,多 Agent 协作 (Handoff + Orchestrate + Spawn),Agent 会议模式,角色模板库 |
| 场景包 / K12 作业辅导 | 通过通用 scenarioRegistry 挂载作业辅导助手模板:孩子档案、默认辅导技能、拍照识题、渐进提示、错题本/积累本/学情报告、家长备课卡、验算徽章与入库徽章;多孩按 Agent 实例隔离 |
| 自主 Agent | Budget 三维预算兜底 (token/时间/金额),代码执行沙箱 (macOS Seatbelt/Linux Namespace/Windows 5 层隔离),Checkpoint 长任务恢复 |
| 工具审批 | 危险工具 WebSocket 实时审批 (ToolApprovalCard),safe/sensitive/dangerous 三级风险分类,"始终允许"记忆 |
| Skill 系统 | 技能市场 + 自定义技能 + LLM 创建新 Skill (SkillWriter + 安全扫描),Skill Chain 链式调用,依赖管理,Tool 注册与 Per-tool 权限 |
| MCP 协议 | Model Context Protocol 工具集成 (stdio/SSE/Streamable HTTP),OAuth 2.0+PKCE 认证,命令白名单安全校验,一键安装+持久化,工具注解解析 |
| 工作流画布 | 可视化拖拽编排 Agent 工作流,DAG 图执行引擎 |
| 知识库 (RAG) | 文档上传/解析/向量检索,支持 PDF / Markdown / TXT 等格式;Auto-RAG 自动检索知识库注入上下文 (score >= 0.35) |
| 记忆系统 | 长期记忆 + 短期记忆 + 语义搜索,跨会话记忆持久化,VectorMemory 向量语义回忆 |
| 工具智能 | 工具结果缓存 (LRU+TTL),Per-tool 超时+指数退避重试,工具执行指标收集 (JSONL),MCP 结构化日志+轮转 |
| 安全网关 | Prompt 注入检测 / 工具输出清洗 (HTML/Unicode/LLM 分隔符) / PII 过滤 / 内容过滤 / RBAC 权限控制 / SSRF 防护 |
| 文件操作 | Agent 可读/写/编辑 workspace 文件 (ReadSkill/WriteSkill/EditSkill),路径校验+symlink 防护 |
| 定时任务 | Cron 调度,周期性执行 Agent 任务 |
| IM 通道 | 飞书 / 钉钉 / 企微 / 微信 / Slack / Discord / Telegram,通过 IM 远程与 AI 对话 |
| 深度研究 | 4 阶段自主调研(搜索→分析→综合→报告),基于 Hexagon Plan-and-Execute 引擎 |
| 文档解析 | 聊天中直接上传 PDF / Word / Excel / CSV,自动提取文本作为上下文 |
| Webhook 通知 | 企微 / 飞书 / 钉钉机器人 Webhook 推送,任务完成自动通知 |
| ClawHub 技能市场 | 浏览、语义搜索 (TF-IDF)、安装社区 Skill/MCP,Hub 依赖自动解析 |
| 首次引导 | 3 步 Welcome 向导(选 Provider → 选模型 → 测试连接),零配置门槛 |
| 实时日志 | WebSocket 流式日志,Agent 执行链路全程追踪 |
| 多语言 | 中文 / English / 维吾尔语 (ug-CN,含 RTL 从右到左排版),vue-i18n 国际化 |
| 系统托盘 | 最小化到托盘,托盘菜单快捷操作 |
| 全局快捷键 | ⌘+Shift+H 随时唤起 Quick Chat 窗口 |
| 自动更新 | Tauri Updater,应用内一键升级 |
生态链
toolkit → ai-core → hexagon → hexclaw → hexclaw-desktop
→ hexclaw-ui
→ hexagon-ui
| 项目 | 定位 | 语言 |
|---|---|---|
| toolkit | 通用工具箱 — 基础设施库 (日志/配置/HTTP/并发/错误链) | Go |
| ai-core | AI 能力底座 — LLM Provider/Embedding/向量/记忆 | Go |
| hexagon | 全能 AI Agent 框架 — ReAct/Plan-and-Execute/Tool 调度 | Go |
| hexclaw | 河蟹后端 — Sidecar 服务 (RESTful API/RAG/Cron/安全网关) | Go |
| hexclaw-hub | 技能市场数据 — 在线技能目录 (index.json + Markdown 技能) |
数据仓库 |
| hexclaw-desktop | 河蟹桌面客户端 (本仓库) | Rust + Vue 3 |
| hexclaw-ui | 河蟹 Web 端 — Web 客户端 (同时作为桌面端 UI 渲染层复用) | Vue 3 |
| hexagon-ui | Agent 观测台 — 可观测性面板 (链路追踪/推理回放/性能分析) | Vue 3 |
架构
HexClaw.app
┌───────────────────────────────────────────────────────────────────┐
│ Tauri Shell (Rust) │
│ 窗口管理 · 系统托盘 · 原生菜单 · 全局快捷键 · 单实例 · 自动更新 │
│ API 代理 (CORS bypass) · Sidecar 进程管理 │
├───────────────────────────────────────────────────────────────────┤
│ Vue 3 前端 (WebView) │
│ ┌────────┬────────┬────────┬────────┬────────┬────────┬───────┐ │
│ │ Chat │ Agents │知识中心 │ 自动化 │ IM通道 │ 集成 │ 日志 │ │
│ │ (默认) │ │文档|记忆│任务|Web │ │技能|MCP|P│ │ │
│ │ │ │ │ hook │ │ │ 设置 │ │
│ └───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────┘ │
│ │ Pinia Store │ Vue Router │ Tauri invoke (IPC) │
├──────┴─────────────────┴──────────────────┴───────────────────────┤
│ Tauri Commands (Rust → Go) │
│ check_engine_health · proxy_api_request · get_sidecar_status │
│ backend_chat · stream_chat · restart_sidecar · get_platform_info │
├───────────────────────────────────────────────────────────────────┤
│ HTTP / WebSocket ←→ localhost:16060 │
├───────────────────────────────────────────────────────────────────┤
│ hexclaw serve (Go Sidecar) │
│ Agent 引擎 · LLM 路由 · RAG · MCP · CORS · 安全网关 · Cron │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Hexagon Framework ← ai-core (LLM/Tool/Memory) │ │
│ │ ← toolkit (Log/Config/HTTP/Concurrency)│ │
│ └────────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────────┘
设计模式与 Docker Desktop 管理 Docker Engine 一致 — Tauri 壳管理 Go Sidecar 进程。 前后端通过 Tauri IPC 代理通信(解决 WebView CORS 限制),完全解耦。
Go Sidecar 默认监听
localhost:16060,可通过 hexclaw 配置文件修改端口。
安装包内还内嵌了若干随包二进制:Ollama(本地模型推理)、Pandoc + Typst(文档渲染:Markdown → docx/pdf 等)。它们作为独立子进程被调用,对应
src-tauri/binaries/下的ollama-bundle/、pandoc-*、typst-*,许可证见 THIRD_PARTY.md。
Claude Code 开发实战 SOP
这个仓库同时是"用 Claude Code 做出一个能跑的产品"的工作流实录。业余时间 × 一个人 × 6 核心仓库 × 68 万行代码背后的完整 SOP,已全部开源。
- 📝 公众号文章:《河蟹 AI 背后的 Claude Code SOP:设计驱动 × 测试闭环 × 多 Agent 协作》 — 完整叙事 + 三条主线的具体做法
- 📂 开源 SOP 包:
docs/claude-code-practices/— 4 份实战手册 + 7 个可直接复制的 Claude Code 命令 + 3 个开箱即用 Hooks + DevTestOps Skill + CLAUDE.md 模板
三条主线:
| 主线 | 核心做法 |
|---|---|
| ✏️ 设计驱动 | Plan 模式 → 多方案对比 → ADR 决策,不做"一句话 + 秒出代码" |
| ✅ 测试闭环 | 不接受 "should pass" / "probably OK"——测试跑过、grep 扫过残留才算完成 |
| 🤖 多 Agent 协作 | Claude 写代码 / Codex 审代码 / 人类决策,交叉审查消除单模型盲区 |
# 一次性把整套 SOP 装进 Claude Code
mkdir -p ~/.claude/commands ~/.claude/data ~/.claude/skills ~/.claude/hooks
cp docs/claude-code-practices/command/*.md ~/.claude/commands/
cp docs/claude-code-practices/data/*.md ~/.claude/data/
cp -r docs/claude-code-practices/skill/devtestops ~/.claude/skills/
cp docs/claude-code-practices/hooks/*.sh ~/.claude/hooks/ && chmod +x ~/.claude/hooks/*.sh
技术栈
| 层 | 技术 | 版本 |
|---|---|---|
| 桌面框架 | Tauri | v2 |
| 前端框架 | Vue 3 (Composition API) | 3.5+ |
| 语言 | TypeScript | 5.9+ |
| 状态管理 | Pinia | 3.x |
| UI 组件库 | Naive UI + 自定义设计系统 | - |
| 样式 | Tailwind CSS | 4.x |
| 路由 | Vue Router | 5.x |
| 国际化 | vue-i18n (中文 / English / 维吾尔语 RTL) | 11.x |
| 图标 | Lucide Vue | - |
| Markdown | markdown-it + @mdit/plugin-katex + KaTeX/mhchem + Shiki (代码高亮) | - |
| 文档解析 | pdfjs-dist + mammoth + xlsx | - |
| 数据存储 | Tauri Store (plugin-store) + localStorage (Pinia 持久化插件);会话/消息由后端 sidecar 持久化 | - |
| HTTP 客户端 | ofetch (前端) / reqwest (Rust 代理) | - |
| 构建工具 | Vite | 7.x |
| 测试 | Vitest + @vue/test-utils | - |
| Lint | ESLint + oxlint + Prettier | - |
| 后端 Sidecar | hexclaw serve (Go) | Go 1.25+ |
| Agent 框架 | Hexagon | - |
| Rust 层 | Tauri Shell + 插件生态 | Rust 2021 edition |
安装
一键安装 (macOS)
curl -fsSL https://raw.githubusercontent.com/hexagon-codes/hexclaw-desktop/main/install.sh | bash
自动检测 CPU 架构(Apple Silicon / Intel),下载最新版并安装到 /Applications,无需手动处理 Gatekeeper 拦截。
Homebrew (macOS)
brew tap hexagon-codes/tap
brew install --cask hexclaw
后续升级:brew upgrade --cask hexclaw
GitHub Releases
前往 Releases 下载对应平台安装包:
| 平台 | 格式 |
|---|---|
| macOS (Apple Silicon) | .dmg |
| macOS (Intel) | .dmg |
| Windows | .msi / .exe (NSIS) |
| Linux | .deb / .AppImage |
macOS 用户注意:浏览器直接下载的
.dmg可能被 Gatekeeper 拦截。推荐使用上方的一键安装脚本或 Homebrew 安装,它们会自动处理 Gatekeeper 问题。 如果手动下载安装,在终端执行xattr -cr /Applications/HexClaw.app即可解除拦截。
CI / 打包 / Release 流程
push / PR -> CI: 自动运行 lint、type-check、test、web buildActions -> Package -> Run workflow: 手动构建各平台测试安装包,产物保存在 workflow artifactsgit tag vX.Y.Z && git push origin vX.Y.Z -> Release: 构建并发布正式 GitHub Release 安装包- 正式版发布后自动更新 Homebrew Tap(计算 DMG SHA256 → 推送 Cask 更新)
正式发布前需要满足:
package.json、src-tauri/tauri.conf.json与src-tauri/Cargo.toml的版本号和 tag 一致src-tauri/tauri.conf.json中已写入 Tauri updater 公钥plugins.updater.pubkey- GitHub Actions secrets 已配置
TAURI_SIGNING_PRIVATE_KEY(可选,用于 Tauri 自动更新签名)
macOS 产物为 unsigned DMG,用户通过
curl | bash一键安装脚本或 Homebrew 安装,自动处理 Gatekeeper。
详细使用说明请参阅 使用指南(English Guide)。
开发
前置要求
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 20.19 或 >= 22.12 | JavaScript 运行时 |
| pnpm | 10.x (仓库锁定 [email protected]) | 包管理器 |
| Rust | stable (2021 edition) | Tauri 编译 |
| Go | >= 1.25 | Sidecar 编译 |
快速开始
# 1. 克隆仓库
git clone https://github.com/hexagon-codes/hexclaw-desktop.git
cd hexclaw-desktop
# 2. 安装依赖
make install
# 等价于: pnpm install && cd src-tauri && cargo fetch
# 3. 编译 Go sidecar (首次需要,默认拉取远程 GitHub hexclaw v0.5.0)
make sidecar
# 本机全生态联调/装机测试:使用 ../hexclaw 和 ../go.work 中的本地最新代码
make sidecar-local
# 本机装机包:先校验本地 Go workspace,再重建 sidecar、生成 .app 和本地测试 DMG
make package-local
# 4. 启动开发模式
make dev
注意:
make sidecar默认会从https://github.com/hexagon-codes/hexclaw.git拉取refs/tags/v0.5.0到/tmp/hexclaw-gith-src并编译- 如需切换后端版本,可显式指定:
make sidecar HEXCLAW_REF=refs/tags/<tag>- 本机装机测试使用
make sidecar-local,等价于HEXCLAW_LOCAL_SRC=../hexclaw HEXCLAW_GOWORK=../go.work make sidecar,会让ai-core、hexagon、toolkit走本地 Go workspace- 本机完整打包使用
make package-local,会先运行verify-local-deps,如果任一核心模块未解析到/Users/hexagon/work下会直接失败;macOS 本地 DMG 使用稳定的hdiutil create -srcfolder路径,避免 Finder/AppleScript 美化流程影响装机测试- 技能市场默认读取
https://github.com/hexagon-codes/hexclaw-hub的v0.0.2标签;运行时可在~/.hexclaw/hexclaw.yaml的skills.hub覆盖
Make 命令
| 命令 | 说明 |
|---|---|
make dev |
开发模式 (Vite HMR + Tauri 窗口) |
make build |
构建生产版本 |
make package-local |
校验本地 Go workspace、重建本地 sidecar、构建 .app 和本机测试 DMG |
make build-web |
仅构建前端 |
make verify-local-deps |
校验 hexclaw/ai-core/hexagon/toolkit 都解析到本地 workspace |
make sidecar |
编译 Go sidecar (当前平台) |
make sidecar-local |
使用本地 ../hexclaw + ../go.work 编译当前平台 sidecar |
make sidecar-all |
交叉编译所有平台 sidecar |
make sidecar-all-local |
使用本地全生态代码交叉编译所有平台 sidecar |
make lint |
代码检查 (oxlint + ESLint) |
make lint-fix |
代码检查并自动修复 |
make format |
代码格式化 (Prettier) |
make type-check |
TypeScript 类型检查 |
make test |
运行单元测试 |
make clean |
清理构建产物 |
make install |
安装所有依赖 |
项目结构
hexclaw-desktop/
├── src/ # Vue 3 前端源码
│ ├── api/ # API 客户端 (Tauri IPC + HTTP fallback)
│ │ ├── client.ts # HTTP/WS/IPC 基础客户端
│ │ ├── chat.ts # 聊天 API (WebSocket + HTTP 回退)
│ │ ├── agents.ts # Agent 管理 API
│ │ ├── skills.ts # Skill + ClawHub 市场 API
│ │ ├── canvas.ts # 工作流画布 API
│ │ ├── mcp.ts # MCP 协议 API
│ │ ├── knowledge.ts # 知识库 API
│ │ ├── memory.ts # 记忆系统 API
│ │ ├── tasks.ts # 定时任务 API
│ │ ├── config.ts # LLM 配置 API (Tauri 代理)
│ │ ├── desktop.ts # 桌面功能 API (通知/剪贴板)
│ │ ├── im-channels.ts # IM 通道 API (飞书/钉钉/企微等)
│ │ ├── k12.ts # K12 场景包 API 契约 (/api/k12/*)
│ │ ├── team.ts # 团队协作 API
│ │ ├── voice.ts # 语音 API (TTS/STT)
│ │ ├── webhook.ts # Webhook 通知 API
│ │ ├── websocket.ts # 聊天 WebSocket 客户端
│ │ ├── logs.ts # 日志 API + WebSocket 流
│ │ ├── settings.ts # 设置 API
│ │ └── system.ts # 系统信息 API
│ ├── components/ # 组件
│ │ ├── layout/ # 布局 (AppLayout/Sidebar/TitleBar/ContextBar/DetailPanel)
│ │ ├── chat/ # 聊天 (ChatInput/SessionList/MarkdownRenderer/ToolApprovalCard/BudgetPanel/AgentBadge/Interactive* 等)
│ │ ├── settings/ # 设置 (OllamaCard/ModelManagerModal/SettingsNotification/SettingsSecurity)
│ │ ├── artifacts/ # 产物 (ArtifactsPanel/ArtifactPreview/ArtifactCodeView/ArtifactDiffView)
│ │ ├── inspector/ # 右侧详情 (InspectorContext/ContextCard/KeyValueRow/TimelineItem)
│ │ ├── canvas/ # 画布 (TemplateGallery)
│ │ ├── channels/ # IM 通道 (AgentRoutingRules)
│ │ ├── automation/ # 自动化 (WebhookPanel)
│ │ ├── cron/ # 定时任务 (CronJobConfirmCard)
│ │ ├── logs/ # 日志 (LogEntry/LogStats)
│ │ └── common/ # 通用 (CommandPalette/ConfirmDialog/ToastProvider/ErrorBoundary 等)
│ ├── contracts/ # 场景扩展契约 (ViewDescriptor/RecordSchema/VerifyResult)
│ ├── shell/ # 领域无关 shell 扩展槽 (scenario registry/records/message badges)
│ ├── features/ # 场景包实现
│ │ └── k12/ # 作业辅导助手 (建档/辅导/错题本/备课卡/学情)
│ ├── views/ # 页面视图
│ │ ├── ChatView.vue # AI 对话 (默认首页 · 会话/附件/Artifacts/模型切换)
│ │ ├── AgentsView.vue # Agent 管理 (模板/运行中/规则/会议)
│ │ ├── KnowledgeCenterView.vue # 知识中心 (文档 + 记忆 Tab)
│ │ ├── KnowledgeView.vue # 知识库 (文档 CRUD/上传/搜索)
│ │ ├── MemoryView.vue # 记忆管理 (编辑/搜索/清空)
│ │ ├── AutomationView.vue # 自动化 (任务 + Webhook Tab)
│ │ ├── TasksView.vue # 定时任务 (Cron 管理)
│ │ ├── CanvasView.vue # 工作流画布 (DAG 编排)
│ │ ├── IntegrationView.vue # 集成 (Skills + MCP + Prompts Tab)
│ │ ├── SkillsView.vue # Skill 管理 + ClawHub 市场
│ │ ├── McpView.vue # MCP 管理 (服务器/工具/测试)
│ │ ├── PromptsView.vue # Prompt 库 (模板/搜索/复用)
│ │ ├── IMChannelsView.vue # IM 通道管理 (飞书/钉钉/企微等)
│ │ ├── LogsView.vue # 日志查看 (实时流/过滤/统计)
│ │ ├── SettingsView.vue # 设置 (LLM/安全/通知/Webhook/主题/语言)
│ │ ├── AboutView.vue # 关于 (独立窗口)
│ │ ├── QuickChatView.vue # 快捷聊天 (独立窗口)
│ │ └── WelcomeView.vue # 首次引导 (Provider → 模型 → 测试)
│ ├── stores/ # Pinia 状态管理 (thin store,业务逻辑委托 services/controllers)
│ │ ├── app.ts # 全局状态 (连接/侧边栏/详情面板)
│ │ ├── chat.ts # 聊天 (会话/消息/流式/Artifacts;消息由后端 sidecar 持久化)
│ │ ├── agents.ts # Agent 角色
│ │ ├── canvas.ts # 画布 (节点/边/工作流/运行)
│ │ ├── logs.ts # 日志 (WebSocket 流/过滤/统计)
│ │ ├── settings.ts # 设置 (LLM + 安全 + 通知, Tauri Store 持久化)
│ │ └── plugins/persist.ts # Pinia 持久化插件 (localStorage + 版本迁移)
│ ├── composables/ # 组合式函数
│ │ ├── useHexclaw.ts # hexclaw 连接状态 + 健康检查轮询
│ │ ├── useWebSocket.ts # WebSocket 封装 (自动重连)
│ │ ├── useSSE.ts # SSE 流式请求
│ │ ├── useShortcuts.ts # 应用内快捷键 (⌘1~N 切页面)
│ │ ├── useTheme.ts # 主题 (深色/浅色/跟随系统)
│ │ ├── useAutoUpdate.ts # 自动更新 (Tauri updater)
│ │ ├── useVoice.ts # 语音 (TTS/STT/语音对话)
│ │ ├── useValidation.ts # 表单校验
│ │ ├── useKeyboardNav.ts # 键盘导航 + 焦点陷阱
│ │ ├── usePlatform.ts # 平台检测 (macOS/Windows/Linux)
│ │ ├── useChatSend.ts # 发送消息 + Auto-RAG 知识库检索
│ │ ├── useChatActions.ts # 聊天操作 (重发/编辑/删除等)
│ │ ├── useCron*.ts # Cron 解析/编译/常驻挂件
│ │ └── useConversationAutomation.ts # 会话自动化 (自动标题等)
│ ├── services/ # 业务逻辑服务层
│ │ ├── chatService.ts # 聊天服务 (WebSocket/HTTP 发送)
│ │ └── messageService.ts # 消息服务 (消息构建/后端持久化)
│ ├── i18n/ # 国际化 (中文 zh-CN / 英文 en / 维吾尔语 ug-CN RTL)
│ ├── router/ # 路由 (基于 navigation.ts 动态生成,默认重定向 /chat)
│ ├── types/ # TypeScript 类型定义
│ ├── utils/ # 工具函数
│ │ └── file-parser.ts # 文档解析器 (PDF/Word/Excel/CSV)
│ ├── config/ # 前端配置
│ │ ├── env.ts # 环境配置
│ │ ├── navigation.ts # 导航注册表 (四组: home/build/connections/system)
│ │ ├── llm-providers.ts # LLM Provider 配置
│ │ └── providers.ts # Provider 元数据
│ └── assets/ # 静态资源 (Logo/图标/IM Logo)
├── src-tauri/ # Tauri (Rust) 层
│ ├── src/
│ │ ├── main.rs # 入口
│ │ ├── lib.rs # 应用初始化 & 插件注册
│ │ ├── commands.rs # Tauri IPC 命令 (健康检查/API 代理/流式聊天/文件保存)
│ │ ├── sidecar.rs # Go Sidecar 进程管理
│ │ ├── ollama.rs # 内嵌 Ollama 进程管理
│ │ ├── tray.rs # 系统托盘
│ │ ├── menu.rs # macOS 原生菜单
│ │ └── window.rs # 窗口管理 & 全局快捷键 (⌘⇧H Quick Chat)
│ ├── binaries/ # 内嵌二进制 (hexclaw sidecar + pandoc + typst + ollama-bundle)
│ ├── render-assets/ # 文档渲染资产 (reference.docx,随包打入)
│ ├── icons/ # 应用图标
│ ├── capabilities/ # Tauri v2 权限配置
│ ├── tauri.conf.json # Tauri 配置
│ ├── build.rs # Rust 构建脚本
│ └── Cargo.toml # Rust 依赖
├── docs/ # 文档
│ ├── guide.md # 使用指南 (中文)
│ ├── guide.en.md # 使用指南 (英文)
│ ├── updates.md # 自动更新发布说明 (中文)
│ ├── updates.en.md # 自动更新发布说明 (英文)
│ ├── overview.md # 产品总览 (中文)
│ ├── overview.en.md # 产品总览 (英文)
│ └── claude-code-practices/ # Claude Code 实战 SOP (4 手册 + 7 命令 + Hooks + DevTestOps Skill + 模板)
├── homebrew/ # Homebrew Cask 定义 + 更新脚本
├── install.sh # macOS 一键安装脚本
├── scripts/ # CI/构建脚本
├── .github/ # GitHub CI/CD
├── Makefile # 开发命令
├── vite.config.ts # Vite 配置
├── vitest.config.ts # Vitest 测试配置
├── eslint.config.ts # ESLint 配置
├── tsconfig.json # TypeScript 配置
├── package.json # Node 依赖
├── LICENSE # Apache 2.0 许可证
└── README.md
构建
生产构建
# 完整构建 (前端 + Tauri 打包)
make build
# 输出位置:
# macOS: src-tauri/target/release/bundle/macos/HexClaw.app
# DMG: src-tauri/target/release/bundle/dmg/HexClaw_*.dmg
指定目标平台构建
# macOS Intel
npx @tauri-apps/cli build --target x86_64-apple-darwin
# macOS Apple Silicon
npx @tauri-apps/cli build --target aarch64-apple-darwin
Sidecar 交叉编译
# 编译所有平台
make sidecar-all
# 或单独编译指定平台
make sidecar-darwin-arm64 # macOS Apple Silicon
make sidecar-darwin-amd64 # macOS Intel
make sidecar-linux-amd64 # Linux x86_64
make sidecar-windows-amd64 # Windows x86_64
# 本机装机测试/全生态联调,优先使用本地最新 hexclaw + ai-core + hexagon + toolkit
make sidecar-all-local
Sidecar 二进制输出到 src-tauri/binaries/ 目录,Tauri 打包时会自动内嵌。构建时会注入真实的 tag / commit / built 时间,方便在已安装应用里核对后端版本。
测试
# 运行单元测试
pnpm test:unit
# 或使用 Make
make test
测试文件规范:
- 测试文件与源码同目录,命名为
*.test.ts或*.spec.ts - Store 测试放在
src/stores/__tests__/目录 - 使用 Vitest + @vue/test-utils
常见问题
macOS 提示"无法打开"或"已损坏"
推荐使用一键安装脚本或 Homebrew 安装(自动处理 Gatekeeper):
# 方式 1:一键安装
curl -fsSL https://raw.githubusercontent.com/hexagon-codes/hexclaw-desktop/main/install.sh | bash
# 方式 2:Homebrew
brew tap hexagon-codes/tap && brew install --cask hexclaw
如果已经手动下载了 DMG,在终端执行:
xattr -cr /Applications/HexClaw.app
侧边栏显示 "Engine stopped" 但后端已启动
- 确认 hexclaw 进程在运行:
ps aux | grep hexclaw - 确认端口监听正常:
curl http://localhost:16060/health - 如果 curl 成功但前端仍显示 stopped,检查是否是旧版本应用(重新
make build并安装最新版本)
make sidecar 编译失败
- 确认 Go >= 1.25 已安装:
go version - 确认能访问 GitHub 并成功拉取远程源码:
git ls-remote --tags https://github.com/hexagon-codes/hexclaw.git v0.5.0 - 确认 Rust 工具链已安装 (用于检测平台 triple):
rustc -vV
make dev 启动后白屏
Sidecar 可能未编译或端口冲突。检查:
- 确认已执行
make sidecar - 确认
16060端口未被占用:lsof -i :16060
hexclaw 后端启动失败
- 查看错误日志:
~/.hexclaw/hexclaw.log - 直接运行 sidecar 查看输出:
./src-tauri/binaries/hexclaw-$(rustc -vV | grep host | awk '{print $2}') serve --desktop - 即使未配置 LLM API Key,hexclaw 也应该能正常启动(LLM 功能降级,基础 API 仍可用)
贡献指南
工作流程
- Fork 本仓库
- 创建功能分支:
git checkout -b feat/your-feature - 提交更改:
git commit -m "feat: 添加新功能" - 推送分支:
git push origin feat/your-feature - 创建 Pull Request
代码规范
- 格式化:
make format(Prettier) - 检查:
make lint(ESLint + oxlint,只检查不修改文件) - 类型检查:
make type-check(vue-tsc)
Commit Message 格式
遵循 Conventional Commits 规范:
feat: 添加新功能
fix: 修复问题
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具链
在线资源
- 🌐 官网: hexclaw.net
- 📖 中文文档: hexclaw.net/zh/docs
- 📖 English Docs: hexclaw.net/en/docs
- 🐙 GitHub: hexagon-codes/hexclaw-desktop
- 📝 Claude Code SOP: 《河蟹 AI 背后的 Claude Code SOP》 · 开源 SOP 包
联系我们
- 官网: hexclaw.net
- GitHub Issues: hexclaw-desktop/issues
- 河蟹 AI: [email protected]
- 河蟹支持: [email protected]
微信公众号
关注 HexClaw 微信公众号,获取最新动态、使用教程和版本更新:
No comments yet
Be the first to share your take.