zoahdev/dsh-timesheet
Timesheet for DeepSeek Harness (dsh): turn-based time tracking from session logs — per-day/project/provider/so
dsh-timesheet is turn-based time tracking from DeepSeek Harness session logs. Token dashboards tell you what you spent; this tells you how much wall-clock time you spent with your agents — totals, per-day, per-project, per-provider, per-source, plus tool-call counts, failure rates, and time-to-first-token. It reads the standard dsh event envelope (session_meta, task_started/task_complete with duration_ms and time_to_first_token_ms, response_item/function_call counts) and prints a Markdown report; the agent-callable timesheet tool returns a dsh-timesheet/v1 report with scanned files, sessions, turns, total duration, failed turns, tool calls and byDay/byProject/byProvider/bySource breakdowns. It fills the WakaTime-shaped hole in the dsh plugin registry.
Install
dsh plugin add dsh-timesheetnpm dsh-timesheet 0.1.0 verified 2026-09-04 (maintainer 'zoah' prefix-consistent with GitHub owner zoahdev; README EN primary w/ zh section). Install: dsh plugin add dsh-timesheet, or run standalone: npx dsh-timesheet <session-log-dir> [--json].
Compatibility
DeepSeek Harness session logs (standard dsh event envelope in *.jsonl); reads only; .jsonl.zstd must be decompressed first; zero runtime dependencies.
Details
- Repo: zoahdev/dsh-timesheet
- Category: Coding & Development
- Stars: 0
- Version: npm dsh-timesheet 0.1.0
- Last push: 2026-08-18
- First seen: 2026-08-18
Recent updates
Malformed lines are skipped with a warning; compressed .zstd logs are not read directly — export or decompress first.
FAQ
- What does it measure?
- Wall-clock time per turn from session logs — totals and breakdowns by day, project, provider and source, plus tool-call counts, failure rates and time-to-first-token.
- Does it write to my sessions?
- No — it is read-only by construction and only parses *.jsonl session logs.
- Which log formats work?
- Standard dsh event-envelope JSONL. Compressed .jsonl.zstd files must be decompressed first (they are plain JSONL after).
Alternatives
bwndlct/dsh-session-export · 940842546/dsh-usage-billing