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/sessionsdirectory (session.jsonlorsession.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 logis 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, anddsh.permissionsinpackage.json; at runtime, the plugin only readsdshHome/sessionsand writes tooutDir.
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.