[{"data":1,"prerenderedAt":373},["ShallowReactive",2],{"product-dsh-oh-my-theme":3},{"id":4,"title":5,"body":6,"description":364,"extension":365,"meta":366,"navigation":368,"path":369,"seo":370,"stem":371,"__hash__":372},"content/products/dsh-oh-my-theme.md","dsh-oh-my-theme",{"type":7,"value":8,"toc":347},"minimark",[9,24,27,31,37,57,60,68,71,94,97,104,107,114,129,132,135,138,149,166,173,178,181,184,188,191,194,201,204,207,210,227,231,234,241,244,247,254,289,292,304,307,327,330,333,340,343],[10,11,12,15,16,23],"p",{},[13,14,5],"code",{}," 是我为 ",[17,18,22],"a",{"href":19,"rel":20},"https://github.com/deepseek-ai/deepseek-harness",[21],"nofollow","DeepSeek Harness","（dsh）网页端开发的「主题 + 文件工作台」插件，目前已经发布为 npm 包。",[10,25,26],{},"它最初从主题定制出发，现在已经扩展为一个围绕日常开发流程设计的工作台：既可以调整 dsh 的界面风格和文字显示，也可以在输入框中引用项目文件、浏览工作区、预览 Markdown 与代码、查看 Git 变化和提交历史，还能查看 DeepSeek 账户的实时余额。",[28,29,30],"h2",{"id":30},"这个插件解决什么问题",[10,32,33,34,36],{},"使用 AI 处理真实项目时，经常需要在对话、文件系统和 Git 状态之间反复切换。",[13,35,5],{}," 希望把这些高频操作集中在 dsh 网页端内完成：",[38,39,40,48,51,54],"ul",{},[41,42,43,44,47],"li",{},"通过 ",[13,45,46],{},"@文件路径"," 明确告诉 AI 需要读取哪个文件，减少盲目搜索带来的上下文消耗。",[41,49,50],{},"在对话旁边直接浏览项目文件和预览内容，不必频繁切换编辑器或文件管理器。",[41,52,53],{},"查看当前工作区的 Git 变化、Diff 和提交历史，同时保持严格的只读边界。",[41,55,56],{},"根据自己的工作习惯调整主题、字号和文件预览字体。",[28,58,59],{"id":59},"主题与文字显示",[10,61,62,63,67],{},"插件在 ",[64,65,66],"strong",{},"设置 → 通用设置 → Oh My Theme"," 中提供主题和文字显示设置。",[10,69,70],{},"目前内置三套起步皮肤：",[38,72,73,79,85,91],{},[41,74,75,78],{},[13,76,77],{},"aurora","：暗色极光紫。",[41,80,81,84],{},[13,82,83],{},"coffee","：暖色咖啡棕。",[41,86,87,90],{},[13,88,89],{},"matrix","：暗色终端绿。",[41,92,93],{},"也可以选择“默认”，继续跟随 dsh 内置外观。",[10,95,96],{},"鼠标悬停在色卡上时，整个页面会实时预览对应皮肤，但不会立即保存；只有点击色卡后才会确认选择。对话流、文件树和文件预览的字号可以分别调整，文件预览字体也可以单独设置。",[10,98,99,100,103],{},"这些偏好保存在当前浏览器的 ",[13,101,102],{},"localStorage"," 中，不会修改会话数据或项目文件。",[28,105,106],{"id":106},"在输入框中引用项目文件",[10,108,109,110,113],{},"在 dsh 输入框中输入 ",[13,111,112],{},"@","，插件会搜索当前会话的工作区，并显示匹配的文件和目录。",[10,115,116,117,120,121,124,125,128],{},"选择文件后会插入 ",[13,118,119],{},"@相对路径 ","。这样可以明确告诉 AI 应该读取哪个文件，而不是让它先在整个项目中搜索。目录项会以 ",[13,122,123],{},"/"," 结尾，输入类似 ",[13,126,127],{},"@src/"," 的路径可以继续向下筛选。",[10,130,131],{},"点击输入框中已经插入的文件引用，还可以直接在右侧工作台中打开对应文件。",[28,133,134],{"id":134},"右侧文件工作台",[10,136,137],{},"点击 Session log 左侧的工作区按钮，可以打开 Codex 风格的右侧文件面板。面板提供三种布局：",[38,139,140,143,146],{},[41,141,142],{},"仅显示项目文件。",[41,144,145],{},"文件树与文件预览分栏显示。",[41,147,148],{},"仅显示文件预览。",[10,150,151,152,155,156,155,159,162,163,165],{},"文件树采用懒加载方式，目录只在展开时读取。",[13,153,154],{},"node_modules","、",[13,157,158],{},".git",[13,160,161],{},".pnpm","、构建产物和隐藏依赖目录会自动过滤，不会出现在文件树或 ",[13,164,112],{}," 搜索结果中。",[10,167,168,169,172],{},"点击搜索按钮或按下 ",[13,170,171],{},"Ctrl/Cmd + P","，可以按文件名和路径快速打开文件。连续打开多个文件时，每个文件会保留独立的预览标签，可以在标签之间切换或关闭。",[174,175,177],"h3",{"id":176},"markdown-与代码预览","Markdown 与代码预览",[10,179,180],{},"Markdown 文件使用 dsh 自带的 Markdown 渲染器。JavaScript、TypeScript、Vue、Python、Go、Rust、Java、Shell、YAML、SQL、Dockerfile 等常见代码文件会使用 Shiki 进行语法高亮，并提供复制按钮。",[10,182,183],{},"无法识别但属于 UTF-8 文本的文件会回退为纯文本预览。单个文本文件设有 512KB 读取上限，二进制文件会被拒绝读取，避免误加载大文件或无意义内容。",[28,185,187],{"id":186},"git-变化与提交时间线","Git 变化与提交时间线",[10,189,190],{},"右侧工作台可以从“文件”切换到“Git”，查看当前工作区的 Git 状态和历史。整个 Git 功能只提供读取能力，不执行提交、暂存、切换分支或其他写操作。",[174,192,193],{"id":193},"更改视图",[10,195,196,197,200],{},"更改会按照已暂存、未暂存和未跟踪状态分组展示。选择文件后，可以使用 dsh 现有的 ",[13,198,199],{},"DiffBlock"," 组件查看工作区 Diff 或暂存区 Diff，未跟踪文件也可以生成对应的 Diff。",[174,202,203],{"id":203},"提交视图",[10,205,206],{},"提交时间线会从本地和远程 refs 分页读取与当前工作区相关的提交，显示短哈希、提交主题、作者、时间和分支标签。",[10,208,209],{},"选择一条提交后，可以查看该提交涉及的文件列表、完整提交 Diff，或者只查看其中某个文件的变化。",[10,211,212,213,155,216,155,219,222,223,226],{},"宿主端只开放固定的 ",[13,214,215],{},"git status",[13,217,218],{},"diff",[13,220,221],{},"log"," 和 ",[13,224,225],{},"show"," 命令。所有路径都限制在当前会话工作区内，commit hash 会进行格式校验，命令也设置了超时和输出上限。",[28,228,230],{"id":229},"deepseek-实时余额","DeepSeek 实时余额",[10,232,233],{},"插件会在输入框下方的会话统计区域显示 DeepSeek 账户实时余额，点击金额可以查看总余额、赠送余额、充值余额和更新时间。",[10,235,236,237,240],{},"API Key 只在 dsh 宿主端通过 credentials 服务解析，用于请求 DeepSeek 官方 ",[13,238,239],{},"/user/balance"," 接口。浏览器只会收到余额结果，API Key 不会进入客户端或日志。",[10,242,243],{},"余额默认不会自动轮询。只有首次挂载或用户主动点击刷新时才会发起请求，避免在后台持续产生不必要的网络请求。",[28,245,246],{"id":246},"安装与使用",[10,248,249,250,253],{},"插件已经发布为 npm 包，可以安装到 dsh 的 ",[13,251,252],{},"web"," profile：",[255,256,261],"pre",{"className":257,"code":258,"language":259,"meta":260,"style":260},"language-bash shiki shiki-themes github-light github-dark","dsh plugin --profile web add dsh-oh-my-theme\n","bash","",[13,262,263],{"__ignoreMap":260},[264,265,268,272,276,280,283,286],"span",{"class":266,"line":267},"line",1,[264,269,271],{"class":270},"sScJk","dsh",[264,273,275],{"class":274},"sZZnC"," plugin",[264,277,279],{"class":278},"sj4cs"," --profile",[264,281,282],{"class":274}," web",[264,284,285],{"class":274}," add",[264,287,288],{"class":274}," dsh-oh-my-theme\n",[10,290,291],{},"安装完成后启动 dsh 网页端：",[255,293,295],{"className":257,"code":294,"language":259,"meta":260,"style":260},"dsh web\n",[13,296,297],{"__ignoreMap":260},[264,298,299,301],{"class":266,"line":267},[264,300,271],{"class":270},[264,302,303],{"class":274}," web\n",[10,305,306],{},"如果需要卸载：",[255,308,310],{"className":257,"code":309,"language":259,"meta":260,"style":260},"dsh plugin --profile web remove dsh-oh-my-theme\n",[13,311,312],{"__ignoreMap":260},[264,313,314,316,318,320,322,325],{"class":266,"line":267},[264,315,271],{"class":270},[264,317,275],{"class":274},[264,319,279],{"class":278},[264,321,282],{"class":274},[264,323,324],{"class":274}," remove",[264,326,288],{"class":274},[28,328,329],{"id":329},"项目地址",[10,331,332],{},"项目代码、完整使用说明和更新记录都在 GitHub：",[10,334,335],{},[17,336,339],{"href":337,"rel":338},"https://github.com/zhxqc/dsh-oh-my-theme",[21],"查看 dsh-oh-my-theme 项目",[10,341,342],{},"如果你正在使用 dsh，欢迎安装体验。遇到问题或有新的功能想法，也可以通过 GitHub Issue 反馈。",[344,345,346],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":260,"searchDepth":348,"depth":348,"links":349},2,[350,351,352,353,357,361,362,363],{"id":30,"depth":348,"text":30},{"id":59,"depth":348,"text":59},{"id":106,"depth":348,"text":106},{"id":134,"depth":348,"text":134,"children":354},[355],{"id":176,"depth":356,"text":177},3,{"id":186,"depth":348,"text":187,"children":358},[359,360],{"id":193,"depth":356,"text":193},{"id":203,"depth":356,"text":203},{"id":229,"depth":348,"text":230},{"id":246,"depth":348,"text":246},{"id":329,"depth":348,"text":329},"为 DeepSeek Harness 网页端打造的主题与文件工作台插件，集成主题定制、@ 文件引用、文件预览、Git 只读视图与实时余额。","md",{"date":367},"2026-08-17",true,"/products/dsh-oh-my-theme",{"title":5,"description":364},"products/dsh-oh-my-theme","plrAUx35w_PowNTPNI8dEgGVZUkp3w9UyfVt2sl7ud8",1790122731176]