AI Notepad: Lightweight General-Purpose AI Text Editor on DSH

前言

在 DeepSeek Harness(DSH)里做智能体或插件开发时,经常要在 Web UI 里改配置、日志、Markdown 说明或纯文本产物。浏览器里临时粘贴可以应付一次两次,但缺少稳定的打开/保存、编码与换行处理,以及「选中一段再让模型改、改完先看 diff 再落盘」这类工作流。AI Notepad 是 DSH 的一款客户端插件,把 Harness Web UI 扩展成轻量、通用的 AI 原生文本编辑器,并在 Windows 上支持通过文件关联从资源管理器打开文本文件。

这是什么

AI Notepad(仓库 JackWangSIA/dsh-ai-notepad)由 JackWangSIA 维护,分类为客户端插件。定位是:面向 DeepSeek Harness 的轻量通用文本编辑,叠加选区/全文 AI、diff 审阅、Markdown 预览,以及 Windows 侧真实的文件关联注册。插件 Host 侧提供 /api/ai-notepad/* 路由与有界文件 I/O;Client 侧以 CodeMirror 6 为主编辑面,React 构建 UI。

核心功能

下面按 README 已列能力归纳,均为插件当前声明支持的行为。

本地文件编辑

  1. 通过 Windows 原生文件选择器打开、编辑、保存与另存为任意文本文件,或将文件拖入编辑器。
  2. 多标签页;CodeMirror 6 提供撤销/重做、查找、行号、自动换行、未保存提示。
  3. 编码感知读写:UTF-8、UTF-8 BOM、UTF-16 LE/BE、GB18030/GBK、Windows-1252;保存时保留检测到的编码、BOM 与主导换行符;GB18030/Windows-1252 会做往返校验,拒绝有损写入。
  4. 二进制文件检测,避免误当文本编辑。
  5. 基于哈希的写前比对:若文件在外部被修改,保存返回冲突且不写入。

AI 编辑与审阅

  • 选区 AI:精简、润色、扩写、重组、校对,或自定义指令(快捷键见下文 Ctrl+Alt+1..4 等)。
  • 全文 AI:润色、精简、摘要、大纲与标题生成。
  • Diff 审阅:接受、拒绝、重新生成;接受前不会写入磁盘;接受后走正常 CodeMirror 事务,仍可用 Ctrl+Z 撤销。
  • 批注批处理:可收集多处批注一次性发送;每个审阅区域在单次可撤销编辑前都会相对原文校验。

Markdown 与界面

  • Markdown 预览:对原始 HTML 转义,采用保守的 CommonMark 子集;Ctrl+E 在预览与编辑间切换,双击预览也可回到编辑;浮动工具条显示模式与快捷键。
  • 字体、字号、行高、字重、换行、主题、行号、Tab 宽度等独立设置,持久化在浏览器存储;Windows 字体选择器支持搜索、中/拉丁推荐字体与预览。
  • Ctrl+滚轮 在 8–48 px 间缩放编辑区字体;Ctrl+= / Ctrl+- / Ctrl+0 同样有效,当前字号显示在状态栏。

Windows 文件关联

插件注册当前用户的 ProgID、OpenWithProgids、RegisteredApplications,并用轻量 VBS 启动器把路径写入 inbox、启动或聚焦 DSH;Host 监听队列,Client 打开文件。关联的安装、移除、恢复与状态在 View → File associations。Windows 10/11 的默认应用受 UserChoice 哈希保护,插件不能静默设为系统默认;用户需在资源管理器 打开方式 → 始终使用此应用 中主动选择一次。卸载会移除 ProgID 与 Open With 条目;若当前默认仍是 AI Notepad,会清掉该 UserChoice 以便系统再次询问,无法恢复此前被哈希保护的默认项。

架构要点(便于读源码)

  • lib/index.js:Host;路由、文件 I/O、编码、冲突防护、LLM 调用、Windows 注册表、inbox、选择器与字体枚举。
  • src/:Client 源码;app.jsx 主栏页面,editor.jsx 编辑器,store.js 标签/AI/审阅/设置,diff.js、markdown.js 为纯辅助模块。
  • lib/client.js:esbuild 生成的 ModuleLoader 包(React 外置)。
  • 要求 DSH 环境:package.json 中 dsh.env.minVersion 为 0.2.0-rc.2。

安装与启用

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证。

Web profile(CLI) — 官方命令如下:

dsh plugin --profile web add JackWangSIA/dsh-ai-notepad

也可使用 GitHub Release 的无版本 tarball(插件市场上线后同样可用该包,无需 npm 账号):

https://github.com/JackWangSIA/dsh-ai-notepad/releases/latest/download/dsh-ai-notepad.tgz

若日后发布到 npm,dsh plugin --profile web add dsh-ai-notepad 也可安装。

DSH Desktop:优先使用 Plugins → Add plugin,填入仓库 URL;desktop profile 由应用管理,不要用 CLI 手改。

目录页(社区插件站点,与 DeepSeek / 幻方无官方从属关系):https://www.skillhub.cn/plugins/JackWangSIA/dsh-ai-notepad

典型用法

  1. 安装并确认 Host 行处于 active;Client 会注册主页面、侧栏图标与设置区块(见 README Verification notes)。
  2. 在编辑器中打开或拖入文本文件,正常编辑后 Ctrl+S 保存;若外部已改文件,按冲突提示处理后再保存。
  3. 选中段落,用 Ctrl+Alt+1..4 做精简/润色/扩写/校对,或添加批注(Ctrl+Alt+B)后批量送审;在 diff 模态框中接受或拒绝,接受前内容不会写回文件。
  4. 编辑 Markdown 时用 Ctrl+E 切换预览;需要时通过 View → File associations 安装「打开方式」关联,再在资源管理器中选择「始终使用此应用」。

常用快捷键:

快捷键 作用
Ctrl+S / Ctrl+Shift+S 保存 / 另存为
Ctrl+Z / Ctrl+Y 撤销 / 重做
Ctrl+F 查找
Ctrl+E Markdown 预览 / 编辑切换
Ctrl+wheel,Ctrl+=,Ctrl+-,Ctrl+0 字体放大 / 缩小 / 重置
Ctrl+Alt+1..4 选区精简 / 润色 / 扩写 / 校对
Ctrl+Alt+B 添加批注
Ctrl+Alt+N 从主 shell 聚焦 AI Notepad

About 菜单(与 File、View 并列)提供版本、构建时间、快捷键说明、运行时信息(平台、当前模型、关联状态)及一键复制版本信息。

适用场景与注意

  • 适合:在 DSH Web/Desktop 内日常改纯文本与 Markdown;需要在 Windows 上用「打开方式」把 .txt 等交给 Harness 编辑;强调编码正确与写前冲突检测的本地文件工作流。
  • 注意:文件关联与 VBS 启动器面向 Windows;Desktop shell 当前单实例锁且不解析 argv 中的路径,故 VBS 是真实的注册处理器,经 inbox 把路径交给已运行的 Harness。插件依赖 Harness 提供的模型与 API 做 AI 功能,边界与用法说明见 About 面板。
  • 自构建(维护者文档):在仓库内用 DSH 自带 Node/pnpm 执行 pnpm install 与 scripts/build.mjs,再通过 Harness plugin_manager 的 install_bundle 安装绝对路径目录,不要手动拷贝进 profile。

结尾

AI Notepad 把 DSH UI 补成编码安全、带 diff 审阅的通用文本编辑器,并把 Windows 打开方式接到 Harness 上。进一步了解实现与更新记录见 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/JackWangSIA/dsh-ai-notepad
  • GitHub:https://github.com/JackWangSIA/dsh-ai-notepad
羽毛球分组比赛记分
小程序二维码

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

Xiaoye