Back to home@zhenghaoyang24

obsidian-plugin-deepshian

Sidebar AI chat powered by the local DeepSeek Harness (dsh): streaming replies, tool calls, and real vault file edits.

Stars
1
Language
TypeScript
Created
Aug 27, 2026
Updated
Aug 27, 2026

Introduction

DeepShian

image

English | 简体中文

Sidebar AI for Obsidian, powered by a local DeepSeek Harness

DSH Version Obsidian TypeScript

DeepShian brings DeepSeek Harness into Obsidian's right sidebar. There is no cloud API: it talks to the dsh already installed on your machine, so you get the full agent experience — streaming answers, thinking steps, tool-call cards — and it can read and edit your vault files directly.

DeepShian 把 DeepSeek Harness 直接带进 Obsidian 右侧栏。后端不是云端 API,而是你本机已经装好的 dsh,因此侧边栏里就是完整 Agent 体验——流式回答、思考过程、工具调用卡片——并且可以直接读写 vault 文件。

Features

🔒 Fully Local

  • Runs entirely on your machine: no cloud API, no account, and no vault data leaves your device.
  • The sidebar hosts the full agent — answers, tool calls, and file operations are all driven by your local dsh.

✨ Model Picker

  • One click lists every model available in your local dsh setup; providers are grouped when you have several.
  • Your choice sticks across new conversations, restarts, and the dsh web app.

🔐 Access Control

  • Pick an access mode next to the input box: Read Only (view and search only) or Workspace Write (edit files and run commands).
  • The mode is enforced for real — not a prompt hint — so you always decide what the agent may touch.

💬 Conversations

  • The current conversation title is always shown; the 📋 History button opens a panel with every conversation saved in this workspace.
  • Click a past conversation to resume it with full context, tool calls included.
  • History is shared with the dsh web app — both sides see the same conversations.
  • New conversation restarts the agent for a fresh start.

🎨 Chat Experience

  • Streamed replies render word by word; 💭 thinking steps are collapsible; tool calls appear as cards with input/output and status; token usage is shown at the end of every turn.
  • The send button turns into Stop while generating — click it to interrupt the current turn.
  • The UI follows Obsidian's language setting (English / 简体中文).

Requirements

DependencyVersionNotes
Obsidian≥ 1.4.0Desktop only
Node.js≥ 18Runtime for the dsh command
DeepSeek Harness/Installed globally so that dsh is available
# Verify dsh is installed
dsh --version

Quick Start

1 Install the dsh profile

Automatic (recommended): the plugin checks the bridge profile on startup. The first run — or any run where the profile is missing — opens a dialog: click the install button and the four profile files are written to ~/.dsh/profiles/deepshian/. cordis.patch.yml is generated with your machine's real home path, so nothing needs manual editing. You can also reinstall anytime from Settings → Reinstall bridge profile.

Manual fallback: copy the profile folder, then fix the machine path by hand:

Copy-Item .\dsh-profile\deepshian\* "$env:USERPROFILE\.dsh\profiles\deepshian\" -Recurse -Force

Edit cordis.patch.yml inside that directory so the file:/// path points at your user home (the repo copy ships a <YOUR-HOME> placeholder).

Smoke test — you should see {"t":"ready",...} followed by streaming events:

'{"prompt":"Reply PONG"}' | dsh --profile deepshian

The profile's cordis.patch.yml injects the local cordis plugin via file:///...mjs; the bundles only contain @deepseek-ai/dsh-base (the full agent core), and models/credentials are inherited from your own dsh config.

2 Install into Obsidian

Option A: Download from Releases

Go to the Releases page and download these three files from the latest release:

FilePurpose
main.jsPlugin main program
manifest.jsonPlugin manifest (id / version / description)
styles.cssPlugin styles

Put them into the vault's plugin folder <vault>/.obsidian/plugins/deepshian/ (create it first if needed):

New-Item -ItemType Directory -Force "<vault>/.obsidian/plugins/deepshian/" | Out-Null
Copy-Item "$env:USERPROFILE\Downloads\main.js", "$env:USERPROFILE\Downloads\manifest.json", "$env:USERPROFILE\Downloads\styles.css" "<vault>/.obsidian/plugins/deepshian/"

Then: Settings → Community plugins → Enable DeepShian → click the 🤖 icon in the left sidebar to open chat.

Option B: Install from the community plugin store

Open Obsidian → Settings → Community plugins → Browse → search deepshianInstallEnable, then click the 🤖 icon in the left sidebar to open chat.

3 Build from source (optional)

npm install
npm run build     # type-check and bundle into build/ (main.js + manifest.json + styles.css)
npm run dev       # optional: watch-mode incremental builds

The output lands in build/ — the same three files (main.js, manifest.json, styles.css) — copy them into the vault's plugin folder:

Copy-Item .\build\* "<vault>/.obsidian/plugins/deepshian/"

4 Plugin settings

SettingDefaultDescription
dsh commanddshFull path if dsh is not on PATH
Bridge profiledeepshianProfile that carries the JSONL bridge plugin (auto-installed on first run)
Start read-onlyOffNew conversations open in read-only mode
Debug loggingOffLog unparsed stdout lines and harness stderr to the console