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 agentmods add skills/niclejeune/pi-agents-config/session-readernpx skills add niclejeune/pi-agents-config --skill session-readergit clone --depth 1 https://github.com/niclejeune/pi-agents-configWrote 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/niclejeune/pi-agents-config/session-reader)<a href="https://agentmods.dev/skills/niclejeune/pi-agents-config/session-reader"><img src="https://agentmods.dev/badge/skills/niclejeune/pi-agents-config/session-reader.svg" alt="Measured on agentmods" height="20"></a>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.00070 | $0.00822 |
| Opus 5 | $0.00035 | $0.00411 |
| Sonnet 5 | $0.00014 | $0.00164 |
| Haiku 4.5 | $0.00007 | $0.00082 |
Grade A, and why
session-reader 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 5d 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.
This is a copy
100% identical to session-reader — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Read Pi Sessions
Parse pi session JSONL files into readable output. Sessions live in ~/.pi/agent/sessions/<project>/ as .jsonl files.
Step 1: Find the Session
ls -t ~/.pi/agent/sessions/*<project>*/*.jsonl | head -10
Step 2: Start with Table of Contents
Always start with toc to get a numbered map of the session:
uv run ${CLAUDE_SKILL_ROOT}/scripts/read_session.py <path> --mode toc
This prints a compact numbered list of every user exchange with timestamps and tools used.
Step 3: Read the Conversation
Default mode — shows only user messages and assistant text responses. Tool calls are hidden but hinted at with [used: tool1, tool2].
# Full conversation (default mode)
uv run ${CLAUDE_SKILL_ROOT}/scripts/read_session.py <path>
# Specific range
uv run ${CLAUDE_SKILL_ROOT}/scripts/read_session.py <path> --offset 5 --limit 3
# Search for specific topic
uv run ${CLAUDE_SKILL_ROOT}/scripts/read_session.py <path> --search "error"
Step 4: Drill Into a Turn
See everything about a specific exchange — thinking, tool calls, tool results, costs:
uv run ${CLAUDE_SKILL_ROOT}/scripts/read_session.py <path> --mode turn --turn 7
Mode Reference
| Mode | Shows | Use for |
|---|---|---|
conversation |
User + assistant text only (default) | Reading what happened |
toc |
Numbered exchange list | Navigation, finding the right turn |
turn |
Full detail for one exchange | Drilling into specifics |
issues |
Errors, failures, retries, user complaints | Finding what broke |
overview |
Metadata + exchange summaries | Quick session assessment |
full |
Everything including tool I/O | Deep debugging |
tools |
Tool calls and results only | Understanding agent actions |
costs |
Token usage and cost per turn | Cost analysis |
subagents |
Subagent task/status/cost/paths | Reviewing delegated work |
Flags
| Flag | Effect |
|---|---|
--offset N |
Skip first N exchanges |
--limit N |
Show at most N exchanges |
--turn N |
Exchange number to drill into (with --mode turn) |
--search TERM |
Filter exchanges containing TERM (case-insensitive) |
--max-content N |
Max chars per block (default: 3000, 0=unlimited) |
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 5d ago First seen · 92 lines · 70 tokens per session scan A 511277853019
session-reader is a skill published in the GitHub repository niclejeune/pi-agents-config (2 stars, last pushed 4mo ago), licensed MIT. It adds 70 tokens to every session and 822 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to session-reader, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
exa-research-planner
Plan, draft, and execute Exa deep-research workflows. Use when the user wants staged research planning, cost-aware discovery before deep synthesis, or an explicit deep-research report. Also use when the user asks to refine a research question, compare options, explore a market or technical landscape, gather sources…
brpr
(devtools plugin) Create a branch, commit changes, push, and open a PR — or just commit+push+PR if already on a feature branch. Links related issues from GitHub or Linear based on project tracker config.
workspace-explorer
Explore and navigate Notion workspaces via MCP. Use when searching for pages, understanding database structure, finding content, creating or updating pages/databases, or managing Notion workspace content. Triggers when user asks about Notion, mentions Notion pages/databases, wants to find something in their wiki…
merge
Merge or squash-merge a pull request and report best-effort remote and local source-branch cleanup. Use when user says "merge this PR", "squash merge", "md", "smd", or anything about merging pull requests.
release
Automate the release process. Use when user says "cut a release", "new version", "bump version", "publish release", or anything about versioning and publishing.
setup-oauth
Guide the user through setting up Notion MCP with OAuth authentication.