dsh-openclaw-persona
Manifest validDSH profile bundle: load OpenClaw-style persona files (SOUL.md, IDENTITY.md, USER.md, TOOLS.md, MEMORY.md, AGENTS.md, HEARTBEAT.md, memory/*.md) into every DSH session whose workspace contains an open
@user/dsh-openclaw-persona
Bring OpenClaw-style persona files (SOUL.md, IDENTITY.md, USER.md, TOOLS.md, MEMORY.md, AGENTS.md, HEARTBEAT.md, plus
memory/*.mddaily notes) into DeepSeek Harness (DSH) as a standard profile bundle that activates automatically for every agent in any session whose working directory contains anopenclaw/subdirectory.
Install
dsh plugin --profile web add github:AskingTheHeavens/dsh-openclaw-persona
Then restart DSH so the bundle is composed into the host composition. Bundles are not hot-reloadable; one restart is required after install.
Verify the install:
dsh plugin --profile web list
# └── @user/dsh-openclaw-persona@github:AskingTheHeavens/dsh-openclaw-persona
Uninstall:
dsh plugin --profile web remove @user/dsh-openclaw-persona
# then restart DSH
For non-web profiles (tui, headless, custom), substitute your profile
name for web.
Source of truth: github.com/AskingTheHeavens/dsh-openclaw-persona. Report issues there.
What this plugin does
DSH normally loads AGENTS.md (and CLAUDE.md) via
@deepseek-ai/dsh-agent-instructions. OpenClaw uses a richer set of workspace
files to give an agent identity, memory, and context. This bundle brings that
whole set into DSH.
For every agent whose session has a working directory of, say, /opt/B/, the
plugin reads:
| File / Dir | What it becomes | Order |
|---|---|---|
openclaw/SOUL.md | system-prompt section openclaw:soul | 0 |
openclaw/IDENTITY.md | system-prompt section openclaw:identity | 1 |
openclaw/USER.md | runtime context openclaw:user (always) | 50 |
openclaw/TOOLS.md | runtime context openclaw:tools (always) | 60 |
openclaw/MEMORY.md | runtime context openclaw:memory (main session only) | 70 |
openclaw/memory/*.md | runtime context openclaw:daily (latest 2, by filename) | 80 |
openclaw/AGENTS.md | runtime context openclaw:agents (OpenClaw boot protocol) | 110 |
openclaw/HEARTBEAT.md | runtime context openclaw:heartbeat (only if it has real tasks) | 120 |
These match the OpenClaw file semantics:
MEMORY.mdis main-session only — never loaded into a sub-agent or group chat. (mainOnly: true)HEARTBEAT.mdis injected only when it has actual tasks, not when it is empty or contains only comments. (heartbeatOnlyWhenNonEmpty: true)memory/*.mdis truncated to 16 KiB per note and capped at the 2 most recent files, matching OpenClaw's "today + yesterday" convention.AGENTS.mdis loaded by@deepseek-ai/dsh-agent-instructionsfor the workspace root. This bundle does not duplicate that load; it readsopenclaw/AGENTS.md(the OpenClaw-side protocol) as a separate runtime context namedopenclaw:agents.
Sessions in workspaces without an openclaw/ subdirectory see no
difference — the registered sections/contexts are empty and get dropped at
render time.
Usage
After install and restart, create an OpenClaw-style workspace in any directory you want to use:
/your/workspace/
└── openclaw/
├── AGENTS.md
├── SOUL.md
├── IDENTITY.md
├── USER.md
├── TOOLS.md
├── MEMORY.md
├── HEARTBEAT.md
└── memory/
└── 2026-08-16.md
Create a DSH session with that directory as the workspace:
dsh --cwd /your/workspace
or in the Web UI, start a new session in that workspace. The OpenClaw files are auto-loaded into the system prompt (SOUL.md, IDENTITY.md) and the runtime context (everything else). No preset selection is needed; the bundle applies to every session, in every preset.
Configuration
Subdirectory name
By default the plugin reads from ./openclaw/ inside the session workspace.
Override via the environment variable:
OPENCLAW_SUBDIR=persona dsh --cwd /your/workspace
# reads from /your/workspace/persona/ instead of /your/workspace/openclaw/
Daily notes limit
The default is 2 (matching OpenClaw's "today + yesterday" convention).
Edit DAILY_NOTE_LIMIT in src/index.js to change.
Per-file byte cap
Daily notes are truncated at 16 KiB each. Edit DAILY_NOTE_MAX_BYTES in
src/index.js to change.
Uninstall
dsh plugin --profile web remove @user/dsh-openclaw-persona
# then restart DSH
Or, if installed from a local path, just remove the dependency:
# in your profile dir
pnpm remove @user/dsh-openclaw-persona
# then restart DSH
How it works (technical)
A DSH profile bundle is an npm package whose package.json declares:
{
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
}
}
The cordis.patch.yml declares one row (a Cordis plugin row) that loads
this package's src/index.js. The loader reads the file with Node's
require, sees the named exports name + apply, and registers a host-
scoped Cordis Plugin. The plugin's apply(ctx):
- Reads
process.env.OPENCLAW_SUBDIR(default'openclaw'). - Subscribes to
ctx.on('agent/created', ...)andctx.on('agent/disposed', ...). - When an agent is created, registers
openclaw:soul/openclaw:identityas system-prompt sections on the agent's own system-prompt service, andopenclaw:user/openclaw:tools/openclaw:memory/openclaw:heartbeat/openclaw:agents/openclaw:dailyas runtime contexts. The text functions read from a per-agent cache populated once at attach time. - On
ctx.on('tools/result', ...)for any successfulread/write/editagainst a file insideopenclaw/, refreshes the relevant cache entry so subsequent turns see fresh content.
Files are read with Node's built-in fs directly, not the DSH fs
service, because DSH's host scope does not expose fs to bundle plugins.
License
MIT — see LICENSE.
Comments
Loading…
From the same category
DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.
★ 41.7k
↓ 223/wk
MIT
Aug 24, 2026
dsh plugin --profile web add dsh-plugin-reactive-resumeby Tencent
Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.
★ 8.5k
↓ 7.5k/wk
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile terminal add @wxg-prc-cpg/browser-skill-dsh-pluginby yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
★ 7k
MIT
JavaScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby Q00
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode,
★ 6.2k
MIT
Python
Oct 7, 2026
by dsh-market
The plugin market inside DeepSeek Harness — browse, search, one-click install · DSH 可视化插件市场
★ 5.9k
↓ 156.3k/wk
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dshmarketby superdesigndev
OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn
★ 4.9k
NOASSERTION
Python
Oct 9, 2026
dsh plugin --profile web add treg-dsh