Preface

The core philosophy of DSH (DeepSeek Harness) is “everything is a plugin.” During use, developers often face one question: how to quantify the input and output of agents in a specific project? A survey in August 2026 showed that search results for keywords such as dsh receipts worklog were 0, indicating a lack of existing tools to generate a personal “usage and impact report.” dsh-receipts aims to solve this problem. It is a plugin that mines data from local session logs and generates reports.

Core Features

  • Zero Configuration: The data source is existing session logs under the local $DSH_HOME/sessions directory (session.jsonl or session.jsonl.zstd); no network connection or registration is required.
  • Zero-Network Mining: The mining stage uses purely local Node scripts (file IO + regular expressions + JSON parsing) with zero API calls; summaries are forced to be ≤ 20 KB and are truncated if they exceed this limit.
  • Cross-Validation: git log is cross-checked against session activity, comparing commit activity with session activity.
  • Privacy Protection: It only reads its own dshHome logs and supports path redaction; reports are never sent externally.
  • Markdown / HTML Reports: Generates daily/weekly/monthly reports, as well as self-contained HTML receipts (single file, no external links, can be opened directly offline).

Installation and Activation

In its development form, this plugin depends on the adjacent dsh-src (DeepSeek Harness source checkout) and keeps the same parent-directory layout as the current repository (<parent>/dsh-src). Before installation, the official source code must be checked out and built.

Build and install to a profile:

# 1. Ensure dsh-src exists in the sibling directory and has been built
pnpm install          # link dependencies to dsh-src
pnpm build            # compile lib/ with tsc

# 2. Install the plugin
dsh plugin --profile <name> add /path/to/dsh-receipts

After installation, the agent gains the receipts tool. The main parameters are as follows:

Parameter Default Description
period month week=7 / month=30 / quarter=90 / year=365 or a positive integer number of days (e.g., "14")
repo none A project-name substring used to filter the entire report (matches the session cwd)
outDir dshHome Report output directory
redactPaths false Redact absolute paths (<redacted>/<basename>)
sessionsRoot $DSH_HOME/sessions Override the session log root directory
git true Enable git log cross-validation (when disabled, the report is marked “cannot be cross-validated”)

It outputs two files: receipts-<date>.md and receipts-<date>.html (self-contained).

Direct Command-Line Use

In addition to calling it through the DSH agent, you can run the mining script directly:

# Mine (summary JSON printed to stdout)
node scripts/mine-transcripts.mjs --root ~/.dsh/sessions --period month --repo my-project --redact

Generate the report:

# Report (summary file → Markdown + HTML)
node scripts/report.mjs --summary /tmp/summary.json --out-dir ~/receipts --base-name receipts-2026-08-20

Use Cases and Notes

  • Use cases: Justify usage costs to a manager, review personal workflows, and quantify agent investment in a project.
  • Topic classification: A deterministic implementation based on keyword clustering, not semantic analysis.
  • Compression mode: DSH logs are Zstd-compressed by default. The scripts support automatic decompression of multi-frame concatenated files; if a Zstd file is large (single frame exceeds 64 MB), decoding may fail and the file will be skipped.
  • Period determination: Sessions are counted if they overlap the time window; sessions created outside the window but active inside it are included.
  • Permissions and Store: The repository has declared repository, engines.node, dsh.compatibility, and dsh.permissions in package.json; at runtime, the plugin only reads dshHome/sessions and writes to outDir.

Conclusion

dsh-receipts provides a zero-configuration, zero-network local data mining solution, turning invisible session activity into a visible work log. By cross-validating git log, it is more than just a report; it is an objective record of the development process.

See the plugin details and source code at: SkillHub Directory or GitHub.