← 返回产品

npm 插件 · v0.6.0 · 已发布

dsh-oh-my-theme

为 DeepSeek Harness 网页端打造的主题与文件工作台插件,把主题定制、文件引用、代码预览、Git 只读视图和实时余额放进同一个工作流。

dsh-oh-my-theme 是我为 DeepSeek Harness(dsh)网页端开发的「主题 + 文件工作台」插件,目前已经发布为 npm 包。

它最初从主题定制出发,现在已经扩展为一个围绕日常开发流程设计的工作台:既可以调整 dsh 的界面风格和文字显示,也可以在输入框中引用项目文件、浏览工作区、预览 Markdown 与代码、查看 Git 变化和提交历史,还能查看 DeepSeek 账户的实时余额。

这个插件解决什么问题

使用 AI 处理真实项目时,经常需要在对话、文件系统和 Git 状态之间反复切换。dsh-oh-my-theme 希望把这些高频操作集中在 dsh 网页端内完成:

  • 通过 @文件路径 明确告诉 AI 需要读取哪个文件,减少盲目搜索带来的上下文消耗。
  • 在对话旁边直接浏览项目文件和预览内容,不必频繁切换编辑器或文件管理器。
  • 查看当前工作区的 Git 变化、Diff 和提交历史,同时保持严格的只读边界。
  • 根据自己的工作习惯调整主题、字号和文件预览字体。

主题与文字显示

插件在 设置 → 通用设置 → Oh My Theme 中提供主题和文字显示设置。

目前内置三套起步皮肤:

  • aurora:暗色极光紫。
  • coffee:暖色咖啡棕。
  • matrix:暗色终端绿。
  • 也可以选择“默认”,继续跟随 dsh 内置外观。

鼠标悬停在色卡上时,整个页面会实时预览对应皮肤,但不会立即保存;只有点击色卡后才会确认选择。对话流、文件树和文件预览的字号可以分别调整,文件预览字体也可以单独设置。

这些偏好保存在当前浏览器的 localStorage 中,不会修改会话数据或项目文件。

在输入框中引用项目文件

在 dsh 输入框中输入 @,插件会搜索当前会话的工作区,并显示匹配的文件和目录。

选择文件后会插入 @相对路径 。这样可以明确告诉 AI 应该读取哪个文件,而不是让它先在整个项目中搜索。目录项会以 / 结尾,输入类似 @src/ 的路径可以继续向下筛选。

点击输入框中已经插入的文件引用,还可以直接在右侧工作台中打开对应文件。

右侧文件工作台

点击 Session log 左侧的工作区按钮,可以打开 Codex 风格的右侧文件面板。面板提供三种布局:

  • 仅显示项目文件。
  • 文件树与文件预览分栏显示。
  • 仅显示文件预览。

文件树采用懒加载方式,目录只在展开时读取。node_modules、.git、.pnpm、构建产物和隐藏依赖目录会自动过滤,不会出现在文件树或 @ 搜索结果中。

点击搜索按钮或按下 Ctrl/Cmd + P,可以按文件名和路径快速打开文件。连续打开多个文件时,每个文件会保留独立的预览标签,可以在标签之间切换或关闭。

Markdown 与代码预览

Markdown 文件使用 dsh 自带的 Markdown 渲染器。JavaScript、TypeScript、Vue、Python、Go、Rust、Java、Shell、YAML、SQL、Dockerfile 等常见代码文件会使用 Shiki 进行语法高亮,并提供复制按钮。

无法识别但属于 UTF-8 文本的文件会回退为纯文本预览。单个文本文件设有 512KB 读取上限,二进制文件会被拒绝读取,避免误加载大文件或无意义内容。

Git 变化与提交时间线

右侧工作台可以从“文件”切换到“Git”,查看当前工作区的 Git 状态和历史。整个 Git 功能只提供读取能力,不执行提交、暂存、切换分支或其他写操作。

更改视图

更改会按照已暂存、未暂存和未跟踪状态分组展示。选择文件后,可以使用 dsh 现有的 DiffBlock 组件查看工作区 Diff 或暂存区 Diff,未跟踪文件也可以生成对应的 Diff。

提交视图

提交时间线会从本地和远程 refs 分页读取与当前工作区相关的提交,显示短哈希、提交主题、作者、时间和分支标签。

选择一条提交后,可以查看该提交涉及的文件列表、完整提交 Diff,或者只查看其中某个文件的变化。

宿主端只开放固定的 git status、diff、log 和 show 命令。所有路径都限制在当前会话工作区内,commit hash 会进行格式校验,命令也设置了超时和输出上限。

DeepSeek 实时余额

插件会在输入框下方的会话统计区域显示 DeepSeek 账户实时余额,点击金额可以查看总余额、赠送余额、充值余额和更新时间。

API Key 只在 dsh 宿主端通过 credentials 服务解析,用于请求 DeepSeek 官方 /user/balance 接口。浏览器只会收到余额结果,API Key 不会进入客户端或日志。

余额默认不会自动轮询。只有首次挂载或用户主动点击刷新时才会发起请求,避免在后台持续产生不必要的网络请求。

安装与使用

插件已经发布为 npm 包,可以安装到 dsh 的 web profile:

terminalbash
dsh plugin --profile web add dsh-oh-my-theme

安装完成后启动 dsh 网页端:

terminalbash
dsh web

如果需要卸载:

terminalbash
dsh plugin --profile web remove dsh-oh-my-theme

项目地址

项目代码、完整使用说明和更新记录都在 GitHub:

查看 dsh-oh-my-theme 项目

如果你正在使用 dsh,欢迎安装体验。遇到问题或有新的功能想法,也可以通过 GitHub Issue 反馈。