[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74646":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},74646,"openilink-hub","openilink\u002Fopenilink-hub","openilink","开源微信 Bot 管理平台 + App 应用市场 | Self-hosted WeChat Bot Platform with App Marketplace | Lark · Slack · Discord · DingTalk · GitHub · Notion · 20+ Apps | AI Tools | 7 Language SDKs","https:\u002F\u002Fopenilink.com",null,"Go",1323,100,1,7,0,3,11,91,13,19.01,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ai-chatbot","ai-tools","app-marketplace","bot-management","chatbot","dingtalk","discord","golang","ilink","lark","notion","react","self-hosted","slack","webhook","wechat","wechat-bot","2026-06-12 02:03:26","> **免责声明**：本项目基于公开的 iLink 协议进行独立开发，仅供学习交流与技术研究使用。项目与 iLink 协议的官方团队无任何关联或授权关系。若相关权利方认为本项目存在侵权，请通过 Issue 联系我们，我们将在确认后第一时间予以下架处理。\n>\n> **Disclaimer:** This project is independently developed based on the publicly available iLink protocol for learning and research purposes only. It is not affiliated with or endorsed by the official iLink team. If any rights holder believes this project infringes upon their rights, please contact us via an Issue and we will take it down promptly upon confirmation.\n\n\u003Cdiv align=\"center\">\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fopenilink\u002Fopenilink.com\u002Fmain\u002Fbrand\u002Flogo-white.svg\">\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fopenilink\u002Fopenilink.com\u002Fmain\u002Fbrand\u002Flogo-black.svg\">\n  \u003Cimg alt=\"OpeniLink Hub\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fopenilink\u002Fopenilink.com\u002Fmain\u002Fbrand\u002Flogo-white.svg\" width=\"360\" \u002F>\n\u003C\u002Fpicture>\n\n\u003Cbr>\u003Cbr>\n\n**微信 ClawBot iLink 协议的开源消息管理平台 + App 应用市场**\u003Cbr>\n**Open-source message management platform + App Marketplace for WeChat ClawBot (iLink protocol)**\n\n扫码绑定微信号，通过应用市场一键扩展能力 —— 飞书 \u002F Slack \u002F Discord \u002F GitHub \u002F Notion 等 20+ App，装上就用\u003Cbr>\n多 Bot 管理 · 20+ App · 平台互通 · 效率工具 · 生活助手 · AI Tools · 7 种语言 SDK · Passkey 登录\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fopenilink\u002Fopenilink-hub?style=flat-square)](LICENSE)\n[![Go](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGo-1.25-00ADD8?style=flat-square&logo=go&logoColor=white)](https:\u002F\u002Fgo.dev)\n[![React](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61DAFB?style=flat-square&logo=react&logoColor=black)](https:\u002F\u002Freact.dev)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Fopenilink\u002Fopenilink-hub?style=flat-square&logo=docker&logoColor=white)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fopenilink\u002Fopenilink-hub)\n[![GitHub Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fopenilink\u002Fopenilink-hub?style=flat-square&logo=github)](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-hub\u002Fstargazers)\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fopenilink\u002Fopenilink-hub?style=flat-square)](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-hub\u002Freleases)\n\n[官网 & 文档](https:\u002F\u002Fopenilink.com) · [在线体验](https:\u002F\u002Fhub.openilink.com) · [快速开始](#快速开始) · [应用市场](#app-应用市场) · [SDK](#sdk-生态) · [English](#english)\n\n\u003C\u002Fdiv>\n\n---\n\n## 快速开始\n\n```bash\n# 一键安装（Linux \u002F macOS）\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fopenilink\u002Fopenilink-hub\u002Fmain\u002Finstall.sh | sh\n\n# 启动\noih\n\n# 或者用 Docker（二选一）\ndocker run -d -p 9800:9800 openilink\u002Fopenilink-hub:latest              # Docker Hub\n# 或者 \u002F or:\ndocker run -d -p 9800:9800 ghcr.io\u002Fopenilink\u002Fopenilink-hub:latest     # GHCR\n```\n\n打开 `http:\u002F\u002Flocalhost:9800`，注册账号（**第一个注册的自动当管理员**），扫码绑定微信号，完事。\n\n> 默认用 SQLite，不用装数据库，不用配任何东西。想用 PostgreSQL？设个 `DATABASE_URL` 就行。\n\n---\n\n## 这是什么？\n\n2026 年 3 月微信推出了 **ClawBot 插件**，底层叫 **iLink（智联）** 协议 —— 第一次官方允许你用程序收发微信消息。\n\n但 iLink 只是个原始通道：能收消息、能发回复，没了。你还得自己处理 context_token、CDN 加密、24 小时过期、多 Bot 管理……\n\n**OpeniLink Hub 把这些全包了**，并且通过 **App 应用市场** 让你一键扩展功能：\n\n- 扫码绑定，Web 后台管理多个 Bot\n- 应用市场一键装功能 —— 对接飞书 \u002F Slack \u002F GitHub \u002F Notion，查天气、记账、AI 对话，不用写代码\n- WebSocket \u002F Webhook \u002F AI 三个通道同时转发消息到你的服务\n- 24 小时窗口自动续期，不掉线\n- 消息链路追踪，出问题一眼看到卡在哪\n\n```mermaid\nflowchart TD\n    subgraph WeChat\n        A[微信 ClawBot 插件]\n    end\n\n    A -->|iLink 协议| B[OpeniLink SDK]\n    subgraph OpeniLink[\"OpeniLink Hub\"]\n      C[消息调度]\n    end\n    B --> C\n\n    C --> D[App: 平台互通\u003Cbr\u002F>飞书 \u002F Slack \u002F Discord \u002F 钉钉 \u002F 企业微信]\n    C --> E[App: 效率工具\u003Cbr\u002F>GitHub \u002F Google \u002F Notion \u002F Linear]\n    C --> F[App: 生活工具\u003Cbr\u002F>天气 \u002F 汇率 \u002F 记账 \u002F 地图 \u002F RSS ...]\n    C --> G[App: OpenClaw]\n    C --> H[自定义 App]\n    C --> I[WebSocket 实时推送]\n    C --> J[Webhook 转发]\n    C --> K[AI 自动回复]\n\n    D --> L[第三方平台\u003Cbr\u002F>消息互通 + AI Tools]\n    E --> M[项目管理 \u002F 文档协作 \u002F 代码仓库]\n    F --> N[日常查询 \u002F 自动化 \u002F 个人助手]\n    G --> O[AI Agent Gateway]\n    H --> P[你的业务系统]\n    I --> Q[实时客户端]\n    J --> R[HTTP 回调服务]\n    K --> S[LLM]\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>和 OpenClaw 什么关系？\u003C\u002Fb>\u003C\u002Fsummary>\n\nOpenClaw 是 AI Agent 框架，OpeniLink Hub 是消息管理平台，两个东西。\n\n在 Hub 里，OpenClaw 是一个**内置 App** —— 在应用市场一键启用就行。当然你也可以完全不用 OpenClaw，选别的 App 或直接用 WebSocket\u002FWebhook 对接你自己的服务。\n\n简单说：**OpenClaw 管 AI 逻辑，Hub 管消息收发和 App 分发**，各干各的，想连就连。\n\n\u003C\u002Fdetails>\n\n## 为什么用 Hub？\n\n### 自己对接 iLink 会遇到这些问题\n\n| 你遇到的问题 | Hub 怎么解决 |\n|---|---|\n| iLink 没有官方文档，全靠社区逆向 | 完善中文文档 + 7 种语言 SDK |\n| context_token 管理复杂，消息经常发不出去 | SDK 自动处理，你只管收消息发回复 |\n| 24 小时过期掉线，重要消息丢了 | 自动续期 + 消息持久化 |\n| 发图片要自己搞 CDN 上传 + AES 加密 | 一行代码发图片视频文件 |\n| 只能命令行操作，管不了多个 Bot | Web 控制台，扫码绑定、状态监控、消息追踪 |\n| 想加功能得自己写代码 | 应用市场一键安装，不写代码也能扩展 |\n\n### 和其他开源项目比\n\nGitHub 上有不少 iLink 相关的开源项目，但大多是底层 SDK 或 Agent 桥接工具。Hub 是目前唯一带**管理后台 + 应用市场 + 多通道分发**的完整平台。\n\n| | OpeniLink Hub | 其他方案 |\n|---|---|---|\n| **定位** | 完整消息管理平台 | SDK \u002F Agent 桥接器 |\n| **应用市场** | 有，一键装功能，支持社区 App | 无 |\n| **Web 后台** | 完整控制台 + 消息追踪 | 无 \u002F 仅配置面板 |\n| **消息分发** | App + WebSocket + Webhook + AI 并行 | 单一通道 |\n| **SDK** | 7 种语言 | 1~4 种 |\n| **部署** | 一行命令，内置 SQLite 零配置 | 需要外部数据库 |\n| **OpenClaw 依赖** | 完全独立（可选适配） | 部分强依赖 |\n\n## 核心特性\n\n**App 应用市场** · 不写代码也能扩展 Bot。20+ 官方 App 覆盖平台互通（飞书、Slack、Discord、钉钉、企业微信）、效率工具（GitHub、Google Workspace、Notion、Linear）、生活工具（天气、汇率、记账、地图、RSS）等场景。通过 PKCE OAuth 安全安装，支持第三方开发者上架。\n\n**多 Bot 管理** · 扫码绑定多个微信号，统一面板看状态，自动续期防掉线。\n\n**多通道消息下发**\n- **App** — 已安装的 App 自动接收匹配的消息，通过 WebSocket 或 Webhook 投递\n- **WebSocket** — 毫秒级实时推送\n- **Webhook** — HTTP 回调，对接任意服务\n- **AI 自动回复** — 接入 OpenAI 兼容 API，Bot 自动对话\n\n**消息追踪** · 每条消息从收到到投递的完整链路，哪一步耗时多少一目了然，出问题快速定位。\n\n**Passkey 登录** · 指纹、Face ID、硬件密钥直接登录，也支持 GitHub \u002F LinuxDo OAuth。\n\n**管理后台** · 用户管理、角色权限、OAuth 配置、AI 全局设置、App 管理，一站式掌控。\n\n## App 应用市场\n\nHub 的核心扩展机制。每个 App 是一个独立服务，通过标准协议与 Hub 交互。\n\n### 能装什么？\n\n**平台互通** — 微信与第三方平台双向消息互通 + AI Tools 自然语言操作\n\n| 应用 | 能干什么 |\n|------|---------|\n| **Lark（飞书）** 🔥 | 消息互通 + 34 个 AI Tools，覆盖日历、云文档、任务、通讯录、多维表格、邮箱、知识库、视频会议等 11 大业务域 |\n| **Slack** | 消息互通 + 23 个 AI Tools，管理频道、消息、用户、文件、提醒、书签 |\n| **Discord** | 消息互通 + 19 个 AI Tools，管理频道、成员、Embed、服务器 |\n| **DingTalk（钉钉）** | 消息互通 + 20 个 AI Tools，覆盖通讯录、日程、待办、审批、考勤、钉盘 |\n| **WeCom（企业微信）** | 消息互通 + 18 个 AI Tools，覆盖通讯录、日程、审批、打卡、微盘、客户联系 |\n\n**效率工具** — 在微信里用自然语言操作主流 SaaS 平台\n\n| 应用 | 能干什么 |\n|------|---------|\n| **GitHub** | 36 个 AI Tools，管理 Issue、PR、Repo、Actions、Release、Gist |\n| **Google Workspace** | 18 个 AI Tools，操作 Gmail、Calendar、Drive、Docs、Sheets |\n| **Notion** | 15 个 AI Tools，管理页面、数据库、评论、搜索 |\n| **Linear** | 13 个 AI Tools，管理 Issue、项目、团队、Cycle |\n\n**生活工具** — 轻量实用，零配置或免费 API 即可运行\n\n| 应用 | 能干什么 |\n|------|---------|\n| **Amap（高德地图）** | 10 个 AI Tools，POI 搜索、路线规划、天气、地理编码 |\n| **Weather（天气）** | 全球城市天气 + 空气质量查询 |\n| **Currency（汇率）** | 30+ 货币实时汇率换算 |\n| **Expense（记账）** | 微信记账 + 月报 + 分类统计 |\n| **Reminder（提醒）** | 一次性 \u002F 重复 \u002F Cron 定时提醒 |\n| **Cron（定时任务）** | Cron 调度 + 自动消息推送 |\n| **RSS** | RSS 订阅，新文章自动推送到微信 |\n| **QRCode（二维码）** | 二维码生成与解码，纯本地运算 |\n\n**开发者 & 基础设施**\n\n| 应用 | 能干什么 |\n|------|---------|\n| **Command Service** | `\u002Fs 600519` 查股价、`\u002Fgi 赛博朋克城市` 生成图片、`\u002Fa 帮我写邮件` AI 对话，20+ 命令 |\n| **OpenClaw** | 让 OpenClaw AI Agent 直接通过微信聊天 |\n| **Runner** | 把本地 CLI 命令暴露为微信可调用的 App Tools |\n| **Bridge** | 微信消息自动转发到你自己的服务器 |\n| **Echo** | 开发者模板，3 分钟上手写自己的 App |\n\n### App 类型\n\n| 类型 | 说明 | 示例 |\n|------|------|------|\n| **内置 App** | 随 Hub 一起提供，无需额外部署 | Bridge、OpenClaw |\n| **市场 App** | 从远程 Registry 安装 | Lark、GitHub、Weather 等 20+ |\n| **自定义 App** | 你自己开发的 | 你的业务系统 |\n\n### 怎么装？\n\n1. 在 Hub 后台进入「应用市场」\n2. 看到想要的 App，点「安装」\n3. 通过 PKCE OAuth 完成授权\n4. App 开始接收消息，完事\n\n### 怎么开发？\n\nApp 通过以下方式与 Hub 交互：\n\n- **接收事件**：WebSocket 连接或 Webhook 回调\n- **定义命令**：声明 tools 和 commands，用户通过 `\u002F命令` 或 `@提及` 触发\n- **发送回复**：调用 Hub API 发消息\n\n参考 [openilink-app-echo](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-echo) 快速上手。\n\n#### Mock Server（本地开发调试）\n\n不用跑真实 Hub + 微信 Bot，用 Mock Server 在本地开发和测试 App：\n\n```bash\n# 启动 Mock Server，将事件通过 Webhook 投递到你的 App\ngo run .\u002Fcmd\u002Fappmock --webhook-url http:\u002F\u002Flocalhost:8080\u002Fwebhook\n\n# 注入一条模拟消息，触发你的 App\ncurl -X POST http:\u002F\u002Flocalhost:9801\u002Fmock\u002Fevent \\\n  -d '{\"sender\":\"alice\",\"content\":\"@test-app hello\"}'\n\n# 查看你的 App 发了什么消息\ncurl http:\u002F\u002Flocalhost:9801\u002Fmock\u002Fmessages\n```\n\nMock Server 复用真实的 Bot API handler，行为与生产环境完全一致。完整文档见 [`docs\u002Fmock-server.md`](docs\u002Fmock-server.md)。\n\n## 架构总览\n\n```mermaid\nflowchart TB\n    subgraph Client[\"客户端\"]\n        direction TB\n        WX[微信号\u003Cbr\u002F>扫码绑定] --> Provider[Provider\u003Cbr\u002F>iLink]\n        UI[Web UI\u003Cbr\u002F>React] --> API[REST API\u003Cbr\u002F>Go]\n    end\n\n    Provider --> Broker[Message Broker]\n    API --> Broker\n\n    Broker --> AppDispatch[App 调度]\n    Broker --> WS[WebSocket\u003Cbr\u002F>实时客户端]\n    Broker --> WH[Webhook\u003Cbr\u002F>回调]\n    Broker --> AI[AI Sink\u003Cbr\u002F>自动回复]\n\n    AppDispatch --> BuiltinApps[内置 App\u003Cbr\u002F>Bridge \u002F OpenClaw]\n    AppDispatch --> MarketApps[市场 App\u003Cbr\u002F>Echo \u002F Command Service]\n    AppDispatch --> CustomApps[自定义 App]\n\n    subgraph Storage[\"存储\"]\n        DB[(SQLite \u002F PostgreSQL\u003Cbr\u002F>数据)]\n        MinIO[(MinIO\u003Cbr\u002F>媒体存储)]\n        PK[Passkey\u003Cbr\u002F>WebAuthn]\n    end\n```\n\n## 部署指南\n\n### 数据存储\n\n默认 SQLite，零配置。数据文件位置：\n- Linux: `~\u002F.local\u002Fshare\u002Fopenilink-hub\u002Fopenilink.db`\n- macOS: `~\u002FLibrary\u002FApplication Support\u002Fopenilink-hub\u002Fopenilink.db`\n- root\u002Fservice: `\u002Fvar\u002Flib\u002Fopenilink-hub\u002Fopenilink.db`\n\n设置 `DATABASE_URL=postgres:\u002F\u002F...` 切换到 PostgreSQL。\n\n### 注册为系统服务\n\n```bash\noih install       # 安装 systemd (Linux) \u002F launchd (macOS) 服务\noih uninstall     # 卸载服务\n```\n\n### Docker Compose（生产环境）\n\n适合需要 PostgreSQL + MinIO 的场景：\n\n```yaml\nservices:\n  postgres:\n    image: postgres:17-alpine\n    environment:\n      POSTGRES_USER: openilink\n      POSTGRES_PASSWORD: \u003C改为强密码>\n      POSTGRES_DB: openilink\n    volumes:\n      - pgdata:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n\n  hub:\n    image: openilink\u002Fopenilink-hub:latest  # 或 ghcr.io\u002Fopenilink\u002Fopenilink-hub:latest\n    ports:\n      - \"9800:9800\"\n    environment:\n      DATABASE_URL: postgres:\u002F\u002Fopenilink:\u003C密码>@postgres:5432\u002Fopenilink?sslmode=disable\n      RP_ORIGIN: https:\u002F\u002Fhub.example.com\n      RP_ID: hub.example.com\n      SECRET: \u003C随机字符串>\n    depends_on:\n      - postgres\n\nvolumes:\n  pgdata:\n```\n\n前面放个 Nginx \u002F Caddy 做 HTTPS 反代就行。\n\n### 从源码构建\n\n```bash\ncd web && pnpm install && pnpm run build && cd ..\ngo build -o oih .\n.\u002Foih\n```\n\n## CLI 命令\n\n| 命令 | 说明 |\n|------|------|\n| `oih` | 前台运行 |\n| `oih install` | 装成系统服务 |\n| `oih uninstall` | 卸载系统服务 |\n| `oih version` | 看版本 |\n\n## SDK 生态\n\n7 种语言，挑你熟悉的用：\n\n| 语言 | 安装 |\n|------|------|\n| **Go** | `go get github.com\u002Fopenilink\u002Fopenilink-sdk-go` |\n| **Node.js** | `npm install @openilink\u002Fopenilink-sdk-node` |\n| **Python** | `pip install openilink-sdk-python` |\n| **PHP** | `composer require openilink\u002Fopenilink-sdk-php` |\n| **Java** | [openilink-sdk-java](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-sdk-java)（从源码构建） |\n| **C#** | [openilink-sdk-csharp](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-sdk-csharp)（开发中） |\n| **Lua** | [openilink-sdk-lua](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-sdk-lua)（从源码引入） |\n\n### 相关项目\n\n**App**（完整列表见 [应用市场](#能装什么)）\n\n| 项目 | 说明 |\n|------|------|\n| [openilink-app-lark](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-lark) | 飞书 · 34 AI Tools 🔥 |\n| [openilink-app-slack](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-slack) | Slack · 23 AI Tools |\n| [openilink-app-discord](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-discord) | Discord · 19 AI Tools |\n| [openilink-app-dingtalk](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-dingtalk) | 钉钉 · 20 AI Tools |\n| [openilink-app-wecom](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-wecom) | 企业微信 · 18 AI Tools |\n| [openilink-app-github](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-github) | GitHub · 36 AI Tools |\n| [openilink-app-google](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-google) | Google Workspace · 18 AI Tools |\n| [openilink-app-notion](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-notion) | Notion · 15 AI Tools |\n| [openilink-app-linear](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-linear) | Linear · 13 AI Tools |\n| [openilink-app-echo](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-echo) | App 开发模板 |\n\n> 更多 App：[amap](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-amap) · [weather](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-weather) · [currency](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-currency) · [expense](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-expense) · [reminder](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-reminder) · [cron](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-cron) · [rss](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-rss) · [qrcode](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-qrcode) · [command-service](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-command-service) · [runner](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-runner)\n\n**其他**\n\n| 项目 | 说明 |\n|------|------|\n| [openclaw-channels](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenclaw-channels) | OpenClaw 渠道插件 |\n| [openilink-tg](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-tg) | 微信消息转发到其他平台 |\n| [openilink-webhook-plugins](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-webhook-plugins) | 官方 Webhook 插件仓库 |\n\n## 环境变量\n\n| 变量 | 默认值 | 说明 |\n|------|--------|------|\n| `LISTEN` | `:9800` | 监听地址 |\n| `DATABASE_URL` | SQLite | 不设就用 SQLite，设 `postgres:\u002F\u002F...` 切 PostgreSQL |\n| `RP_ORIGIN` | `http:\u002F\u002Flocalhost:9800` | 站点地址，必须和浏览器访问的一样 |\n| `RP_ID` | `localhost` | WebAuthn RP ID，填域名 |\n| `SECRET` | `change-me-in-production` | 服务端密钥，**生产必须改** |\n| `REGISTRY_URL` | — | 远程 App Registry 地址 |\n| `REGISTRY_ENABLED` | `true` | 是否启用远程 Registry |\n| `GITHUB_CLIENT_ID` | — | GitHub OAuth |\n| `GITHUB_CLIENT_SECRET` | — | GitHub OAuth |\n| `LINUXDO_CLIENT_ID` | — | LinuxDo OAuth |\n| `LINUXDO_CLIENT_SECRET` | — | LinuxDo OAuth |\n| `STORAGE_ENDPOINT` | — | MinIO \u002F S3 端点 |\n| `STORAGE_ACCESS_KEY` | — | 存储密钥 |\n| `STORAGE_SECRET_KEY` | — | 存储密钥 |\n| `STORAGE_BUCKET` | — | 存储桶 |\n| `STORAGE_PUBLIC_URL` | — | 存储公开 URL |\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>配置 OAuth 登录\u003C\u002Fb>\u003C\u002Fsummary>\n\n**GitHub OAuth**\n\n1. [GitHub Developer Settings](https:\u002F\u002Fgithub.com\u002Fsettings\u002Fdevelopers) → OAuth Apps → New OAuth App\n2. Homepage URL: `https:\u002F\u002Fhub.example.com`\n3. Callback URL: `https:\u002F\u002Fhub.example.com\u002Fapi\u002Fauth\u002Foauth\u002Fgithub\u002Fcallback`\n4. 拿到 Client ID 和 Secret，填环境变量\n\n**LinuxDo OAuth**\n\n1. [connect.linux.do](https:\u002F\u002Fconnect.linux.do) 创建应用\n2. 回调地址: `https:\u002F\u002Fhub.example.com\u002Fapi\u002Fauth\u002Foauth\u002Flinuxdo\u002Fcallback`\n3. 填环境变量\n\n> 回调地址格式：`{RP_ORIGIN}\u002Fapi\u002Fauth\u002Foauth\u002F{provider}\u002Fcallback`\n\n\u003C\u002Fdetails>\n\n## 技术栈\n\n| 层 | 技术 |\n|----|------|\n| 后端 | Go 1.25, SQLite \u002F PostgreSQL 17, gorilla\u002Fwebsocket |\n| 前端 | React 19, Vite, TypeScript, Tailwind CSS |\n| 认证 | WebAuthn (Passkey), OAuth 2.0 (PKCE), 密码 |\n| App 系统 | PKCE OAuth 安装, WebSocket\u002FWebhook 事件投递 |\n| 存储 | MinIO \u002F S3（可选） |\n| 部署 | 单文件二进制 \u002F Docker ([Docker Hub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fopenilink\u002Fopenilink-hub) \u002F [GHCR](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-hub\u002Fpkgs\u002Fcontainer\u002Fopenilink-hub)) \u002F Docker Compose |\n\n## 参与贡献\n\n欢迎提 Issue 和 PR！\n\n- App 开发参考 [openilink-app-echo](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-app-echo)\n- 插件提交到 [openilink-webhook-plugins](https:\u002F\u002Fgithub.com\u002Fopenilink\u002Fopenilink-webhook-plugins)\n- SDK 问题到对应语言仓库\n\n## License\n\n[MIT](LICENSE) — 随便用，不限商用。\n\n---\n\n\u003Cdiv align=\"center\">\n\n**[OpeniLink](https:\u002F\u002Fopenilink.com)** · 让微信 Bot 接入更简单\n\n\u003C\u002Fdiv>\n\n---\n\n\u003Ca name=\"english\">\u003C\u002Fa>\n\n## English\n\n**OpeniLink Hub** is a self-hosted, open-source WeChat Bot management and message relay platform built on top of the **iLink protocol** — WeChat's first official Bot API, launched in March 2026.\n\nIt wraps WeChat's raw messaging into a complete system: bind multiple accounts via QR code, install apps from the marketplace to add features like stock queries and image generation, forward messages through WebSocket \u002F Webhook \u002F AI auto-reply — all managed from a web dashboard.\n\n### Key Highlights\n\n- **App Marketplace (20+)** — Platform integration (Lark, Slack, Discord, DingTalk, WeCom), productivity (GitHub, Google Workspace, Notion, Linear), utilities (weather, expense, RSS, maps...), all with AI Tools\n- **Multi-bot management** — Bind and manage multiple WeChat accounts, auto session renewal\n- **Message tracing** — Full delivery timeline for every message, pinpoint issues instantly\n- **Multi-channel delivery** — Apps, WebSocket, Webhook, and AI auto-reply in parallel\n- **Passkey (WebAuthn)** — Passwordless login with biometric \u002F hardware key support\n- **Built-in SQLite** — Zero-config database with optional PostgreSQL\n- **7 language SDKs** — Go, Node.js, Python, PHP, Java, C#, Lua\n\n### Quick Start\n\n```bash\n# One-line install\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fopenilink\u002Fopenilink-hub\u002Fmain\u002Finstall.sh | sh\n\n# Start\noih\n\n# Or use Docker (either registry works)\ndocker run -d -p 9800:9800 openilink\u002Fopenilink-hub:latest              # Docker Hub\n# or:\ndocker run -d -p 9800:9800 ghcr.io\u002Fopenilink\u002Fopenilink-hub:latest     # GHCR\n```\n\nVisit `http:\u002F\u002Flocalhost:9800` — first user becomes admin. Zero config needed.\n\n**Website:** [openilink.com](https:\u002F\u002Fopenilink.com) · **Live Demo:** [hub.openilink.com](https:\u002F\u002Fhub.openilink.com)\n","openilink\u002Fopenilink-hub 是一个基于 iLink 协议的开源微信 Bot 管理平台及应用市场。项目提供了一个自托管的解决方案，允许用户通过扫码绑定微信号，并通过应用市场一键安装和扩展 20 多个应用程序，如飞书、Slack、Discord、GitHub 和 Notion 等。核心功能包括多 Bot 管理、跨平台消息互通以及丰富的 AI 工具集成。此外，它还支持 7 种语言的 SDK，便于开发者进行二次开发。该项目适合需要在不同即时通讯平台间实现消息同步与管理的个人或企业使用，同时也为开发者提供了强大的工具和资源以构建自己的 Bot 应用。",2,"2026-06-11 03:50:15","high_star"]