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

obsidian-dsh

Native Obsidian integration for DeepSeek Harness: sidebar chat, vault context, tool/approval UI, Direct & Orchestrated Pro/Flash modes. 适合习惯在Obsidian笔记软件中直接调用DSH进行对话的用户。

Package
obsidian-dsh
Compatibility
Unverified
Version
0.1.0
License
MIT
Last updated
Sep 7, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full 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.