Back to directory

dsh-runtime-log

In a curated listMaintenance: Active

wforevery/dsh-runtime-log

A lightweight DSH plugin for persistent local WARN/ERROR logs in rotating JSONL files. Features bounded buffering, best-effort secret redaction, and automatic log retention. Zero runtime dependencies. Supports DSH on Windows x64.

View on GitHub
$ dsh plugin add dsh-runtime-log

54

stars

4

forks

JavaScript

Language

MIT

License

2026-11-11

Created

2026-11-11

Last push

MIT-licensed DSH bundle that persists the host's WARN / ERROR records to rotating local JSONL files with bounded buffering, best-effort redaction and automatic retention — Windows x64, DSH 0.2.2-rc.1, Node 24 only.

DSH integration

Native runtime

Author-claimed

Safety audit

Unaudited

Last verified

2026-11-14

License

MIT

01What can it help you accomplish?

  • Diagnose a DSH host after a restart, when the in-process WARN / ERROR output is already gone

    JSONL files under `$DSH_HOME/runtime-log` (or `~/.dsh/runtime-log`) that keep WARN / ERROR records across process restarts

    DSH desktop users on Windows who need to look at host warnings and errors after the fact

  • Keep log growth bounded on a long-running DSH host

    Per-run `host-<pid>-<uuid>.jsonl` files of 5 MiB by default with 3 rotation segments, plus a retention pass that cleans up old runs on startup

    Operators who cannot babysit disk usage on the machine running DSH

  • See where a plugin started and stopped inside the DSH host

    Lifecycle marker records named `dsh-runtime-log` whose messages begin with `[plugin-event:start]` / `[plugin-event:stop]`, written through the same sink as normal warnings

    Plugin authors and maintainers checking whether a bundle loaded and unloaded cleanly

02How to install into DeepSeek Harness

Prerequisites

  • DSH 0.2.2-rc.1 — the README's compatibility table lists this as the only supported DSH version, provided by Cordis 4.1.0
  • Node.js >=24.16.0 <25
  • Windows x64 — the bundle's platform gate allows `win32` only
  • The package is not published to npm yet, so it has to be pointed at from a profile as a dependency

Installation steps

  1. 01

    Point a profile's dependency at this package and add `dsh-runtime-log` to that profile's `dsh.profile.bundles`

  2. 02

    Fully quit DSH and start it again — the plugin does not modify the profile at runtime, a new bundle needs a complete restart

Verify the integration

  • After the restart, look for a `host-<pid>-<uuid>.jsonl` file under the runtime-log directory (`$DSH_HOME/runtime-log`, otherwise `~/.dsh/runtime-log`) and check for a record named `dsh-runtime-log` whose message starts with `[plugin-event:start]`

03DSH integration and capability boundaries

DSH integrationNative runtime

A DSH bundle added to a profile's `dsh.profile.bundles` that registers a Cordis logger exporter and writes WARN / ERROR records to local JSONL files

  • WARN / ERROR JSONL export

    records passed through the DSH Cordis logger→JSONL lines in a per-run file; INFO and DEBUG records are ignored

    writes log files into the runtime-log directory on the local disk
  • Bounded queue with oldest-record dropping

    bursts of WARN / ERROR records under pressure→a queue capped by default at 2,000 records / 1 MiB including the batch being written; the oldest records are dropped and counted

    records are silently dropped under pressure, with a drop counter instead of the lost lines
  • Rotation and cross-run retention

    growing per-run log files→5 MiB segments with 3 rotation segments by default, plus a startup retention pass targeting 16 run files including rotations

    deletes old run files at startup, but never other processes' live or unknown runs
  • Best-effort secret redaction

    log record arguments of limited types→formatted records where recognised secret keys and Bearer / API keys are redacted; raw args objects are never stored

    redaction is best effort, so secrets in free text, unknown encodings or custom error content can still reach the log file
  • Configurable sink limits

    the bundle's `config` field (`directory`, `maxFileBytes`, `maxFiles`, `maxQueueRecords`, `maxQueueBytes`, `maxEntryBytes`, `flushIntervalMs`, `drainTimeoutMs`)→overridden defaults; invalid or hostile configs fall back to defaults instead of throwing

    a relative `directory` silently falls back to the default directory

04Who is it for? When not to use it?

