fasthtml-desktop:用 Agent Skill 把 FastHTML 桌面应用从开发到 EXE 打包串成一条链

前言

在 DeepSeek Harness(DSH)里做「带界面的桌面程序」,常见做法是手写 Python GUI,或自己搭 Web 服务再想办法嵌进窗口、再查 PyInstaller 文档。步骤分散,Agent 也容易在 FastHTML 与 FastAPI 语法、pywebview 生命周期、打包脚本之间来回试错。

fasthtml-desktop 把这条链路收成一套遵循 Agent Skills 开放标准 的技能:本地 HTTP + WebView2 渲染的原生窗口、脚手架、质量门禁和跨平台构建脚本都写在技能包里。在 DSH 里安装为 Cordis Bundle 插件后,Agent 可通过 skill 工具按 SKILL.md 的工作流从需求澄清一直做到可交付的 EXE。

这是什么

fasthtml-desktop 由维护者 kuailexiaozixin 发布,在 SkillHub 插件目录 中归类为客户端。仓库地址:https://github.com/kuailexiaozixin/fasthtml-desktop。

定位一句话:FastHTML + pywebview 桌面应用全生命周期 Agent Skill——最终交付物是包含 pywebview 原生窗口的 FastHTML 桌面程序(WebView2 渲染,本地 HTTP 服务),Windows 侧用 PyInstaller 产出 EXE;macOS / Linux 另有辅助构建脚本。

技能本体位于仓库 skills/fasthtml-desktop/,内含 SKILL.md、约 1 万行 FastHTML 官方上下文的 HARD-GATE 参考、examples/ 下 25 个 FastOffice 套件参考实现,以及模板、脚本与质量门禁文档。npm 分发包名为 dsh-fasthtml-desktop(当前资料中版本 1.14.2),许可证 MIT。

技术栈与核心能力

下面介绍技能覆盖的技术选型与 Agent 可复用的能力(均来自仓库 README)。

层 选型 说明
Web 框架 FastHTML 基于 Starlette + HTMX 的 Python Web 框架
桌面壳 pywebview 原生窗口内嵌 WebView2
交互 HTMX 服务端驱动的前端交互
打包 PyInstaller Windows EXE(含原生窗口)
跨平台 辅助脚本 macOS(py2app)/ Linux(AppImage)

核心能力包括:

  1. 标准化工作流:SKILL.md 定义从需求到交付的步骤与铁律,Agent 动态加载后按同一套流程执行。
  2. 写码前 HARD-GATE:编码前须读 references/05-coding/fasthtml-refs/fasthtml-llms-ctx.txt,减少与 FastAPI 等框架的混用错误。
  3. 参考实现:examples/ 提供 ERP、财务、HRM、BI、文档、表格、法务、CRM 等 25 个业务向示例(FastOffice 套件,来源与许可证见仓库 THIRD_PARTY_NOTICES.md)。
  4. 质量门禁:路由联动检查、引用检查、无头 UI 验证、release_gate.py 等(详见 references/07-quality-gate/)。
  5. 脚手架与打包:templates/ 与 bootstrap_project.sh / ensure_uv_env 初始化项目;scripts/build_windows_exe 与 build_cross_platform.py 负责构建。

插件形态为 Cordis Bundle(Host 侧) 的 skill 插件:自包含 npm 包,resourceBase 指向包根,SKILL.md 及 references/、examples/ 等随安装一并落地,不依赖发布者本机路径。

安装与启用

前置:本机已安装 dsh CLI(README 中与 pnpm 一并提及)。在 Harness 中从 npm 安装并装入 profile(示例为 web):

dsh plugin --profile web add dsh-fasthtml-desktop

验证配置层是否注入插件,并启动 Web UI:

dsh --profile web --dump-config   # 应看到 "# == dsh-fasthtml-desktop" 层
dsh web

移除插件:

dsh plugin --profile web remove dsh-fasthtml-desktop

若不走 npm,可从 GitHub Release 下载源码归档。解压后可将 skills/fasthtml-desktop 放到用户技能目录(默认 ~/.dsh/skills,Windows 为 C:\Users\<用户名>\.dsh\skills\),或使用本地路径:

dsh plugin --profile web add /绝对路径/fasthtml-desktop-main/skills/fasthtml-desktop

同一仓库还支持 GitHub CLI(≥ v2.90.0) 的技能安装(非 DSH 专用,但与技能内容一致):

gh skill install kuailexiaozixin/fasthtml-desktop
gh skill install kuailexiaozixin/fasthtml-desktop --scope user

安装前请自行阅读仓库源码与 MIT 许可证;插件在当前 dsh 进程权限下运行,技能内的脚本会参与构建与校验,勿在未审阅的情况下用于敏感环境。

典型用法

启动 dsh web 后,用自然语言触发即可。README 中的示例表述如下:

用 fasthtml-desktop 技能,帮我做一个带 Web 界面的客户管理桌面程序,打包成 EXE。

Agent 会调用 skill 工具加载 fasthtml-desktop,按 SKILL.md 完成脚手架、FastHTML + HTMX 开发、质量门禁与打包。给人看的快速路径可概括为:

  1. 读 SKILL.md 与工作流铁律。
  2. 写 FastHTML 前读 fasthtml-llms-ctx.txt(HARD-GATE)。
  3. 用 templates/ 初始化项目。
  4. 对照 examples/ 中最接近业务的参考实现迭代。
  5. 跑质量门禁与 scripts/build_windows_exe(或跨平台构建脚本)。

适用场景与注意

适合:需要现代 Web 界面(FastHTML + HTMX)、又要以原生桌面窗口交付的业务系统;希望 Agent 在 DSH 会话里复现「开发 → 检查 → 打包」而不是每次从零搜文档。

注意:

  • examples/ 含第三方 FastOffice 项目,许可证不一(含 MIT、Apache-2.0、AGPL-3.0 等),商用或二次分发前须核对 THIRD_PARTY_NOTICES.md。
  • 同维护者另有 tkinter-desktop(Tkinter 方案),与 FastHTML 技术栈互斥,选型时二选一即可。
  • SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录与 GitHub 页面为准(资料中 GitHub 星标为 0)。

结尾

dsh-fasthtml-desktop 把 FastHTML 桌面应用的架构约定、权威文档门禁、示例库和打包脚本打进一个 DSH 可安装的 skill 插件,适合在 Harness 里用一句话拉起从界面到 EXE 的完整链路。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