dsh-habits
已验证 · 实测可装 DimitriLIAN
功能简介
DeepSeek Harness习惯编辑器:从Web设置编辑AGENTS.md
可用 — 实测通过,早期项目
DeepSeek Harness习惯编辑器:从Web设置编辑AGENTS.md 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-habits
English | 中文
A DeepSeek Harness (DSH) plugin that adds a My Habits editor to the Web settings → General section. The text you save goes to the user-global instruction document $DSH_HOME/AGENTS.md, which the built-in dsh-agent-instructions loader already injects into every session — so your preferences and habits reach the model automatically.
No DSH core is modified: the host half registers a small REST surface on ctx.webServer (/api2/habits/describe + /api2/habits/update), and the browser half registers a settings.general.item row that calls it. This is the same standalone-bundle pattern as dsh-web-plugin-manager.
Install
dsh plugin add --profile web github:<owner>/dsh-habits
Then restart the web profile (dsh --profile web) so the bundle layer loads. Open Settings → General → My habits, write your note, and save. New sessions pick it up immediately; a running session refreshes on its next file touch or resume.
How it works
| Layer | Mechanism |
|---|---|
| Host half | ctx.inject(['webServer']) → ctx.webServer.register() for describe/update |
| Read | readFileSync($DSH_HOME/AGENTS.md); absence is a blank document, never an error |
| Write | atomic rename under a 65 536-byte budget, with a SHA-1 expectedRevision conflict refusal |
| Browser half | settings.general.item slot (id habits), fetch the REST surface |
| Injection | the built-in dsh-agent-instructions loader injects ~/.dsh/AGENTS.md as the workspace-instruction baseline |
Build
pnpm install
pnpm run build
build = host tsc + client tsc (declarations) + tsdown (the __ModuleLoader__.load client bundle).
Known limitations
- Applies to new sessions —
dsh-agent-instructionsrefreshes on the next successfulread/write/edittouch, on resume, or when a shadowed baseline re-enters; a mid-conversation save does not rewrite an already-running session immediately. - One editor owns the document — concurrent edits are arbitrated by the
expectedRevisionconflict refusal, not merged.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-habits」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:DimitriLIAN/dsh-habits Headless(CLI)profile:
dsh plugin --profile headless add github:DimitriLIAN/dsh-habits 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。
使用场景
扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。
适合谁
想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。
二次开发建议
工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。