@guowenzhang/dsh-memory
Claude-compatible memory for DeepSeek Harness: a user-chosen memory directory with MEMORY.md index and topic files, the memory tool, and a settings page 适合需要跨会话持久化项目上下文或习惯使用 Claude 记忆机制的用户。支持自定义记忆目录和索引文件。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhang-guo-wen/dsh-memoryConfiguration
Every field has a working default. The settings page writes enabled and directory; the rest are composition fields.
| Field | Default | Meaning |
|---|---|---|
enabled | true | Fold the index into a session and register the memory tool |
claudeCompatible | false | Use Claude Code's own memory directory; while on, directory is ignored and nothing has to be chosen |
directory | ~/.dsh/memory/{project} | Memory directory; accepts ~ and {project} |
claudeHome | $CLAUDE_CONFIG_DIR, $CLAUDE_HOME, or ~/.claude | Claude config directory; locates `projects/ |
| /memory` in Claude-directory mode | ||
indexLines | 200 | Lines of the index a session loads, matching Claude Code |
indexBytes | 25600 | UTF-8 bytes of the index a session loads, matching Claude Code |
maxFileBytes | 1048576 | Largest single memory file this plugin reads or writes |
projectRootMarkers | ['.git'] | Directory entries that identify the project root |
Directory forms
| Form | Resolves to |
|---|---|
~/.dsh/memory/{project} (default) | One subdirectory per project, so projects never share memories |
~/.dsh/memory | One store shared by every project (drop {project} to share) |
~/.claude/projects/{project}/memory | The same store the Use Claude's directory switch selects |
Looking at another project
Memory is stored per project, so the page shows one at a time: the state block and the index editor describe whichever project the dropdown selected. The list is
- the current project (the one the host process runs in),
- every DSH workspace,
- and, with Use Claude's directory on, every project directory under
/projects/.
Rows are deduplicated by the directory they resolve to, so one repository appears once, and a single-project deployment shows no dropdown at all. Selecting another project only changes what the page reads and edits: the template is untouched, and every session still resolves its own directory.
{project} is the git repository root of the session's working directory (a .git file — a linked worktree — is
resolved back to the main repository), with every character outside [A-Za-z0-9] replaced by -:
C:\02-codespace\deepseek-harness becomes C--02-codespace-deepseek-harness, exactly the directory name Claude
writes under ~/.claude/projects/.