DeepSeek Harness(dsh)Web UI 插件

打字停一停,灰色建议就在光标后
错别字当场标红,一键修正

输入补全走 DeepSeek FIM 接口,建议内联显示(Copilot 同款手感);错别字检查分两层——词典层在浏览器本地 200ms 即时标红、零成本,中文错词、英文拼写(github→GitHub)都查,LLM 层做上下文校对。

安装插件 查看源码
这个 bug 我 recieve 不到日志,改完一如继往地没生效,看来得重启一下服务再试试
疑似错别字 1/2 recieve→receive · 应为「receive」 Tab 采纳一词 · Shift+Tab 全量 · Esc 关闭

两大功能,都是 additive

不改动 dsh 任何现有交互,只在输入框外侧加功能;输入框内除灰字与红字外保持干净。

输入补全(ghost text)FIM

停笔 800ms 后调用 DeepSeek FIM 接口(/beta/completions),建议以灰字内联在光标后——Tab 按中文分词逐词采纳、Shift+Tab 全量采纳、Esc 关闭。吃光建议后自动续写下一轮,IME 输入期间绝不干扰。

错别字检查词典层 · 本地LLM 层

词典层:228 条中文错词 + 211 条英文错拼/专名大小写 + 8 条上下文规则(词库在仓库 data/ 下纯文本维护),200ms 在浏览器本地标红,离线零成本。LLM 层:在/再、的/得/地及中英混排里的英文拼写,800ms 与补全同节奏请求。文中红波浪线标注,点红字即选中,绝不全量替换。

逐条导航修正导航条

多个错字用 Ctrl+Shift+./, 上下切换,「修正」只替换当前选中的一条;拿不准的可以「标记正确」加入本次忽略名单。位置失配(你已手动改过)的检出自动失效。

成本完全可控省钱

补/校两个独立开关就在输入框旁。在设置卡片里关掉 LLM 层后校对完全不发请求——只剩词典层,分文不花。继续打字、按 Esc 或关开关会立刻断开未完成的补全/校对请求,不白烧 token。API key 自动复用 dsh 已保存的 DEEPSEEK_API_KEY,零配置开箱即用。

图形化设置页免手改配置

设置 → 插件 → 插件配置,与官方插件同款的配置卡片:11 项配置全部图形化编辑,改完统一保存,数字与必填本地校验。模型字段点开下拉即拉取官方最新模型目录点选即填——不用再手改 settings.yaml(改文件也能热同步)。

自定义词库本地 · 免费

设置卡片底部是一张成对词条列表:左列错词、右列正词,「+ 添加词条」追加一行,× 删除,拖动调整顺序,动画平滑。补充领域术语的误打,同名错词覆盖内置项,错词 => 错词 可禁用某个内置词。只存本浏览器(localStorage),不上传不同步;标题行「导出 / 导入 / 复制」用同格式 .txt 在浏览器间搬运,保存后当前草稿立即重新标红。

三步安装

dsh 的 plugin 命令底层走 pnpm,npm 上的两个包名内容完全相同,任选其一。

$dsh plugin --profile web add dsh-input-assist
$dsh plugin --profile web add @honlnk/dsh-input-assist
$dsh --profile web # 重启,打开 http://127.0.0.1:3080
API key 三选一(补全与 LLM 校对层需要;词典层无需任何配置):
  • 什么都不做——自动复用 dsh 已保存的 DEEPSEEK_API_KEY 或环境变量
  • 设置 → Plugins → 插件配置 → Input Assist 卡片里直接填(推荐,全部 11 项配置均可图形化修改)
  • ~/.dsh/settings.yaml 里写 input-assist.completionApiKey: sk-…,或环境变量 DEEPSEEK_API_KEY=sk-…

快捷键

仅在输入框聚焦且对应功能激活时接管;IME 输入法组合期一律放行。

动作快捷键
采纳一词(中文按词切分)Tab
全量采纳建议Shift+Tab
关闭当前建议Esc
下一个 / 上一个错字Ctrl+Shift+. / ,
修正当前选中项Ctrl+Shift+F
标记该处为正确输入Ctrl+Shift+G
本次输入不再提醒Esc(无建议时)

常见问题

会产生多少费用?

补全:每次请求上限 64 token;LLM 校对:单次上限 800 token、temperature 0。停笔 800ms 防抖内多次击键只发一次。在设置卡片里关掉「LLM 检查层」后校对零成本(只剩本地词典)。deepseek-flash 单价下日常使用的花费可以忽略。

我的输入内容会被发送到哪里?

只有当前输入框草稿文本会发送给 DeepSeek API(补全发光标前缀,校对发整段草稿);词典层检查完全在浏览器本地完成。插件本身不收集任何数据,也没有统计上报。

代码块、链接里的错词会误报吗?

不会。扫描前会把行内代码、围栏代码块和 URL 用等长占位符掩码,词典层永不标记其中的内容;LLM 层的提名也要经过位置回验,对不上当前草稿的检出直接失效。

能添加自己的错词吗?

能。设置卡片底部「自定义词库(仅本浏览器)」是一张成对词条列表:左列错词、右列正词,「+ 添加词条」追加一行,× 删除,拖动调整顺序,中英文皆可,与内置词库合并参与本地检查;同名错词覆盖内置项,写成自映射(错词 => 错词)可禁用某个内置词。英文词条自动走词边界匹配,驼峰、snake_case 这类标识符不会误报。数据只存在本浏览器 localStorage,可用标题行的「导出 / 导入」以同格式 .txt 文件在浏览器间搬运。

支持哪些 dsh 版本?

基于 dsh 0.1.1-rc.2 的双侧插件契约开发(slots 注入 + loopback RPC)。插件接口处于 rc 阶段,dsh 大版本升级后如遇不兼容请提 issue。