DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Honcho — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@honcho-ai/dsh-honcho

Honcho

Honcho memory for DeepSeek Harness — 持久化的跨会话记忆,可在上下文重置和重启后保留。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @honcho-ai/dsh-honcho@0.1.1
README兼容性版本

兼容性与来源证明

Honcho 以 @honcho-ai/dsh-honcho 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/9/18

版本

0.1.1stable
2026/9/18
0.1.0stable
2026/9/2

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
138.9 kB
文件数
29
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Memory@furongjun1999/dsh-memory灵枢(Lingshu·líng shū)DeepSeek Harness 插件:完整大脑——长期记忆/知识飞轮/自我认知/递归反思接入 DSH,对话自动沉淀进 md_cg 认知图(md 文档)Reme@agentscope-ai/reme面向 TypeScript 代理的 ReMe 客户端和记忆集成Rewind Plugindsh-rewind-plugin同窗口内对话回退并恢复工作区文件Stratagate Dshstratagate-dsh最近的对话依然鲜活。较早的对话会逐渐淡化为摘要,而不是被遗忘。StrataGate 为 DeepSeek Harness 提供六层、随时间衰减的记忆,同时将持久的事件和关系沉淀为知识图谱。将你在其他 AI 中的记忆带来

README

dsh-honcho

Persistent memory for DeepSeek Harness, powered by Honcho.

dsh forgets everything when a session ends. This plugin gives it memory that doesn't: what you're building, how you like to work, what you decided last week and why. It reads the same ~/.honcho/config.json as the other Honcho integrations, so there is one place to configure all of them — and pointing two of them at the same workspace gives them one shared memory.

Install

dsh plugin --profile <name> add @honcho-ai/dsh-honcho

Then put your API key and name in ~/.honcho/config.json:

{
  "peerName": "your-name",
  "auth": { "apiKey": "${HONCHO_API_KEY}" },
  "hosts": {
    "dsh": { "workspace": "dsh" },
  },
}

Get a key at app.honcho.dev. HONCHO_API_KEY in the environment also works on its own — the config file is only needed to change defaults.

What it does

Injects what Honcho knows at the start of a session — your profile, a summary of this project's session so far, and the conclusions Honcho has drawn that are relevant to what you just asked. One API call, shaped to a character budget, refreshed as you work.

Captures every turn. User and assistant messages go to Honcho in the background, debounced, and flushed at turn boundaries, before compaction, and on shutdown. Secrets are redacted first.

Gives the model three tools:

ToolFor
honcho_searchLooking something up. Searches raw messages and derived conclusions.
honcho_chatAsking a question of judgment. Reasons over everything Honcho knows. Slow.
honcho_rememberSaving a durable fact, preference, or decision.

/honcho shows status and a link to the session in the Honcho dashboard — see Commands below.

Configuration

Everything behavioral lives in ~/.honcho/config.json under hosts.dsh — the same file claude-honcho, codex-honcho, and the other integrations read. Root holds identity and connection; the host block holds behavior.

{
  "peerName": "your-name",
  "workspace": "honcho",
  "baseUrl": "https://api.honcho.dev", // bare host or …/v3 both fine
  "timeoutMs": 30000,
  "auth": { "apiKey": "${HONCHO_API_KEY}" },
  "enabled": true, // global kill switch
  // sessions may also sit here as a fallback; the host block wins

  "hosts": {
    "dsh": {
      "workspace": "dsh",
      "aiPeer": "dsh", // defaults to the host name
      "observationMode": "unified", // unified | directional
      "sessionStrategy": "per-directory", // see Sessions below
      "sessionPeerPrefix": true, // session names are <peer>-<dir>
      "sessionPrefix": "", // literal prefix on every generated name, e.g. "vps-"
      "sessions": { "/path/to/repo": "pinned-session-name" }, // pin a session
      "injection": {
        "sessionStart": ["directives", "summary", "peerCard"], // + representation
        "perTurn": ["userContext", "dialectic"], // userContext = representation + card
        "tools": true,
        "searchTopK": 10,
        "searchMaxDistance": 0.6,
        "maxConclusions": 15, // how many conclusions Honcho RETURNS
        "maxRenderedConclusions": 4, // how many survive filtering into the prompt
        "contextTokens": 1500,
        "cadence": { "dialectic": 5, "ttlSeconds": 300 },
        "dialectic": {
          "reasoning": "low", // minimal | low | medium | high | max
          "maxChars": 600,
        },
      },
      "capture": {
        "saveMessages": true,
        "saveToolUse": false, // one-line summaries of tool activity
        "writeFrequency": "async", // async | sync
        "noisePatterns": [], // additive to the built-in secret patterns
      },
      "messageUpload": {
        "maxUserTokens": 6000,
        "maxAssistantTokens": 6000,
      },
      },
    },
  },
}

