Preface

DeepSeek Harness (hereinafter referred to as dsh) splits the agent runtime into plugins: tools, skills, interfaces, and memory can all be added as external add-ons. The official repository’s slogan is “Everything is a Plugin”. This architecture is very flexible, but it also exposes an old problem: when a conversation ends, decisions, constraints, current state, and next steps are often lost along with the chat history. To continue working again in the next session, you can only repeat the context manually, or make your prompts longer and longer.

OceanBase’s PowerContext (PowerMem 2.0) places this kind of “project-level, cross-session recoverable context” into an independent Server: local process, SQLite storage, HTTP interface. What dsh needs to do is not to implement another memory library, but to connect it with a thin adapter. powercontext-dsh is exactly this adapter. This article is organized based on the community directory page, the plugin repository’s README / package.json, and verified against the official repositories of PowerContext and DeepSeek Harness: what it is, what it can do, how to install it, and how to use it.

The community plugin directory (deepseek-harness-plugin.com) is an independent website and has no official affiliation with DeepSeek / Fang Tian (Magic Square). It should not be treated as an official app store.

What it is

powercontext-dsh is a memory plugin maintained by knqiufan, licensed under Apache-2.0, primarily written in TypeScript. Its GitHub repository is [knqiufan/powercontext-dsh](https://github.com/knqiufan/powercontext-dsh), which was created on 2026-08-13. As of the verification for this article, the GitHub page shows 11 stars, while the directory page still showed 9 stars at that time. The version number inpackage.json` is 0.0.3, and it requires Node.js >= 20**.

One-sentence positioning: It connects to an already running PowerContext Server via HTTP, providing recall, memory, handoff, experience and skills for dsh. The repository README clearly states: This repository does not embed storage, does not start a Server, nor does it import Python packages. Calls go through the Server’s `/v1/… OpenAPI, **not MCP.

The same plugin is also hosted in the PowerContext official repository at integrations/dsh/plugins/powercontext. The independent repository continues to serve as the release channel, and fixes will be synchronized on both sides. When installing, please note: The Server and the plugin should use the same Git ref, do not pin one to v0.0.1 while tracking master.

Core Features

The plugin runs inside the Harness process, and the browser does not directly connect to PowerContext. Before the model responds each round, it automatically does two things:

  1. Recall: `POST /v1/context/prepare, injects bounded context into the current round and treats it as untrusted historical evidence. The current user instruction, repository, and system prompt always take priority.
  2. Capture: POST /v1/sources/content, saves the current user input as a Content Source. The Server’s Source window will then decide whether to generate or update Memory based on it. Do not call pc_remember just to “save this sentence again”.

If the Server is unreachable, recall will be skipped, and the current conversation will not be blocked.

pc_* tools callable by the model

Named tools only expose the part that Agents can safely use. Write operations will first require confirmation from the user. Reviewing changes still uses the human command /pc review; destructive and management-level OpenAPI will not be registered as model tools. The plugin also registers the skill project-context to present the same workflow for the model.

Capability Tools HTTP
Memory pc_search pc_remember pc_memory_list pc_memory_get pc_memory_revise pc_memory_retire /v1/memory/*
Context pc_prepare_context pc_capture_source /v1/context/prepare, /v1/sources/content
Handoff pc_handoff_activate pc_handoff_prepare pc_handoff_finalize pc_handoff_commit pc_handoff_continue /v1/handoff/*
Experience / Skill pc_experience_generate pc_experience_get pc_skill_generate pc_skill_get /v1/experience/*, /v1/skill/*
Review (read-only) pc_review_list pc_review_get /v1/artifact-candidates/*

See openapi/powercontext.yaml in the repository for the full contract.

/pc commands in conversations

The source code registers the command as pc, which can be entered directly in the conversation. The repository README emphasizes using /pc doctor to check if the Server is reachable; the implementation also includes retrieval, writing, review, and diagnosis:

  • /pc: Print the current scope and baseUrl
  • /pc doctor: Check the Server’s liveness / readiness
  • /pc search <query>: Retrieve up to 8 memories in mode: auto
  • /pc remember <text>: Explicitly write an agent-note
  • /pc flush: Flush immediately
  • /pc review / approve / reject: List or process artifact candidates
  • /pc skills scan: Scan external skills
  • /pc stats, /pc capabilities: Statistics and capability detection

The skill documentation also stipulates: Without explicit user request, do not use pc_remember to copy the current prompt; before revising or retiring a memory, first read the entry and bring the exact citation; when a 409 conflict occurs, refresh the head and retry only once if the user request still holds.

Installation and Enablement

First install DeepSeek Harness. The official repository is still in developer preview, you can use:

npx @deepseek-ai/dsh web

The default Web UI is at http://127.0.0.1:3080. The plugin README requires a web profile first: run dsh web once.

1. Install and start the PowerContext Server

The plugin itself does not start a Server. The current installation method given in the PowerContext official README is pinning the version:

uv tool install "powercontext[cli,server]==0.0.1"
powercontext --version

The powercontext-dsh repository README shows an example of installing from git master:

uv tool install "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@master"
powercontext --version

Both commands can install the CLI and Server. Either one is fine, but you must align the ref when installing the plugin later. Start the Server:

powercontext server run

It listens on http://127.0.0.1:8000 by default, no authentication, data is stored in SQLite under the user directory (can be overridden with POWERCONTEXT_HOME). Health checks:

curl http://127.0.0.1:8000/health/live
curl http://127.0.0.1:8000/health/ready

live must succeed. ready can be degraded when no inference model is configured. Explicitly writing Memory does not require a model.

2. Install the plugin via the community directory

The original command on the directory page is as follows, run it in the DeepSeek Harness terminal:

dsh plugin add github:knqiufan/powercontext-dsh

The repository README specifies adding it to the web profile more specifically:

dsh plugin --profile web add github:knqiufan/powercontext-dsh

The directory page also reminds: For reproducible installation, please pin the commit hash:

dsh plugin add github:knqiufan/powercontext-dsh#<commit>

The independent repository still serves as the release channel. The README example uses the GitHub Release tarball (the current documentation states 0.0.3):

dsh plugin --profile web add ./powercontext-dsh-0.0.3.tgz

If you previously installed from the source directory, uninstall it first before installing the tarball. On Windows, replacing a link: installation directly with a tarball will fail: pnpm will try to rebuild symlinks for nested node_modules.

3. Align the ref of Server and plugin using the official CLI

The PowerContext official README recommends using the same release tag to configure the host plugin, for example:

powercontext setup dsh --source oceanbase/powercontext --ref v0.0.1

The corresponding example in the powercontext-dsh README is --ref master. setup dsh will internally execute dsh plugin --profile web add, pointing to the `integrations/dsh/plugins/powercontext in the official repository. A local checkout also works:

powercontext setup dsh --source /path/to/powercontext

If you do not have this CLI, you can add the directory yourself:

dsh plugin --profile web add /path/to/powercontext/integrations/dsh/plugins/powercontext

Optional verification:

powercontext doctor
powercontext doctor dsh
dsh --profile web --dump-config

doctor checks the Server. doctor dsh checks if dsh is on the PATH, and whether the plugin id is powercontext-dsh. Uninstall:

dsh plugin --profile web remove powercontext-dsh

Typical Usage

Keep the Server running, then:

dsh web

Open the project and start a conversation as you normally would when using the Agent. The plugin will automatically recall context and save user input in the background; when you need to read/write memory, hand off tasks, or generate experience/skills, the model will call the corresponding pc_* tools. You can enter /pc doctor in the conversation to confirm the Server is reachable.

When you need to manually add a memory:

/pc remember This repository's release process always uses GitHub Release to build tarballs, do not directly npm publish unbuilt source code.

Retrieval:

/pc search release process tarball

The handoff (steps in the skill project-context) is roughly: first use pc_capture_source to clarify the goal, verified progress, blockers, and next steps, then pc_handoff_activate → check the Draft → pc_handoff_finalize; the receiver usespc_handoff_continuewithselection: “prepared”. Only callpc_handoff_commit` when the user explicitly requests to leave a milestone.

Configuration

Environment variables take precedence over patches. Do not write secrets into files that will be printed by --dump-config.

Field Environment Variable Default Meaning
baseUrl POWERCONTEXT_DSH_BASE_URL http://127.0.0.1:8000 Server root URL, no trailing slash
authorization POWERCONTEXT_DSH_AUTHORIZATION Empty Full Bearer header
scopeId POWERCONTEXT_DSH_SCOPE_ID Empty Override the auto-derived project scope
timeoutMs 4000 Shared budget for recall + capture
requestTimeoutMs 1000 Single HTTP request timeout
maxBytes 8000 Budget for prepare_context
capturePrompts POWERCONTEXT_DSH_CAPTURE_PROMPTS true Save user input as Source
flushOnCapture POWERCONTEXT_DSH_FLUSH_ON_CAPTURE false Flush immediately after capture

Long-term non-secret configurations can be written in ~/.dsh/profiles/web/cordis.patch.yml. Harness will **completely replace the plugin’s config, so all required items must be written together:

- id: powercontext-dsh
  config:
    baseUrl: https://pc.example.com
    timeoutMs: 4000
    requestTimeoutMs: 1000
    maxBytes: 8000
    capturePrompts: true
    flushOnCapture: false

The built-in cordis.patch.yml of the plugin defaults to baseUrl as http://127.0.0.1:8000.

Remote Server

The default Server only binds `127.0.0.1. If you want to use it on another machine, you need to expand the listening range and enable authentication; you should add TLS in front before exposing it to the network. The example given in the plugin README is:

export POWERCONTEXT_SERVER_HTTP_HOST=0.0.0.0
export POWERCONTEXT_SERVER_HTTP_PORT=8000
export POWERCONTEXT_SERVER_AUTH_ENABLED=true
export POWERCONTEXT_SERVER_AUTH_TOKEN=<long-random-secret>
powercontext server run

Client side:

export POWERCONTEXT_DSH_BASE_URL=https://pc.example.com
export POWERCONTEXT_DSH_AUTHORIZATION="Bearer <long-random-secret>"
dsh web

POWERCONTEXT_DSH_AUTHORIZATION must be the full Bearer string, corresponding to the Server’s POWERCONTEXT_SERVER_AUTH_TOKEN. The token should only be placed in environment variables, not written into the patch file. The publicly exposed address should be the actual access root, without trailing slashes, and without /mcp.

Applicable Scenarios and Notes

It is suitable for users who are already using dsh Web and want project memory to be independent of a single session: recover decisions and current state across sessions, hand off work to another task or model, and precipitate experience/skills back to the Server. It is not suitable for the usage of “just install a plugin without running any backend”—without a PowerContext Server, recall will be skipped, and the memory tools will not reach the storage.

Please note when using:

  1. Both processes are indispensable. The Server and dsh run separately, and the plugin only acts as an HTTP client.
  2. **Align the ref. Both the Server and the plugin must use the same Git ref, as required by both the official documentation and the plugin README. The current PowerContext release example pins to 0.0.1 / v0.0.1, while the main branch of the independent plugin repository has package.json at 0.0.3, and mixed installation may encounter interface mismatches.
  3. **Recalled content is untrusted. The injected content is historical evidence and cannot override the current user, repository, and system instructions.
  4. Do not store secrets. The skill explicitly prohibits writing secrets, credentials, credentials from being written into Memory.
  5. Write operations require human approval. Named mutation operations will first go through dsh’s one-time confirmation; use /pc review to approve/reject, do not let the model approve on its own.
  6. Remote access must use authentication. The default Server has no authentication and only binds to the local machine; add TLS before exposing it to the network, and place the token in environment variables.
  7. Permissions and license. The plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing; for reproducible installation, please pin the commit hash. This plugin is licensed under Apache-2.0, while dsh itself is MIT licensed.

Summary

powercontext-dsh does not rebuild a memory library inside the dsh process, but connects PowerContext Server’s recall, memory, handoff, experience and skills to the Cordis plugin tree via OpenAPI. After installing the Server, aligning the ref, and then adding the plugin via the directory page command, daily conversations will automatically recall and capture content automatically; when you need to explicitly write or hand off, use the pc_* tools and /pc commands.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/powercontext-dsh/

GitHub: https://github.com/knqiufan/powercontext-dsh

PowerContext official repository: https://github.com/oceanbase/powercontext

DeepSeek Harness: https://github.com/deepseek-ai/deepseek-harness