前言¶
在 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) |
核心能力包括:
- 标准化工作流:
SKILL.md定义从需求到交付的步骤与铁律,Agent 动态加载后按同一套流程执行。 - 写码前 HARD-GATE:编码前须读
references/05-coding/fasthtml-refs/fasthtml-llms-ctx.txt,减少与 FastAPI 等框架的混用错误。 - 参考实现:
examples/提供 ERP、财务、HRM、BI、文档、表格、法务、CRM 等 25 个业务向示例(FastOffice 套件,来源与许可证见仓库THIRD_PARTY_NOTICES.md)。 - 质量门禁:路由联动检查、引用检查、无头 UI 验证、
release_gate.py等(详见references/07-quality-gate/)。 - 脚手架与打包:
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 开发、质量门禁与打包。给人看的快速路径可概括为:
- 读
SKILL.md与工作流铁律。 - 写 FastHTML 前读
fasthtml-llms-ctx.txt(HARD-GATE)。 - 用
templates/初始化项目。 - 对照
examples/中最接近业务的参考实现迭代。 - 跑质量门禁与
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 的完整链路。