Introduction¶
When running agents in DeepSeek Harness (DSH), the context is often lost after the session ends. Writing tasks, personas, and project notes into external documents and manually pasting them can help resume some continuity, but the read/write process relies entirely on humans, preventing the agent from autonomously retrieving and updating information.
dsh-client-ui-obsidian-memory takes a different approach: it stores memories in a local Obsidian (or pure Markdown) vault directory. The plugin registers filesystem tools, allowing the AI to directly read, search, write, and append. Data stays local, without relying on external memory services.
What It Is¶
dsh-client-ui-obsidian-memory is a client UI plugin for DSH, maintained by detongz and categorized under “Memory”. It directly accesses the local filesystem through the DSH host runtime. After configuring the vaultPath, it exposes 5 obsidian_memory_* tools to the agent and renders a status and tool description panel in the DSH left sidebar at the sidebar.obsidian-memory slot.
The plugin’s current version is v0.3.2, licensed under MIT. For the community directory page, see SkillHub; for the source code, see GitHub.
Core Features¶
Below are the documented capabilities of the plugin, sourced from the README and package.json.
Five Memory Tools¶
| Tool | Function |
|---|---|
obsidian_memory_read |
Reads Markdown or text files |
obsidian_memory_list |
Lists directories and files |
obsidian_memory_search |
Performs full-text search in .md and .txt files |
obsidian_memory_write |
Writes or overwrites a file |
obsidian_memory_append |
Appends content to the end of a file |
All paths are restricted to within the vaultPath; out-of-bounds access triggers a “Path traversal detected” error.
Sidebar Panel¶
The browser displays the Obsidian Memory panel in the DSH left sidebar, showing vault status, tool references, and recommended directory structure. This requires DSH to provide the sidebar.obsidian-memory slot (the README suggests DSH ≥ 0.1.0-rc.5).
No External Service, Compatible with Codex Directory¶
The plugin does not connect to remote memory services; read/write operations are performed via the DSH Host (Node.js). The directory structure can align with the community-recommended Codex/ layout, making it easy to share with existing Obsidian workflows.
Installation and Setup¶
1. Prepare the Vault Directory¶
Create a Codex/ folder anywhere, for example, inside an Obsidian vault:
~/Documents/Obsidian Vault/
└── Codex/
├── AGENTS.md
├── TODO.md
├── people/
├── projects/
├── notes/
└── daily/
AGENTS.md can hold AI operation instructions, TODO.md can contain to-dos and unclosed items; subdirectories can be organized by project.
2. Install the Plugin¶
Run the following in any directory:
dsh plugin add dsh-client-ui-obsidian-memory
Alternatively, install from the GitHub source:
dsh plugin add detongz/dsh-client-ui-obsidian-memory
The plugin includes a dsh.bundle manifest. dsh plugin add installs the package and activates the ui-obsidian-memory layer via the bundled cordis.patch.yml. Typically, no manual profile modification is needed to load the plugin.
If the plugin does not appear in Settings → Plugins, the README suggests reinstalling the latest version:
dsh plugin add dsh-client-ui-obsidian-memory@latest
(Older versions pre-0.3.2 might only be installed as a regular dependency.)
3. Configure vaultPath¶
In the profile’s cordis.patch.yml, point to the absolute path of the Codex/ folder:
- id: ui-obsidian-memory
config:
vaultPath: /Users/YOURNAME/Documents/Obsidian Vault/Codex
Alternatively, set an environment variable:
export OBSIDIAN_VAULT_PATH=/Users/YOURNAME/Documents/Obsidian Vault/Codex
If neither is set, the plugin will log a warning and skip tool registration.
4. Restart DSH¶
dsh web
After restarting, the Obsidian Memory panel should appear in the sidebar; when the vaultPath is configured correctly, the 5 tools will be available to the agent.
Typical Usage¶
After the above steps, the agent can invoke tools to maintain local memory during conversations, for example:
- Use
obsidian_memory_listto see which notes are in theprojects/directory. - Use
obsidian_memory_searchto search for keywords across the vault. - Use
obsidian_memory_readto readAGENTS.mdor a specific project note. - Use
obsidian_memory_writeto updateTODO.md, or useobsidian_memory_appendto add a daily record underdaily/.
The specific invocations are initiated by the agent within the DSH session; you only need to ensure the directory structure matches the vaultPath and that AGENTS.md specifies how the agent should use these files.
Architecture Overview¶
DSH Web (Browser)
└─ sidebar.obsidian-memory: Sidebar panel (tool description, vault structure)
│
DSH Host (Node.js)
└─ Registers obsidian_memory_* tools, reads/writes local files
│
Local Filesystem
└─ Codex/ directory pointed to by vaultPath
The host entry point is lib/index.js, and the client is lib/client.js; the data source is the local Markdown files.
Use Cases and Notes¶
Who It’s For: Developers who already use Obsidian or pure Markdown for note management and want DSH agents to read/write to the same local vault across sessions.
Permissions and Security: The plugin accesses the filesystem with the current DSH process permissions. Read/write access is limited to the vaultPath and its subdirectories. Before installation, review the source repository and the MIT license to ensure it aligns with your environment policies.
Version Dependencies: The sidebar requires the DSH client runtime to provide the sidebar slot (peer dependency @deepseek-ai/dsh-client-runtime etc. ≥ 0.1.0-rc.5). If tools are unavailable or the sidebar does not display, first verify the vaultPath and DSH version.
Conclusion¶
dsh-client-ui-obsidian-memory enables persistent memory for DSH agents by storing it in a local Markdown vault: 5 filesystem tools plus a sidebar reference, requiring no self-hosted memory service, and compatible with the Codex directory convention. The plugin is listed in the community directory SkillHub, with implementation and updates available on GitHub.