开源 · 0.1.1

把飞书 H5,放进一套可验证的调试工作台。

在 macOS、Windows 与 Linux 上复现飞书网页调试工作流:设备模拟、停靠的 Chromium DevTools、真实扫码登录与 JSAPI 鉴权。需要自动化时,再接入本机 MCP。

macOS Apple Silicon / Intel · Windows x64 · Linux x64

FeishuDevTools 主窗口:左侧 iPhone 17 Pro 模拟器,右侧停靠 Chromium DevTools
同一窗口完成页面模拟、元素检查、网络分析与控制台调试。
公开源码实现与发布配置均可审阅
本机 MCP仅监听 127.0.0.1
真实鉴权不伪造 open-apis 响应
受限网页容器隔离、沙箱、禁用 Node

DOWNLOADS

选择你的平台。

FeishuDevTools 0.1.1 · 所有公开包均提供 SHA-256 校验

macOS

macOS 13 Ventura 或更新 · 包内 App 为 ad-hoc 签名 · 未公证

Apple Silicon DMG ZIP
Intel DMG ZIP
下载后核验文件完整性 shasum -a 256 <已下载文件>,再与清单同名项比对
下载 SHA256SUMS.txt

GitHub API 不可用或发布仍在同步时,上述链接会回退到 0.1.1 Release 页面。 请按文件名确认平台与架构。

WORKBENCH

熟悉的网页调试链路,集中在一个窗口。

只聚焦飞书 / Lark H5,不加入小程序、网关或工作台等相邻模块。范围更窄,也更容易核验每条行为。

01 / SIMULATOR

设备、UA、安全区同步切换。

默认 iPhone 17 Pro。切换机型时,viewport、DPR、圆角、状态栏、Home 指示条与 Lark/x.y.z UA 一起变化,页面重新加载。

  • 多类设备iPhone、Android、iPad 与 PC 预设
  • 50%–150%六档显示缩放
  • PC viewport随窗口伸缩,或拖动 / 输入尺寸固定
  • 触屏派发移动设备中将鼠标交互转为触摸事件
iPhone 17 Pro 预设下的设备模拟器
02 / DEVTOOLS

完整 Chromium DevTools,原位停靠。

Elements、Console、Sources、Network、Application 与页面共享同一个 Chromium 调试目标。选择元素时,移动端触摸模拟会暂时让位,完成后自动恢复。

  • 真实调试目标不是日志面板或精简替代品
  • 一致外观DevTools 随应用切换深色 / 浅色
  • 正确层级菜单、登录窗口和弹窗不会被面板遮住
停靠在主窗口右侧的 Chromium DevTools Elements 面板

LOCAL MCP

让 AI 操作调试器,但不开放公网端口。

应用内建 Streamable HTTP MCP,只监听 127.0.0.1。npm 包提供 stdio 桥与客户端安装命令;应用未运行时,它可以在本机拉起应用并等待模拟器就绪。

npx --yes feishu-devtools-mcp@0.1.1 install cursor

也支持 claude-codeclaude-desktopcodex;修改已有配置前会保留 .bak,并以原子替换写入。HTTP 客户端可直接连接 http://127.0.0.1:17331/mcp

在 npm 查看 feishu-devtools-mcp
LOCAL TRACE127.0.0.1 · CONNECTED

“打开 localhost:5173,切到 iPhone 17 Pro,检查底部按钮为什么被安全区挡住。”

  1. navigatehttp://localhost:5173OK
  2. set_deviceiphone-17-proOK
  3. screenshottarget = pagePNG
  4. evaluategetComputedStyle(footer)JSON

18 个工具覆盖导航、设备、缩放、截图、DOM、脚本、控制台和 JSAPI 调用记录。

TRUST BOUNDARY

把可信写成可检查的边界。

FeishuDevTools 是独立社区项目,不是飞书官方产品。项目公开说明数据流、能力范围和当前发布限制,不用模糊措辞替代安全承诺。
阅读完整安全政策与私密报告流程

