Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dimetron/pi-go --skill nightly-session-watchgit clone --depth 1 https://github.com/dimetron/pi-goWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dimetron/pi-go/nightly-session-watch)<a href="https://agentmods.dev/skills/dimetron/pi-go/nightly-session-watch"><img src="https://agentmods.dev/badge/skills/dimetron/pi-go/nightly-session-watch/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dimetron/pi-go/nightly-session-watch"><img src="https://agentmods.dev/badge/skills/dimetron/pi-go/nightly-session-watch.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00078 | $0.01503 |
| Opus 5 | $0.00039 | $0.00751 |
| Sonnet 5 | $0.00016 | $0.00301 |
| Haiku 4.5 | $0.00008 | $0.00150 |
Grade A, and why
nightly-session-watch scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 128 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Nightly Session Watch
One sweep over everything that happened in the last 24 hours, in priority order: what broke, what it cost, and what to do about it.
Everything runs through pi session-stats — the same Go code path the
session-stats agent tool uses, so there is no second implementation to drift.
No LLM call, no network, reads only ~/.pi-go/sessions/*/events.jsonl.
This is the umbrella check. It is deliberately shallow — it finds and ranks, it does not diagnose. Every finding names the skill that goes deeper:
| Finding | Goes deeper with |
|---|---|
agent loop aborted: ... |
pi-loop-forensics |
| Tool call errors | pi-check-session-logs |
| Which tools dominate | tools-stats |
| Slow turns / throughput | token-perf |
Do not re-implement those here. If the sweep surfaces three aborted runs, the answer is "run loop-forensics on these three", not a second loop analysis.
Run it
pi session-stats # last 24h
pi session-stats --hours 72 # wider window
pi session-stats --all # include sessions with no anomalies
pi session-stats --json # counters only, for a cron wrapper
Other flags: --high-tool-calls and --high-turns move the anomaly
thresholds, --session-dir points at a different session root.
Steps
-
Run
pi session-stats. Present its markdown as-is — it is already ordered by severity. -
Read the numbers before interpreting them. Three traps:
- Tool error rate matters more than error count.
readfailing 5 times in 253 calls is noise; a tool failing 8 of 8 is broken or misconfigured. - A heavy session is not automatically a bad session. High tool calls on a long task is work, not waste. Waste is the Token waste section.
- Prompt tokens dwarf everything else. They are re-sent on every request, so the figure is dominated by the fixed block — system prompt plus tool declarations — not by the task. A large number there is not evidence of a bad night; a large number per session on short sessions is.
- Tool error rate matters more than error count.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 128 lines · 78 tokens per session scan A f28de4440998
nightly-session-watch is a skill published in the GitHub repository dimetron/pi-go (155 stars, last pushed today), licensed MIT. It adds 78 tokens to every session and 1,503 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
golang-lint
Linting best practices and golangci-lint configuration for Golang projects — running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and selecting linters. Use when configuring golangci-lint, asking about lint warnings or nolint suppressions, setting up code…
golang-troubleshooting
Troubleshoot Golang programs systematically - find and fix the root cause. Use when encountering bugs, crashes, deadlocks, or unexpected behavior in Go code. Covers debugging methodology, common Go pitfalls, test-driven debugging, pprof setup and capture, Delve debugger, race detection, GODEBUG tracing, and production…
golang-samber-oops
Structured error handling in Golang with samber/oops — error builders, stack traces, error codes, error context, error wrapping, error attributes, user-facing vs developer messages, panic recovery, and logger integration. Apply when using or adopting samber/oops, or when the codebase already imports…
golang-safety
Defensive Golang coding to prevent panics, silent data corruption, and subtle runtime bugs. Use when encountering nil panics, append aliasing, map concurrent access, float comparison pitfalls, or zero-value design questions. Also use when reviewing code for nil-safety, numeric conversion overflow, resource lifecycle…
golang-error-handling
Idiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log…
rust-check
Run cargo check on the current Rust project to find compile errors.