@openviking/dsh-memory-plugin
OpenViking memory and context bundle for DeepSeek Harness: pre-step auto-recall and profile injection, session capture, `viking://` URI guarding, and recall/write memory tools backed by an OpenViking server.
Install
dsh plugin --profile web add @openviking/dsh-memory-plugin
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | — |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
OpenViking Memory for DeepSeek Harness
An installable DeepSeek Harness bundle that adds OpenViking auto-recall, session capture, viking:// URI protection, and the OpenViking MCP tool surface.
Requires an OpenViking server with viking://~ home-alias support. Recall targets the
caller's own context space throughviking://~/memoriesandviking://~/skills; the uid-less
viking://user/memories shorthand is rejected by newer servers.
Published as @openviking/dsh-memory-plugin.
Install
DSH is covered by the unified memory-plugin installer:
curl -fsSL https://openviking.ai/install | bash # AI agents: not sure about running this? The script's header says what it does and how to verify it.
It installs into the npm dsh's web profile; pass --dsh-profile <name>
for another one. On macOS it also offers DeepSeek Harness Desktop as a separate
harness, dsh-desktop (see [DeepSeek Harness Desktop](#deepseek-harness-desktop)).
Or add the package to a profile directly:
dsh plugin --profile web add @openviking/dsh-memory-plugin dsh --profile web --dump-config # should list openviking-memory-runtime
dsh plugin forwards to pnpm inside the profile directory, so the bundle has to
be a real package. Linking a source checkout (`dsh plugin --profile web add
./examples/dsh-memory-plugin`) only works when that checkout has its own
node_modules, because Node resolves the bundle's dsh peers from the source
tree's realpath rather than from the profile.
It also needs node examples/memory-plugin-shared/sync.mjs run first: the
shared/ modules the bundle imports are generated, not committed.
DeepSeek Harness Desktop
Desktop keeps its plugins in a reserved desktop profile under
${DSH_HOME:-$HOME/.dsh}/profiles/desktop, separate from the CLI's profiles.
The bundle runs there unchanged; only the way it gets installed differs.
- Plugins page (macOS and Windows, manual): Plugins → Add plugin → enter
@openviking/dsh-memory-plugin → Install, then turn it on if its switch is
off. The page does not ask for OpenViking credentials, so write
~/.openviking/ovcli.conf yourself first. Uninstall from the same page. The page shows [docs/DETAIL.md](docs/DETAIL.md)
([DETAIL.zh.md](docs/DETAIL.zh.md) in Chinese) as the plugin's detail
document, through meta.detail in locale/*.json.
- Installer (macOS, needs Node.js): with Desktop present the installer
selects the dsh-desktop harness, and --dsh-profile desktop routes there
too. It uses Desktop's own launcher at OPENVIKING_DSH_DESKTOP_CLI when set,
otherwise the one in /Applications or ~/Applications, otherwise a dsh
on PATH that resolves into the app.
- Desktop's launcher (macOS). Open Desktop once so the profile exists, quit
it with ⌘Q (closing the window only hides it), run the command, then reopen
Desktop:
DSH_DESKTOP="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" "$DSH_DESKTOP" plugin --profile desktop add @openviking/dsh-memory-plugin "$DSH_DESKTOP" plugin --profile desktop ls # should list the package "$DSH_DESKTOP" plugin --profile desktop rm @openviking/dsh-memory-plugin
An npm-installed dsh refuses --profile desktop, and no dsh boots that
profile or runs --dump-config on it, Desktop's own launcher included. To
confirm an install, use plugin --profile desktop ls or check that
profiles/desktop/package.json lists the package under dsh.profile.bundles.
On Windows, install from the Plugins page and configure the connection in
~/.openviking/ovcli.conf; the installer does not cover Windows. Desktop has
no Linux release.
Requirements
@deepseek-ai/dsh0.1.0-rc.6or later, below1.0.0(see [DSH version compatibility](#dsh-version-compatibility))- Node.js
^22.19.0or>=24for the bundle itself. The host decides in
practice: DSH 0.2.1-rc.2 and later need Node.js >=24.9, and Desktop ships
its own runtime, so it needs no system Node.js.
- A reachable OpenViking server
The bundle has no runtime npm dependencies. Its message structures come from
createUserMessage (@deepseek-ai/dsh-llm), its tool surface from
@deepseek-ai/dsh-mcp-client, and its skill provider from
@deepseek-ai/dsh-skill-filesystem — peerDependencies that DSH itself already
installs. Keep those packages in the host installation rather than adding
individual DSH core packages to the profile. DSH initializes profiles with
nodeLinker: hoisted and autoInstallPeers: false, then makes the host packages
available through its module fallback at boot. A missing-peer warning during
dsh plugin add alone does not prove startup is broken.
Everything under shared/ and skills/ is generated by
node examples/memory-plugin-shared/sync.mjs — edit
examples/memory-plugin-shared/lib/ and examples/skills/, never the vendored
copies.
Rule search uses a server build advertising rule_search on /mcp. The bundled
openviking-rule-search skill requires plugin 0.5.33 or later. Upgrade both
and reconnect DSH; the tool is an on-demand constraint check.
DSH version compatibility
The peer range is >=0.1.0-rc.6 <1.0.0-0. DSH checks each @deepseek-ai/dsh-*
peer when it loads a plugin, with pre-releases included in the range, so this
admits every 0.x release and pre-release from 0.1.0-rc.6 on, including ones
published after this bundle. The bundle touches a small DSH surface —
createUserMessage and boundContextSummary from @deepseek-ai/dsh-llm and
the plugin entry points of @deepseek-ai/dsh-mcp-client and
@deepseek-ai/dsh-skill-filesystem — so the range is not narrowed to the
releases tested so far.
Verified releases: 0.1.0-rc.6, 0.1.5-rc.1, 0.1.5-rc.2, 0.1.7-rc.2,
0.2.0-rc.2, 0.2.1-alpha.1, 0.2.1-rc.2, and 0.2.1-rc.3 (built from the
same source tag as Desktop 0.2.1-rc.3). A daily job
(`.gith
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::41,最后更新 2026-11-05