
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-context-mode
Advanced tools
dsh-context-mode exposes a self-contained context-mode server as native
DeepSeek Harness tools. It registers the full ctx_* catalog at runtime and
adds model-facing routing guidance, so dsh-TUI can use sandboxed execution,
indexing, FTS5 retrieval, and web fetching without a second MCP client. It also
registers the eight user-invocable skills from the upstream package, so the
DSH skill surface includes /context-mode, /ctx-index, /ctx-purge,
/ctx-search, and /ctx-upgrade; the diagnostics, analytics, and statistics
skills are off by default with their tools.
Part of a pair. This is the tool half: the
ctx_*tools, plus the archiver that files each compaction's transcript into the knowledge base. Its companiondsh-context-mode-compactionis the strategy half: it replaces DSH's compaction engine so a checkpoint rebuilds the conversation instead of only summarizing it.Install both. Without the strategy package, the archive is still written but no checkpoint points at it; without this one, checkpoints point at an archive nothing fills.
The engine is vendored: vendor/context-mode/ carries the source and this
package builds its own server.bundle.mjs from it. There is no context-mode
npm dependency at runtime, and the eighteen upstream platform adapters
(Claude Code, Codex, Cursor, Gemini CLI, …) were removed — DSH is the only
supported host.
Two DSH-specific changes sit on top of the vendored engine:
porter unicode61 and trigram, so
Chinese queries largely fail (a run of Han characters becomes one token, and
the trigram table cannot match two-character words). The adapter segments CJK
text on both sides of the index, which took a five-query Chinese benchmark
from 2/5 to 5/5.See LICENSING.md: the adapter is MIT, the vendored engine is
Elastic License 2.0.
dsh plugin --profile dsh-tui add dsh-context-mode
To get the full pair — this package plus the compaction strategy that turns a checkpoint into a searchable transcript — add both and run the wiring step:
dsh plugin --profile dsh-tui add dsh-context-mode
dsh plugin --profile dsh-tui add dsh-context-mode-compaction
npx dsh-context-mode-compaction # point the preset's compaction row here
Restart the profile afterwards either way. Removing a package removes its profile row as well:
dsh plugin --profile dsh-tui remove dsh-context-mode
The npm package ships a prebuilt vendor/context-mode/server.bundle.mjs, so no
build step runs at install time. The bundled skills/context-mode/SKILL.md is
registered with DSH's skill registry when the profile provides the skills
service, so it should appear in /skills after a restart.
The default patch starts the bridge with:
enabled: truecontext-mode/server.bundle.mjs~/.dsh/context-mode as the isolated database rootdisabledTools: [ctx_doctor, ctx_insight, ctx_stats]Override the row's config in a profile patch when needed:
- id: dsh-context-mode
name: dsh-context-mode
inject: [tools, systemPrompt]
config:
projectDir: /absolute/path/to/worktree
storageDir: /absolute/path/to/context-mode-data
handshakeTimeoutMs: 120000
disabledTools: [] # opt the maintenance tools back in
Every registered tool ships its full schema on every request, so a tool nobody
calls is a permanent token tax. ctx_doctor, ctx_insight, and ctx_stats
report on context-mode itself rather than on the user's work — a human runs
them deliberately. Their skills are suppressed with them, since a skill that
teaches a model to call an unregistered tool helps nobody.
The tools behind disabledTools stay in the vendored engine; only their DSH
registration is skipped. Set disabledTools: [] to restore all eleven.
serverPath is available for local development and pinned deployments. It may
be an absolute path or a path relative to the profile process directory.
The plugin starts one long-lived child process per DSH composition. It performs
MCP initialize and tools/list, registers each returned tool through the DSH
tool registry, and forwards every call over MCP stdio. The child is terminated
when the Cordis plugin is disposed.
Context-mode analysis, indexing, search, and diagnostics tools are marked concurrency-safe so independent model tool calls may overlap. ctx_insight, ctx_purge, and ctx_upgrade remain exclusive because they open external UI or mutate installation and stored data.
ctx_batch_execute additionally parallelizes its own command batch through its concurrency parameter.
Eight of the eleven ctx_* capabilities are exposed on DSH by default —
ctx_execute, ctx_execute_file, ctx_batch_execute, ctx_fetch_and_index,
ctx_index, ctx_search, ctx_upgrade, and ctx_purge. ctx_stats,
ctx_doctor, and ctx_insight are held back by disabledTools (see
Configuration). Each registered tool carries DSH-specific
routing guidance in its
description, and the plugin injects a routing section plus a bundled
context-mode skill so the model reaches for these tools by default.
The adapter targets DSH only. Cross-platform code you may see inside the
context-mode dependency belongs to that package's prebuilt MCP server, which
this adapter does not modify; it ships no Claude Code, Codex, or other host
integration of its own. CONTEXT_MODE_PLATFORM=pi is set solely because upstream
only accepts its own platform ids, and pi is its neutral MCP-only id — every
store stays DSH-owned: CONTEXT_MODE_DIR isolates DSH data and
CONTEXT_MODE_PROJECT_DIR pins project hashing to the configured workspace.
Compaction replaces the live conversation with a generated summary and prunes
the events behind it, so anything the summary omits leaves the model's reach.
The plugin listens for compaction/start and files the transcript into the
knowledge base first, where ctx_search can still reach it afterwards.
Storage is layered rather than filtered — every transcript event is archived,
and the layers differ only in the source label they carry, so precision is
chosen at query time instead of at write time:
| Source | Contents |
|---|---|
session/<id>/constraint | user messages — requirements, decisions, limits |
session/<id>/finding | tool results and assistant prose stating a concrete value |
session/<id>/narrative | remaining assistant prose — reasoning, plans |
Nothing is dropped at write, so a misclassification costs a query's precision
rather than the content itself. Harness-injected blocks (<active_memory>,
<current_runtime_context>, <system-reminder>, <resume_snapshot>) are the
one exception: they ride on user/message, are per-turn runtime noise rather
than transcript, and are discarded before layering. Set precompact: false to
turn archiving off entirely.
Archives written before 0.3.2 may contain those injected blocks. A one-shot cleanup script removes them and leaves everything else alone:
node node_modules/dsh-context-mode/scripts/cleanup-injected.mjs --db <path> # report only
node node_modules/dsh-context-mode/scripts/cleanup-injected.mjs --db <path> --apply # delete
A checkpoint keeps only a summary of the span it replaces, and the shipped
checkpoint format has no section for tool output — a long tool result survives
only as whatever the summarizing model chose to keep. precompact files that
same span into the knowledge base beforehand, but nothing told the model so,
and a summary that omits a detail reads as if the detail never existed.
Closing that gap is a separate product, not part of this package:
npm install dsh-context-mode-compaction
npx dsh-context-mode-compaction
dsh-context-mode-compaction supplies the compaction engine that writes the
transcript and the index; this package supplies the archiver that stores what
those pointers name, and the ctx_search tool that reads it back. The two are
independent — install both for the full path.
See dsh-context-mode-compaction for the checkpoint format, the tuning constants, and the preset wiring.
pnpm install
pnpm build
The plugin needs Node ^22.19 || >=24. The upstream package installs
better-sqlite3; a native build may be required on platforms without a
prebuilt binary.
MIT for this adapter. The runtime dependency keeps its own license and terms;
see the upstream context-mode package.
FAQs
Expose context-mode MCP tools as native DeepSeek Harness tools
The npm package dsh-context-mode receives a total of 0 weekly downloads. As such, dsh-context-mode popularity was classified as not popular.
We found that dsh-context-mode demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.