deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Shrbuz/dsh-web-notes
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Floating notes for the DeepSeek Harness web GUI (dsh web). Keep commands, credentials, parameter values and any other important snippets at hand while working — and feed them back into the conversation with one click.
prefers-reduced-motion.$DSH_HOME/notes/notes.json (default ~/.dsh/notes/notes.json), atomic writes, tolerant reads.--dsw-alias-*), so the UI matches the official light/dark theme out of the box AND recolors live when a skin plugin (dsh-skins / skin-center) is installed — no reload, no skin-specific code.The package is published on the npm registry:
dsh plugin --profile web add dsh-web-notes
If your default npm registry is a mirror that has not synced the package yet (e.g. npmmirror — read-only, syncs with a delay), install straight from the official registry instead:
dsh plugin --profile web add dsh-web-notes --registry https://registry.npmjs.org/
dsh plugin --profile web add link:/path/to/dsh-web-notes
Then add the bundle to the profile manifest so it actually boots:
# append "dsh-web-notes" to the bundles list in ~/.dsh/profiles/web/package.json
# under "dsh" > "profile" > "bundles", then restart dsh web
The official
dsh plugin --profile web add <spec>command forwards to pnpm; it installs the package but does not edit thedsh.profile.bundlesmanifest — that list decides which installed packages boot. Add the package name there (or ship acordis.patch.ymlinsert via an aggregator bundle) and restart.
dsh plugin --profile web list # dsh-web-notes should be installed
npm view dsh-web-notes version # → the latest published version
After restarting dsh web, the notebook icon appears on the right edge of the chat window (see Usage).
dsh plugin forwards to pnpm, so updating is just pnpm's update — no manifest edits needed (the profile reconciles its bundle list against what is installed on the next dsh plugin run), then restart dsh web:
dsh plugin --profile web update dsh-web-notes
# or pin an exact version:
dsh plugin --profile web add dsh-web-notes@latest --registry https://registry.npmjs.org/
Mirror sync delay: publishing goes to the official registry, but mirrors like npmmirror sync on a delay — right after a release your default registry may still serve the previous version (or briefly 404). If an update "does nothing" after a new release, point at the official registry with
--registry https://registry.npmjs.org/.
Updates never touch your notes: they live on the host at
$DSH_HOME/notes/notes.jsonand your settings survive an upgrade.
Notes are searchable by title, content and tags (comma-separated in the editor).
The plugin registers a notes settings namespace and a settings card in Settings → Plugins → Plugin Configuration (the namespace is also editable via ~/.dsh/settings.yaml):
notes:
enabled: true # master switch: false hides the dock entirely
selectionCapture: true # false disables the selection "Save as note" bubble
dockMode: floating # floating (draggable) | fixed (chat window top-right)
buttonSize: large # small | regular | large
defaultGlobal: false # new notes default to global (all sessions)
All five options are editable live in the settings card; the dock and panel pick up changes immediately.
Notes may contain credentials, tokens, or other sensitive values. They are stored in plaintext in a local JSON file (~/.dsh/notes/notes.json, same trust model as ~/.dsh/credentials.yaml) and are served only to the loopback browser UI. Do not store secrets you cannot afford to expose on this machine, and protect the file with your OS-level user permissions. Exporting/backing up that file also exports every note.
pnpm install
pnpm run build # tsc -b (types) + tsdown (lib/index.js + lib/client.js)
node scripts/smoke-host.mjs # standalone host-logic smoke test (no dsh app needed)
# client UI verification that needs no dsh app (see below)
pnpm exec tsdown --config tsdown.harness.config.ts
node scripts/verify-touch.mjs
scripts/verify-touch.mjs drives scripts/harness/entry.tsx — a standalone harness that renders the REAL NotesDock component tree with the REAL NOTES_CSS against mocked host contracts (notes API, sessions store, settings scope) — in headless Chrome over CDP. It asserts the coarse-pointer adaptation and every dismissal path, and writes .logs/touch-desktop.png / .logs/touch-coarse.png for visual inspection.
The
scripts/cdp-*.mjs/screenshot.mjsprobes drive the running GUI, so they need that instance's browser auth. dsh ≥ 0.1.5 gates/behind a per-process launch token (minted into a signed cookie), so a fresh headless browser gets401 dsh web authentication requiredand never boots the app — open the token URL printed bydsh webin the same browser profile, or reach for the harness for client-only checks.
Architecture:
src/index.ts, src/service.ts, src/routes.ts, src/persist.ts) — cordis plugin row notes; CRUD service, atomic JSON persistence, loopback-guarded /api/notes/* routes, settings namespace.src/client/) — global floating surface mounted on document.body (notes have no session dimension); talks to the host through same-origin JSON; inserts into the composer through the official conversation input facade (ctx.conversation.input.for(actx).setDraft(...)).The client bundle is built as a closure-factory artifact (window.__ModuleLoader__.load({ id: 'dsh-web-notes', factory })) served by the web plugin table at /plugins/dsh-web-notes/client.js.
Apache-2.0. © 2026 Shrbuz — see NOTICE for attribution.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。