Preface¶
The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” In long-term conversations, models produce conclusions, explanations, or ideas. If these pieces of information are not organized, they can easily get buried or lost. This plugin provides a deterministic workflow that directly organizes content from DSH conversations worth preserving long-term into an Obsidian knowledge base.
What Is This¶
dsh-obsidian-inbox is a SKILL.md skill for DSH, maintained by the developer Leo3-7. It defines a standardized workflow for organizing content into the knowledge base. It aims to address knowledge fragmentation by storing high-value information from conversations in Obsidian in a structured way.
Core Features¶
When the plugin runs, it processes content according to the following principles:
- Search before archiving: Before writing to the knowledge base, first search by file name, aliases, links, frontmatter, or MOC. If the target already exists, merge with it.
- Merge before creating new notes: Make local edits only, update the
updatedtimestamp only, do not overwrite the entire note, and do not create duplicates. - Extract long-term value only: Do not save full chat histories, passwords, tokens, or temporary noise.
- One primary ownership: Each knowledge entry belongs to only one primary directory. Cross-domain relationships are expressed through links and tags.
- Two-level deterministic validation: Validation has two layers. The first layer is formula-level, recognizing
$$or$mathematical formulas and rejecting invalid characters. The second layer is structure-level, checking the validity of Wiki links ([[Link]]), the validity of.obsidianJSON configuration, and same-name ambiguity. If validation fails, it does not report that the content has been ingested.
Installation¶
The plugin is published to npm and can be installed with the following command:
dsh plugin --profile web add dsh-obsidian-inbox
If your DSH uses a different profile, replace --profile web with the actual profile name.
Configuration¶
Before using the plugin, configure the following two key items:
- Vault path: Determined by the plugin’s
Config.defaultVault. It is empty by default and must be manually set to your Obsidian vault path. It can also be overridden via a parameter when invoking the validation tool. - Primary directory classification: The default structure contains
00_收件箱 / 01_考研 / 02_AI与编程 / 03_智能制造 / 04_项目 / 05_想法 / 06_错题 / 07_对话精华. Adjust the directory structure according to actual needs.
Validation Tool¶
The plugin exposes a model tool obsidian_validate_vault for checking the health status of the knowledge base before validation. This is not a shell script, but a tool invoked directly in the conversation.
Invocation example:
obsidian_validate_vault
obsidian_validate_vault (vault: "...")
The tool returns { ok, noteCount, problems }. When ok=false, it lists formula, JSON, Wiki link, or same-name ambiguity issues one by one. An exit code of 0 indicates pass, and 1 indicates that problems were found.
Dependencies and Environment¶
- Node.js: Version must be
>= 18. - Target environment: A standard Obsidian vault that must include the
.obsidianconfiguration directory.
Summary¶
The plugin registers as a bundled provider through ctx.skills, connecting DeepSeek Harness with Obsidian’s knowledge management capabilities. Through strict validation and merge logic, it ensures the knowledge base remains clean and consistent.