dsh-obsidian-workbench
Local-first Obsidian research tools for DeepSeek Harness: browse and search authorized Vaults, cite exact note locations, attach the active note or selection to an AI request, and review every proposed write before it reaches disk.
The project ships two coordinated surfaces:
- a DeepSeek Harness workbench with Vault navigation, Markdown reading, citations, and a draggable Notion-style AI HUD;
- an optional desktop Obsidian companion with active-note/selection detection, guarded Diff review, and the same DeepSeek whale identity.
Highlights
Version 1.2.0-alpha.7 includes:
- an always-visible right-edge collapse handle;
- a draggable, resizable, pinnable Harness HUD with persistent position/size, inline slash commands, quick capture, history, citations, and streamed answers;
- an optional desktop-only Obsidian companion in
obsidian-companion/, including active-note/selection detection and a selection AI menu;
- a loopback-only HTTP bridge protected by a random bearer token whose file must be user-owned, non-symlinked, named
bridge-token, and mode 0600, plus an independent authorized-Vault check;
- preview-first edit/capture proposals: no note is changed until the user explicitly accepts the Diff, with request ownership and content-hash conflict checks enforced by the Harness host.
- approval handoff for Obsidian-origin turns: Harness permission requests appear inside the native HUD and can be rejected or granted once without switching to the web UI.
- a simplified command surface: the redundant
⌘K overlay was removed from both HUDs, eliminating its blocking grey backdrop; use the visible mode/actions or type / in the composer instead.
- a theme-safe answer surface: the expanded HUD now uses the active light/dark panel color instead of a dark fallback blended over light themes.
- an official DeepSeek-blue whale launcher across Harness and Obsidian; while a request is queued or streaming, the whale gently bobs and emits thought bubbles above its head, away from the raised tail;
- a blue animated
回答完成 completion state in the native Obsidian HUD, with prefers-reduced-motion support.
Context metadata can be synchronized locally for preview, but note content enters an AI request only after the user clicks Send. A busy session or non-empty composer draft queues the HUD request without overwriting user input.
The release workflow validates the exact fixed package on an isolated fixture-only Harness profile before any production deployment. The optional native Obsidian companion is installed only into an explicitly named Vault and always backs up an existing copy first.
Safety model
- Vaults are unavailable until the user explicitly authorizes them.
- Note content is not sent merely because Obsidian synchronizes the active-note preview; transmission begins only when the user sends a request or approves a tool call.
- Writes are off by default and use preview-first proposals, request ownership, content-hash conflict checks, atomic replacement, and rollback backups.
- The native bridge accepts HTTP loopback only and requires a user-owned, non-symlinked
bridge-token file with mode 0600.
See SECURITY.md for the complete threat model and README.zh-CN.md for the Chinese guide.
由 dsh-super-injector dev_scaffold_plugin 生成。
构建与注入
DSH_CHECKOUT=<checkout> bash scripts/build.sh
# 注入器环境内:dev_inject_plugin <本目录>
Optional Obsidian companion:
bash scripts/install-obsidian-companion.sh "/absolute/path/to/Vault"
Then enable DeepSeek Harness AI HUD under Obsidian Community plugins. See README.zh-CN.md, SECURITY.md, and obsidian-companion/README.md for the trust model and operational details.