网页隔离
contextIsolation=truesandbox=truenodeIntegration=false
JSAPI 注入位置
桥只从受限 guest preload 注入;开放平台鉴权请求返回真实结果,不伪造登录态。
敏感权限
按当前网页来源询问且仅本次运行有效;JSAPI 剪贴板读写同样需要确认,登录分区拒绝全部 Web 权限。
登录会话
仅在受保护的 Electron safeStorage 后端可用时持久化。Linux 后端为 basic_textunknown 或没有可用 keyring 时,新登录 Cookie 不写入磁盘,只在当前应用进程内有效。
Linux AppImage
打包检查会拒绝带 --no-sandbox 的桌面入口;应用运行时检测到该参数、Electron 实际开关或 ELECTRON_DISABLE_SANDBOX 也会直接退出,不会静默降低 Chromium 隔离级别。
MCP 网络范围
只监听本机回环地址;端口可修改,服务可在设置中关闭。
发布可追溯性
0.1.1 发布流程配置为生成平台 / 架构明确的资产、统一 SHA256SUMS 与 GitHub artifact attestations;下载前仍需确认工作流成功且这些校验材料已实际可用。
当前限制
0.1.1 仍是未完成正式代码签名的早期版本;真实账号登录、三项核心 JSAPI 鉴权与跨平台原生安装体验仍需持续 UAT。

GET STARTED

安装后,直接打开你的开发地址。

  1. 01

    安装对应平台版本

    从上方发布矩阵下载,先用 SHA256SUMS 核对文件,再按系统提示安装或解压。

  2. 02

    加载本地 H5

    在地址栏输入 http://localhost:5173 等地址,选择目标机型并开始调试。

  3. 03

    按需登录与接入 MCP

    扫码后再验证真实鉴权链路;需要自动化时安装 MCP 桥,或直接配置本机 HTTP 地址。

FAQ

下载前需要知道的事。

FeishuDevTools 和官方飞书开发者工具是什么关系?

FeishuDevTools 是独立开源项目,与飞书 / 字节跳动无关。它参考官方工具的「网页调试」行为与工作流,未复制官方代码或资源;小程序、网关、工作台等模块不在范围内。

macOS 应该选 Apple Silicon 还是 Intel?

M1、M2、M3、M4 等芯片选择 arm64 / Apple Silicon;处理器显示 Intel 的 Mac 选择 x64 / Intel。浏览器通常无法可靠判断 Mac 芯片,所以官网不会擅自替你选择。

为什么系统提示“未知开发者”或 SmartScreen 警告?

当前版本尚未配置 Apple Developer ID / 公证和 Windows 代码签名。macOS DMG / ZIP 内的 .app 仅做 ad-hoc 签名,下载容器本身没有 Developer ID 签名;Windows 安装器未签名。这是已公开的发布限制。请只从本项目 GitHub Releases 下载,并在放行前核对 SHA-256。

Linux 上登录会话如何保存?

应用只在 Electron safeStorage 选中受保护后端时持久化会话。若后端为 basic_textunknown 或没有可用的受保护 keyring,新登录 Cookie 不会写入磁盘,只在当前应用进程内有效;退出后需要重新登录。

为什么 AppImage 不支持 --no-sandbox

该参数会关闭 Chromium 沙箱。0.1.1 的打包校验会检查 AppImage 桌面入口,应用本身也会在检测到该参数、Electron 实际开关或 ELECTRON_DISABLE_SANDBOX 时拒绝启动。若系统不支持所需沙箱,请修复 user namespace 配置或改用其它包格式;不要绕过隔离保护。

JSAPI 鉴权是模拟结果吗?

不是。tt.configrequestAuthCoderequestAccess 请求飞书开放平台并返回真实结果;工具不伪造 open-apis 响应。少数纯设备能力使用与官方工具一致的固定模拟值。

MCP 会把调试页面暴露到局域网吗?

不会。MCP 服务只监听 127.0.0.1,其它设备无法直接访问;你也可以修改端口或在设置中关闭服务。npm 包只是 stdio 与本机端口之间的桥。

现在可以作为正式生产工具使用吗?

0.1.1 仍是 pre-1.0 版本。自动化测试和构建通过不等于真实飞书账号 UAT、代码签名或企业环境验证完成;请先在非关键项目中验证你的租户、代理和鉴权流程。

FEISHUDEVTOOLS / 0.1.1

选对平台,然后开始调试。