skills/feishu-deploy/SKILL.md
飞书自建应用全自动部署。当需要在飞书开放平台创建应用、配置机器人、设置事件订阅、开通权限并发布版本时触发。通过 Chrome MCP 操作浏览器完成全流程。
npx skillsauth add cih1996/ai-hub 飞书应用部署Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
你是飞书应用的自动部署专家。通过 Chrome MCP 操作浏览器,在飞书开放平台完成自建应用的创建和配置。
开始前必须确认以下条件,缺一不可:
Chrome 调试模式:执行以下命令检查 Chrome DevTools 协议是否可用
curl -s --max-time 3 http://localhost:9222/json/version
webSocketDebuggerUrl)→ Chrome 调试模式正常,继续/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/tmp/chrome-debug" --no-first-run &
start chrome --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-debug" --no-first-run
google-chrome --remote-debugging-port=9222 --user-data-dir="/tmp/chrome-debug" --no-first-run &
curl -s --max-time 3 http://localhost:9222/json/version浏览器登录状态:用 navigate_page 打开 https://open.larksuite.com/app?lang=zh-CN,然后 take_snapshot 检查是否已登录
必要参数(由调用方提供):
app_name:应用名称app_desc:应用描述webhook_url(可选):如果调用方提供了 webhook URL 则直接使用,否则在「网络环境检测」步骤自动获取如果调用方已提供
webhook_url,跳过本步骤,直接进入部署流程。
本步骤自动检测网络环境,确定飞书 webhook 回调地址。
echo $AI_HUB_PORT
如果为空,默认使用 9527。
curl -s --max-time 5 ifconfig.me
curl -s --max-time 5 -o /dev/null -w "%{http_code}" http://<公网IP>:<端口>/api/v1/version
200 → 公网可达,使用 http://<公网IP>:<端口>/api/v1/webhook/feishu 作为 webhook URL告诉用户:
检测到你的网络无法从外部直接访问,需要做内网穿透。别担心,跟着下面的步骤操作就行,很简单。
方案 A:Cloudflare Tunnel(推荐,免费无需注册)
引导用户执行:
# 安装(macOS)
brew install cloudflared
# 安装(Linux)
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared && chmod +x /usr/local/bin/cloudflared
# 启动穿透(一条命令搞定)
cloudflared tunnel --url http://localhost:<端口>
告诉用户:「运行后会看到一行 https://xxx.trycloudflare.com 的地址,把它复制发给我就行。」
拿到地址后,webhook URL = <用户提供的地址>/api/v1/webhook/feishu
方案 B:用户自行提供
如果用户已有公网域名、反向代理或其他穿透服务,直接让用户提供可访问的 URL。
确定 webhook URL 后,继续部署流程。
https://open.larksuite.com/app?lang=zh-CNtake_snapshot 找到「创建企业自建应用」按钮并 clickfill 输入 app_namefill 输入 app_desctake_snapshot 确认跳转到应用管理页面take_snapshot 记录 App IDclick 查看take_snapshot 确认添加成功(左侧菜单出现「机器人」选项)fill 输入 webhook_urltake_snapshot 确认请求地址已保存im.message.receive_v1)关键:必须先保存订阅方式,添加事件按钮才会启用。
获取与发送单聊、群组消息(im:message)以应用的身份发消息(im:message:send_as_bot)接收群聊中@机器人消息事件(im:message.group_at_msg:readonly)take_snapshot 确认所有权限显示「已开通」1.0.0初始版本,支持消息收发take_snapshot 确认版本状态注意:如果提示需要管理员审核,告知调用方等待审核通过。
take_snapshot,确认页面状态再操作take_snapshottake_snapshot 获取最新 uid部署完成后,输出以下信息:
✅ 飞书应用部署完成
- 应用名称:{app_name}
- App ID:{app_id}
- App Secret:{app_secret}
- Webhook 地址:{webhook_url}
- 版本:1.0.0
- 状态:已发布 / 待审核
将 App ID 和 App Secret 回传给任务发起方。
完成飞书应用部署后,必须在 AI Hub 创建频道,才能让飞书消息转发到指定会话。
先获取可用会话列表供用户选择:
curl -s http://localhost:${AI_HUB_PORT:-9527}/api/v1/sessions | \
python3 -c "import sys,json; [print(f'#{s[\"id\"]} {s[\"name\"]}') for s in json.load(sys.stdin)]"
然后问用户:
飞书应用已部署完成!现在需要将飞书消息绑定到 AI Hub 的某个会话。 上面是当前的会话列表,请告诉我要绑定到哪个会话(输入会话编号即可)。
用户确认会话 ID 后,AI 自动创建频道:
curl -s -X POST "http://localhost:${AI_HUB_PORT:-9527}/api/v1/channels" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"飞书 Bot\",
\"platform\": \"feishu\",
\"enabled\": true,
\"session_id\": <用户选择的session_id>,
\"config\": \"{\\\"app_id\\\":\\\"<app_id>\\\",\\\"app_secret\\\":\\\"<app_secret>\\\"}\"
}"
# 检查频道是否创建成功
curl -s http://localhost:${AI_HUB_PORT:-9527}/api/v1/channels | \
python3 -c "import sys,json; [print(f'#{c[\"id\"]} {c[\"name\"]} platform={c[\"platform\"]} session={c[\"session_id\"]}') for c in json.load(sys.stdin)]"
确认列表中出现飞书频道后,告诉用户:
✅ 绑定完成!飞书发来的消息将转发到会话 #{session_id}。 你可以在飞书中给 Bot 发一条消息测试。
development
QQ消息发送接口调用指南。当 AI 需要回复QQ消息、向QQ群或用户发送消息时触发。基于 OneBot 11 协议,通过 NapCat HTTP API 发送。
development
QQ Bot 全流程部署引导。当需要安装 NapCat、配置 QQ 机器人、对接 AI Hub 时触发。引导用户完成安装、登录、WebUI 配置和频道创建。
data-ai
飞书消息发送接口调用指南。当 AI 需要回复飞书消息、向飞书群或用户发送消息时触发。提供获取 token 和发送消息的完整 curl 调用方式。
tools
全栈项目开发团队自动组建与闭环交付。当用户提到'帮我开发一个xxx'、'我要做一个xxx项目'时触发。自动创建6人团队(经理、架构师、前端、后端、测试、体验),按固定技术栈标准执行开发、测试、体验、巡检全流程。