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:

  1. 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.
  2. Merge before creating new notes: Make local edits only, update the updated timestamp only, do not overwrite the entire note, and do not create duplicates.
  3. Extract long-term value only: Do not save full chat histories, passwords, tokens, or temporary noise.
  4. One primary ownership: Each knowledge entry belongs to only one primary directory. Cross-domain relationships are expressed through links and tags.
  5. 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 .obsidian JSON 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 .obsidian configuration 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.

View the plugin directory
Visit GitHub