Injection components

The two menus differ in cadence, not in what they can carry.

injection.sessionStart is injected once when a session opens: directives (guidance on using memory), summary, peerCard, representation.

injection.perTurn refreshes as you work:

  • userContext — a fresh, prompt-scoped peer context blob: representation + peer card, retrieved using your current message as the search query so recall is associative rather than merely recent. It is a bundle, so it supplies both regardless of what sessionStart names. To get one without the other, name it in sessionStart and set perTurn: [] — at the cost of per-turn refresh.
  • dialectic — a reasoned answer about you, run every cadence.dialectic turns and shaped by injection.dialectic. Nothing waits on it after the first turn, so a late answer reaches the next one.

Components the canonical schema names but this plugin does not implement — briefing, assistantContext, sessionContext — are reported at startup rather than silently dropped, as are schema keys it does not act on (showContents, statusline, globalOverride, granular observation, multiUser) and any key renamed since an earlier version. Nothing here is accepted and quietly ignored.

The plugin's own cordis.yml config carries plumbing only — configPath, apiKeyRef, host, enabled. Set host to run a credential-isolated profile ("dsh_work") against the same install.

Sharing memory with other integrations

Each integration defaults to its own Honcho workspace — dsh here, claude_code for claude-honcho — and a workspace is the isolation boundary, so by default they do not see each other's memory. Point them at the same workspace to merge them:

"hosts": {
  "dsh":         { "workspace": "shared" },
  "claude_code": { "workspace": "shared" }
}

Keep peerName identical across them too, since conclusions are stored per peer. sessionStrategy: "git-remote" and sessionPrefix are proposed for claude-honcho as well, so a repo worked on from both can be pointed at one session on purpose rather than by accident.

Sessions

Default: one long-lived session per project directory, named <peerName>-<dir>, matching claude-honcho. Pin a different name for any path with the root sessions map — an override always wins.

sessionStrategySession nameNotes
per-directory (default)<peer>-<dir>Stable across restarts and branches
per-repo<peer>-<repo-root>Same memory from any subdirectory
git-remote<peer>-<host-owner-repo>From the origin URL, so the same repo on two machines is one session. Falls back to per-directory outside a repo or without an origin
git-branch<peer>-<dir>-<branch>Falls back to per-directory outside a repo or on a detached HEAD
per-session<peer>-chat-<id>A clean slate every restart
global<peer>One memory for everything

per-directory and per-repo name a session after a folder, so two different projects that both live in a web directory silently share one memory across machines. git-remote is the fix: it reduces the origin URL to host/owner/repo, so git@github.com:you/web.git and https://github.com/you/web agree, and you/web and someone-else/web do not. It compares the URL as configured, so machines that clone through different ssh Host aliases — github.com-work on one, github.com on the other — still get separate sessions.

sessionPrefix puts a literal string in front of every generated name — "vps-" gives vps-you-web — for when the machine a session came from should be visible in it. It applies to every strategy. A name pinned in sessions is used exactly as written and is never prefixed.

Prefer the wider scopes. Honcho's guidance is not to scope sessions too thin: the background Deriver needs a single session to accumulate enough material before it can reason well. git-branch splits a project's memory per branch, and per-session discards it on every restart.

Commands

CommandDoes
/honchoStatus: peer, workspace, session, strategy, pending uploads, last sync, last fetch
/honcho configResolved settings, the file they came from, and any ignored injection components
/honcho flushSync now

Requirements

  • Node ^22.19.0 || >=24.0.0
  • A running dsh (developed and typechecked against 0.1.2-alpha.3)
  • A Honcho API key, or a self-hosted Honcho at baseUrl

Development

bun install
bun test
bun run typecheck
bun run build

See ARCHITECTURE.md for the design and the reasoning behind each extension point, and RUNBOOK.md for a throwaway-VM test pass.

Credit

dsh-honcho-sync by @nanpaidashi (MIT) inspired the initial design of this plugin

The ~/.honcho/config.json contract, the session-naming convention, and src/redact.ts come from the sibling Honcho integrations — claude-honcho, codex-honcho, and their relatives.

DeepSeek Harness is MIT-licensed, and its Cordis plugin model is what made a native integration worth writing instead of a hook bridge.

License

MIT