DeepSeek Harness plugin

dsh-observability

Community DeepSeek Harness plugin.

Jump to install

Source facts

Repository
jeremy9682/dsh-observability
Latest update
Aug 14, 2026
Category
Development & Runtime
GitHub stars
2
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/jeremy9682/dsh-observability
Plugin: dsh-observability
Author: jeremy9682

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-observability

Two small plugins for DeepSeek Harness that close the observability gap around external subagent runs. Background and upstream proposal: discussion #1493.

Packages

PathPackageWhat it does
(root)dsh-codex-observabilityFingerprints product session roots (~/.codex/sessions, ~/.cursor/chats, …) before and after tracked tool calls and writes an attribution envelope (sessionRef, sessionStatus) to a journal file. Pointers only — never prompt or transcript content.
plugin-cursor/dsh-tool-cursorA cursor_delegate tool that delegates a task to the official cursor-agent CLI (headless), ported from the opencodex cursor.ts reference. Read-only by default; edit proposes but never applies changes.

Both are boot-tested in a real composition (isolated DSH_HOME, headless, --patch, dsh 0.1.0-rc.6). Evidence:

{"kind":"subagent-attribution","runId":"c091edac-…","provider":"bash","callId":"call_00_…",
 "error":"none","sessionRef":"/tmp/obs-test-root/new-artifact.jsonl",
 "sessionStatus":"attributed-single-artifact"}
{"kind":"subagent-attribution","runId":"55f45e12-…","provider":"read","callId":"call_00_…",
 "error":"none","sessionRef":null,"sessionStatus":"not-observed"}

Install

# from git (builds via the package's prepare script; pnpm >= 10 asks for
# allowBuilds permission the first time — copy the printed key into the
# profile's pnpm-workspace.yaml, then re-run)
dsh plugin --profile web add github:jeremy9682/dsh-observability

# or from a local checkout
dsh plugin --profile web add ~/Projects/dsh-observability

# cursor tool: local checkout form (the repo root is the observability package)
dsh plugin --profile web add ~/Projects/dsh-observability/plugin-cursor

Requires dsh 0.1.0-rc.6 and Node ^22.19 || >=24.

Configure (defaults shown):

- id: codex-observability
  name: dsh-codex-observability
  config:
    enabled: true
    roots: ['~/.codex/sessions', '~/.cursor/chats']
    tools: [subagent_codex, subagent_claude_code]
    journal: '~/.dsh/storages/codex-observability.jsonl'

- id: tool-cursor
  name: dsh-tool-cursor
  config:
    timeoutSeconds: 600
    defaultMode: ask

Standalone utility (no DSH needed)

bin/dsh-run-attributed.mjs wraps any CLI with the same fingerprint + envelope + three-tier timeout (first-event / idle / total):

node bin/dsh-run-attributed.mjs --provider codex --seat codex-landing \
  --root ~/.codex/sessions --first-event 60 --idle 240 --total 300 \
  -- codex exec --json "<task>"

Known upstream blocker

The durable in-session-log pointer (instead of the file journal) waits on two upstream items, raised in #1493: a downstream event-type registration surface, and append-time ignorable control. Session.append() offers neither today; KNOWN_SESSION_EVENT_TYPES excludes out-of-repo plugin events by construction. The file journal is the working fallback until then.

License

MIT.