DSH Plugin Store
Back to home

knqiufan

powercontext-dsh

DeepSeek Harness plugin that connects to a PowerContext Server over HTTP for recall, memory, handoff, experience, and skills.

Stars
7
Language
TypeScript
Created
Aug 13, 2026
Updated
Aug 13, 2026
Skills
GitHub repo

Introduction

PowerContext for DeepSeek Harness

English | 中文

DeepSeek Harness plugin that connects to a running PowerContext Server over HTTP for recall, memory, handoff, experience, and skills. It does not embed storage, start the Server, or import the Python package.

dsh plugin --profile web add <path-or-tarball>

Features

The plugin calls the Server’s /v1/... OpenAPI surface over HTTP. It does not use MCP.

Before each model step it automatically:

  1. Recalls bounded context with POST /v1/context/prepare and injects it as untrusted historical evidence.
  2. Captures the current user input as a Content Source with POST /v1/sources/content.

Named pc_* tools cover the common paths. Everything else is reachable through pc_call by OpenAPI operationId. Skill project-context documents the same workflow for the model. If the Server is unreachable, recall is skipped and the turn continues.

AreaToolsHTTP
Memorypc_search pc_remember pc_memory_list pc_memory_get pc_memory_revise pc_memory_retire/v1/memory/*
Contextpc_prepare_context pc_capture_source/v1/context/prepare, /v1/sources/content
Handoffpc_handoff_activate pc_handoff_prepare pc_handoff_finalize pc_handoff_commit pc_handoff_continue/v1/handoff/*
Experience / Skillpc_experience_generate pc_experience_get pc_skill_generate pc_skill_get/v1/experience/*, /v1/skill/*
Reviewpc_review_list pc_review_get/v1/artifact-candidates/*
Everything elsepc_callAll operationIds (health, stats, external skills, handoff reports, …)

See openapi/powercontext.yaml for the full contract.

Quick start

PowerContext Server and DeepSeek Harness are two processes. Both are required.

Start the Server

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

From a PowerContext checkout you can use uv run powercontext server run instead.

Defaults: http://127.0.0.1:8000, no authentication, SQLite under the user data directory (POWERCONTEXT_HOME overrides it).

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

live must succeed. ready may be degraded when inference is not configured.

Install the plugin

Install DeepSeek Harness first and make sure the web profile exists (run dsh web once).

GitHub Release (recommended). Download powercontext-dsh-*.tgz:

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

If the plugin is already installed from a source checkout, remove it first. On Windows, replacing a link: install with a tarball fails because pnpm tries to recreate nested node_modules symlinks.

A Release download URL works the same way.

Source checkout:

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

Rebuild after TypeScript changes: pnpm install, pnpm test, pnpm build, then restart dsh web.

npm (after publish):

dsh plugin --profile web add powercontext-dsh

uv / powercontext do not install this plugin into Harness.

Optional check:

dsh --profile web --dump-config

The dump should contain id: powercontext-dsh.

Remove the plugin:

dsh plugin --profile web remove powercontext-dsh

Use it

Keep the Server running, then:

dsh web

Open a project and chat as you normally would. The plugin recalls context and stores user input in the background. When the model needs to read or write memory, hand off work, or generate experience / skills, it calls the corresponding pc_* tools.

You can type /pc doctor in the chat to check that the Server is reachable.

Configuration

Environment variables override patch config. Do not put secrets in files that --dump-config can print.

FieldEnvironment variableDefaultMeaning
baseUrlPOWERCONTEXT_DSH_BASE_URLhttp://127.0.0.1:8000Server root URL, no trailing slash
authorizationPOWERCONTEXT_DSH_AUTHORIZATIONemptyFull Bearer <token>
scopeIdPOWERCONTEXT_DSH_SCOPE_IDemptyOverrides automatic project scope
timeoutMs4000Shared recall + capture budget
requestTimeoutMs1000Single HTTP timeout
maxBytes8000prepare_context budget
capturePromptsPOWERCONTEXT_DSH_CAPTURE_PROMPTStruePersist user input as a Source
flushOnCapturePOWERCONTEXT_DSH_FLUSH_ON_CAPTUREfalseFlush immediately after capture

For durable non-secret defaults, edit ~/.dsh/profiles/web/cordis.patch.yml. Harness replaces the whole config object for that row, so restate every key you still need:

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

Remote Server

The plugin runs inside the Harness process. The browser never calls PowerContext. The default Server bind is 127.0.0.1. A remote Server must listen more widely and enable auth. Put TLS in front before exposing it on a network.

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

Publish the API root users actually use, for example https://pc.example.com. No trailing slash, and no /mcp.

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 <token> and must match POWERCONTEXT_SERVER_AUTH_TOKEN. Keep the token in the environment variable, not in the patch file.

Common Server variables:

VariableMeaning
POWERCONTEXT_SERVER_HTTP_HOST / _PORTListen address
POWERCONTEXT_SERVER_AUTH_ENABLED / _TOKENStatic Bearer
POWERCONTEXT_HOMEData directory
POWERCONTEXT_SERVER_RUNTIME_SCHEDULE_SECONDSExtraction interval; unset disables the job
POWERCONTEXT_SERVER_INFERENCE_GENERATION_MODELGeneration model used for extraction

Development

HTTP operations are generated from openapi/powercontext.yaml. Update that file (or set POWERCONTEXT_OPENAPI) and run pnpm build when the Server contract changes.

pnpm install
pnpm test
pnpm build
  • Push to main / master: run pnpm test and pnpm build, and check that lib/ plus the generated table are committed.
  • Pull requests: pnpm test only.
  • GitHub Release is manual: Actions → Release → Run workflow → version such as 0.1.0. The asset is powercontext-dsh-X.Y.Z.tgz.

License

Apache License 2.0