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
English | 简体中文
Sidebar AI for Obsidian, powered by a local DeepSeek Harness
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
dshsetup; 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
| Dependency | Version | Notes |
|---|---|---|
| Obsidian | ≥ 1.4.0 | Desktop only |
| Node.js | ≥ 18 | Runtime 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.ymlinjects the local cordis plugin viafile:///...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:
| File | Purpose |
|---|---|
main.js | Plugin main program |
manifest.json | Plugin manifest (id / version / description) |
styles.css | Plugin 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 deepshian → Install → Enable, 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
| Setting | Default | Description |
|---|---|---|
| dsh command | dsh | Full path if dsh is not on PATH |
| Bridge profile | deepshian | Profile that carries the JSONL bridge plugin (auto-installed on first run) |
| Start read-only | Off | New conversations open in read-only mode |
| Debug logging | Off | Log unparsed stdout lines and harness stderr to the console |