dsh-receipt:把 DSH 會話收成可分享的戰報卡片

前言

用 DeepSeek Harness(DSH)做長會話時,事後想說明「這次幹了多久、調了多少次工具、花了多少 token」,常見做法是手截終端或憑印象寫幾句。前者難讀,後者沒有信源。DSH 會把會話寫成本地 JSONL 日誌;若能把同一份日誌彙總成固定口徑的數字,並導出成可直接貼進聊天或社交平臺的卡片,分享成本會低很多。下面介紹社區插件 dsh-receipt(維護者 louisyeaaah,分類:客戶端)的做法。

這是什麼

dsh-receipt 從 DSH 會話日誌只讀統計一次或一段時間內的用量與行爲摘要:時長、輪次、步數、工具調用、涉及文件、tokens 等,默認脫敏,零 npm 依賴。產出可以是終端文本、--json,或 1080×1350 的 SVG/PNG 卡片。倉庫未發佈到 npm,命令行需走 GitHub 路徑;裝進 DSH 後還可通過插件工具與會內命令調用,與 CLI 共用同一套 src/ 統計與渲染邏輯,數字口徑一致。

核心功能

單次會話戰報

對指定會話(默認最新一次)彙總:

  • 項目名(脫敏後僅最後一段路徑)、模型、會話 id 前綴
  • 時長(首事件至末事件的時間差)
  • 輪次(用戶輸入,turn/start 去重)、步數(模型響應,step/start 去重)
  • 工具調用次數及按工具名分組的使用排行
  • 涉及文件(從工具參數提取 basename,跨名去重)
  • tokens:輸入(新)、輸出、緩存讀(單獨列,不併入輸入)
  • 上下文壓縮:compaction/prune 次數與被裁 token 數

週期戰報

用 --since 把窗口內多個會話合成一份彙總(例如最近 7 天)。輸出中會同時給出時間跨度(牆上時鐘)和會話時長合計(各會話首尾事件之差之和,含掛機,並行會話可能重複計算);涉及文件爲跨會話並集去重。可按 --project 限定項目。

卡片與語言

--svg、--png 生成分享用卡片;--lang zh|en、--theme dark|light 控制文案與配色。PNG 依賴本機 Chrome/Chromium/Edge 將 SVG rasterize;無瀏覽器時仍可用 SVG。

脫敏與可選披露

默認脫敏:項目路徑只留最後一段,文件僅 basename 與計數,會話 id 只顯示前 8 位,不含對話內容。完整路徑需顯式 --show-paths。

插件內調用

安裝爲 DSH 插件後,可在會話中直接要戰報,無需離開應用:

dsh_receipt()                                  # 當前會話
dsh_receipt({ scope: 'period', since: '7d' })  # 最近 7 天彙總
dsh_receipt({ out: '/tmp/card.svg' })          # 寫出卡片
/dsh-receipt period 7d en out:/tmp/card.svg    # 會話內命令

插件只讀會話日誌;除你指定 out 寫卡片外無其它寫操作。官方 @deepseek-ai/* 包爲 peerDependencies,由 DSH 提供。

與部分同類工具的差異(README 自述)

社區裏已有側重 Markdown/HTML 戰報、日週報與交接文檔的項目(如 dsh-receipts、dsh-report-studio)。本倉庫 Maintainer 說明其差異化主要在於:產出以 PNG/SVG 圖片爲主,便於直接發帖;以及 CLI(bin/receipt.mjs)與插件工具(dsh_receipt())雙入口、口徑一致。若需要完整報告體系與 HTML 歸檔,README 建議優先選用功能更完整的同類工具。

npm 上的包名 dsh-receipt(deronendless/dsh-receipt)是另一項目(每輪落 JSON/Markdown 憑據),與本倉庫無關;勿使用 npx dsh-receipt。

安裝與啓用

DSH 插件安裝命令(資料原文):

dsh plugin --profile <profile> add github:louisyeaaah/dsh-receipt

安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證。插件在當前 DSH 進程權限下運行,只讀 ~/.dsh/sessions/ 下的會話文件;啓用即信任其解析邏輯與脫敏行爲。

運行環境:Node ≥ 22(使用內置 zlib),無 node_modules 依賴。

典型用法

命令行(npx GitHub 路徑)

README 強調不要用 npx dsh-receipt,應使用:

npx github:louisyeaaah/dsh-receipt              # 最新一次會話,文本戰報
npx github:louisyeaaah/dsh-receipt --png receipt.png   # 1080×1350 PNG 卡片
npx github:louisyeaaah/dsh-receipt --list              # 列出最近會話

週期彙總示例:

npx github:louisyeaaah/dsh-receipt --since 7d
npx github:louisyeaaah/dsh-receipt --since 30d --project dsh-plugin
npx github:louisyeaaah/dsh-receipt --since 7d --png week.png

其它常用選項:--json 機器可讀;--show-paths 取消路徑脫敏;--price-in、--price-out、--price-cache(每百萬 token 美元單價)僅在自行提供單價時估算成本,工具內無內置價目表。

數據來源

會話文件路徑形如:

~/.dsh/sessions/<項目>/session-<id>/session.v4.jsonl.zstd

每行一個 JSON 事件;工具針對多幀 zstd 追加寫格式逐幀解壓(README 說明了 Node 單幀解壓的坑及自測覆蓋)。

適用場景與注意

適合:需要把真實會話統計做成可分享圖片或短文本的人(例如 build in public、對內同步用量);希望 CLI 與會內插件同一口徑的用戶。

注意:

  • 僅支持 DSH session.v4 格式,上游變更需插件跟進。
  • 時長含掛機,跨天未關閉的會話會顯得很長;週期戰報中「時長合計」與「時間跨度」並存是爲避免誤讀。
  • PNG 依賴本機瀏覽器;限制與數字口徑詳見倉庫 README「限制」「數字的口徑」表格。
  • 社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,安裝第三方插件需自行評估。

結尾

dsh-receipt 把 DSH 會話日誌變成默認脫敏、可驗證來源的戰報文本或卡片,零依賴、只讀爲主,適合快速對外展示一次或一段窗口內的開發強度與 token 用量。詳情與示例輸出見 GitHub:louisyeaaah/dsh-receipt,目錄入口:SkillHub · dsh-receipt。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