Good for

  • DSH desktop users on Windows who need to look at host warnings and errors after the fact
  • Operators who cannot babysit disk usage on the machine running DSH
  • Plugin authors and maintainers checking whether a bundle loaded and unloaded cleanly

Not for

  • The 0.1.0 support statement is narrow: DSH 0.2.2-rc.1 only, Cordis 4.1.0 as provided by that DSH, Node >=24.16.0 <25, and Windows x64. Node 20–23, Node 25+, other DSH versions, macOS/Linux and Windows ARM64 are explicitly out of scope, and the bundle platform gate only allows `win32`.
  • Only records that go through the Cordis logger are captured. The plugin does not cover all console / stdout / stderr output, session JSONL, tool execution results, or messages emitted before the plugin loads.
  • The log is not crash-safe: a forced kill, power loss or close timeout can lose the tail of the buffered records, and a run whose close timed out stays in the protected set until the process exits.
  • The files contain local diagnostic material and should be handled as sensitive logs; redaction cannot guarantee that secrets in free text or custom error content are removed.

05Compatibility, maintenance and safety notes

  • The 0.1.0 support statement is narrow: DSH 0.2.2-rc.1 only, Cordis 4.1.0 as provided by that DSH, Node >=24.16.0 <25, and Windows x64. Node 20–23, Node 25+, other DSH versions, macOS/Linux and Windows ARM64 are explicitly out of scope, and the bundle platform gate only allows `win32`.
  • Only records that go through the Cordis logger are captured. The plugin does not cover all console / stdout / stderr output, session JSONL, tool execution results, or messages emitted before the plugin loads.
  • The log is not crash-safe: a forced kill, power loss or close timeout can lose the tail of the buffered records, and a run whose close timed out stays in the protected set until the process exits.
  • The files contain local diagnostic material and should be handled as sensitive logs; redaction cannot guarantee that secrets in free text or custom error content are removed.
2026-11-112026-11-11v0.1.0

MIT · README evidence only, latest release v0.1.0, no security audit

06Frequently asked questions

How do I install dsh-runtime-log into DeepSeek Harness?

Point a profile's dependency at this package and add `dsh-runtime-log` to that profile's `dsh.profile.bundles`, then fully quit DSH and start it again. The README notes the plugin does not modify the profile at runtime, a newly added bundle only takes effect after a complete restart, and the package is not published to npm yet.

Which DSH, Node and OS versions does it support?

For version 0.1.0 the support statement is DSH 0.2.2-rc.1 only, Cordis 4.1.0 as provided by that DSH, Node.js >=24.16.0 <25, and Windows x64. Node 20–23, Node 25+, other DSH versions, macOS/Linux and Windows ARM64 are explicitly outside the claim, and the bundle's platform gate only allows `win32`.

Where do the log files go and how do I confirm it is running?

The default directory is `$DSH_HOME/runtime-log`, otherwise `~/.dsh/runtime-log`; `directory` can be set to an absolute path (with `~` support). Each run writes `host-<pid>-<uuid>.jsonl` with 5 MiB segments and 3 rotation segments by default, and the lifecycle marker is an ordinary WARN record named `dsh-runtime-log` whose message starts with `[plugin-event:start]`.

Does it capture everything the DSH host prints?

No. Only records that pass through the Cordis logger are stored; console / stdout / stderr in full, session JSONL, tool execution results and messages emitted before the plugin loads are not covered. Redaction is best effort, so secrets inside free text, unknown encodings or custom error content may still land in the file, and a forced kill or power loss can lose the buffered tail.

08Data and sources

  • Author-claimedgithub.combcf9fa9bd547…

    把 DSH Cordis logger 的 WARN / ERROR 记录写到本机 JSONL,供进程重启后排查。插件只注册 logger exporter,不读取会话历史或凭据,不联网,不提供模型工具、UI 或 system prompt…

  • Author-claimedgithub.combcf9fa9bd547…

    把一个 profile 的依赖指向本包,并把 `dsh-runtime-log` 加入该 profile 的 `dsh.profile.bundles`,然后完整退出并重启 DSH。

This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-14. Found an error? Submit a correction.

🏆

Best DeepSeek Harness Plugins

Twelve plugins worth installing first — picked from the whole catalog, across every category.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.