YUCONG-28/dsh-skills-plugins--plugins-obsidian-dsh ↗★ 0

obsidian-dsh

将DSH聊天与管理功能无缝集成至Obsidian 适合习惯在Obsidian笔记软件中直接调用DSH进行对话的用户。

包名
obsidian-dsh
兼容性
待验证
版本
0.1.0
许可证
MIT
最近更新
2026年9月7日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

obsidian-dsh

Native Obsidian integration for DeepSeek Harness (DSH). The plugin is a thin client: it reuses the local dsh web agent runtime and renders a native sidebar chat view inside Obsidian — no iframe, no reimplemented agent loop.

Features

  • Native sidebar (ItemView) with streaming chat, collapsible reasoning, tool cards, and Obsidian Markdown rendering (wikilinks work).
  • Session management: list / create / switch / archive, with cwd = vault by default.
  • Model + reasoning effort switching via session.models / session.selectModel.
  • Tool calls rendered as expandable cards with risk badges.
  • Approval / question loop: inline confirm UI answering DSH's approval/requested / question/requested frames through POST /api/respond.
  • Permission modes: Read Only / Ask Before Write / Workspace Write / Full Access, mapped to DSH sandbox + approval presets.
  • Context: Current Note, Selected Text, attached files (drag or command), budgeted injection.
  • External workspace: pick a directory (e.g. a Git repo) as the session workspace.
  • Direct / Orchestrated: Orchestrated uses DSH's own subagent/workflow primitives for Pro (decompose) → Flash (parallel) → Pro (review), with Pro/Flash model aliases.

Architecture

src/
  harness/    DSH process management + /api RPC + WebSocket event streams
  agents/     Direct/Orchestrated semantics + Pro/Flash model aliases
  views/      native sidebar UI, event fold, session store, renderer
  obsidian/   vault path, context collection, path linkify
  approval/   approval/question queue, modals, permission policy
  settings/   plugin settings model + tab
  utils/      timers, spawn, dsh executable detection, port
companion/
  dsh-obsidian-tools/   optional DSH bundle: vault-native tools + permission
                        presets + orchestrated preset reference

Build

npm install
npm run build     # produces main.js
npm test          # vitest unit + live contract smoke
npm run typecheck # tsc --noEmit

Copy main.js, manifest.json, styles.css into /.obsidian/plugins/obsidian-dsh/ and enable the plugin.

How it connects

  • Unary: POST /api/ with the four-quadrant RPC envelope.
  • Events: WebSocket downlinks /api/events.mux and /api/events.host (server → client only), with exponential-backoff reconnect.
  • Answers: POST /api/respond for approvals/questions.

Obsidian's renderer fetch/WebSocket carry an app://obsidian.md Origin that DSH's browser-trust fence rejects, so the plugin uses node:http / node:net primitives (loopback, no Origin).

Permission mapping

Modesandboxapproval
Read Onlyread-onlynever
Ask Before Writeread-onlyask
Workspace Writeworkspace-writeask
Full Accessdanger-full-accessask

The four presets are registered by the companion DSH bundle; the plugin writes the chosen permission.defaultPreset via settings.mutate.