Bundle
dsh-habits
My Habits for DeepSeek Harness: edit the user-global AGENTS.md from the Web settings — injected into every session by the built-in agent-instructions loader.
- Source
- DimitriLIAN
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 16 hours ago
Readme
# dsh-habits English | [中文](README.zh.md) 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 ```bash 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 ```bash 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-instructions` refreshes on the next successful `read`/`write`/`edit` touch, 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 `expectedRevision` conflict refusal, not merged.
Install
dsh plugin --profile web add github:DimitriLIAN/dsh-habits
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-habits from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.