DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-context-toolkit

Context Toolkit

DeepSeek Harness 套件:原生 ctk_* 沙箱工具、可避免批量输出进入记录的路由门,以及本地全文知识库。无第三方运行时依赖。

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-context-toolkit@0.2.2
README兼容性版本

兼容性与来源证明

Context Toolkit 以 dsh-context-toolkit 发布,当前版本为 0.2.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/17

版本

0.2.2stable
2026/10/17
0.2.1stable
2026/10/16
0.2.0stable
2026/10/16
查看其余 1 个版本收起版本
0.1.0stable
2026/10/16

相关插件

正在加载相关插件…

最新版
0.2.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
137 kB
文件数
12
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
0
最近提交
2026/10/16
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Memory Plugin@openviking/dsh-memory-plugin适用于 DeepSeek Harness 的 OpenViking 记忆与上下文套件Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。

README

dsh-context-toolkit

简体中文 | English

A DeepSeek Harness bundle whose single job is keeping bulk output out of the conversation.

It separates raw bytes from conclusions: commands run in a child process, files are analysed in a sandbox, and long material is filed into a local knowledge base — while the conversation receives only conclusions, excerpts and counts. A routing gate refuses, before execution, the calls that would inevitably flood the transcript.

No third-party runtime dependencies. The knowledge base rides on Node's own node:sqlite (FTS5 included) and code execution uses interpreters already on the machine, so installing it pulls nothing else.

What it is for

ProblemWhat this does
A command prints thousands of lines; you only need a countctk_execute runs it in a child process and returns the answer
A large file needs statistics, not a full readctk_execute_file keeps its bytes in the sandbox
Many commands, one questionctk_batch_execute answers in one call with per-command status
A page or spec is read once and never reusedctk_index files it; ctk_search pulls excerpts on demand
curl / wget paste whole responses into the conversationThe routing gate refuses them and names the alternative
You cannot tell how much was savedctk_stats reports the ledger; the settings page shows a live occupancy panel

Tools

ToolPurpose
ctk_executeRun code in a sandboxed child process (javascript / esm / typescript / shell), return only the answer
ctk_execute_fileRun code over a file for statistics or extraction; the file text stays in the sandbox
ctk_batch_executeSeveral commands in one call, per-command status, conclusions only
ctk_indexFile text or a file into the local FTS5 knowledge base
ctk_searchMulti-query retrieval; excerpts are centred on the match
ctk_fetch_and_indexFetch pages → strip markup → file them
ctk_purgeDelete filed material (requires confirm: true)
ctk_statsSavings ledger: refusals, sandbox bytes, filed bytes, call counts
ctk_doctorSelf-check: interpreters really start, scratch dir writable, knowledge round-trip
ctk_context_reportThis conversation's context occupancy and composition

Install

From npm (recommended):

dsh plugin --profile desktop add dsh-context-toolkit

From GitHub:

dsh plugin --profile desktop add github:chimneyQ/dsh-context-toolkit

From a local checkout:

dsh plugin --profile desktop add D:\path\to\dsh-context-toolkit

Confirm dsh-context-toolkit appears in dsh.profile.bundles inside <DSH_HOME>/profiles/desktop/package.json.

Remove:

dsh plugin --profile desktop remove dsh-context-toolkit

Use it well

Reach for ctk_* first whenever the work is analysis, counting, filtering or summarising — reading that output into the conversation is the exact problem this bundle exists to solve.

// How many .log files, and how big in total?
await ctk_execute({
  language: 'javascript',
  code: `
    const fs = require('fs');
    const dir = process.argv[2];
    let n = 0, bytes = 0;
    for (const f of fs.readdirSync(dir)) {
      if (!f.endsWith('.log')) continue;
      n++; bytes += fs.statSync(dir + '/' + f).size;
    }
    console.log(n + ' files, ' + bytes + ' bytes');
  `
});

File long material once, then pull sections:

await ctk_index({ path: 'D:/specs/api.md' });          // the full text stays in the store
await ctk_search({ queries: ['rate limit', 'auth'] });  // only the relevant excerpts come back

Configuration

KeyDefaultMeaning
routingtrueMaster switch for the routing gate
denyCurlWgettrueBlock curl / wget outright
bashNudgeMinCommandBytes4096Nudge threshold for long commands (0 disables)
maxReadBytesBeforeAsk51200Nudge threshold for whole-file reads (0 disables)
trustedReadBasenamespackage.json etc.Filenames exempt from the read nudge
compressNudgeTokens120000Occupancy warning threshold (tokens)
searchLimit5Excerpts per query in ctk_search
snippetChars900Character ceiling per excerpt
fetchMaxBytes2000000Per-page fetch ceiling
storageDiremptyKnowledge-base root; empty = <DSH_HOME>/context-toolkit
tools.*see belowPer-tool switches

Tool switches: tools.execute, tools.executeFile, tools.batchExecute, tools.index, tools.search, tools.fetchAndIndex, tools.purge, tools.stats, tools.contextReport, tools.doctor — all on by default.

Verify

The offline suites need no DSH runtime:

node smoke.mjs        # 66 checks: contract, runtime discovery, tools, gate (segment matching, prefix/path normalisation, script_path coverage), resource disposal, knowledge base, observability, version reporting
node test-client.mjs  # 27 checks: browser-half contract and bilingual dictionary parity
node test-package.mjs # 20 checks: publish manifest and the zero-dependency constraint
node release-check.mjs # 27 checks: release readiness (manifest, deps, tool count, gate matching, version, SHA coverage, no hardcoded paths)

Known limits

  • Outbound fetching depends on this machine's network. If host names resolve to a loopback address, ctk_fetch_and_index fails with that reason spelled out — not a bare "fetch failed" — and ctk_index is the way to file local material instead.
  • ctk_execute timeouts are hard kills: the child is terminated and timedOut is reported.
  • A single run captures at most 256 KB; anything beyond is counted but not retained. The text handed back is additionally capped at 4000 characters, so even a 1 MB single-line output cannot enter the conversation whole.
  • The knowledge base deduplicates by path: filing the same path again replaces the earlier copy.
  • The gate is precise, not exhaustive. A flood tool is refused only when it is the command word of some segment — after exec prefixes (sudo, exec, …) and path/extension normalisation are stripped — and script_path is read up to the first 256 KB. A tool a program invokes internally (python -c 'import wget') is outside its remit.

License

MIT