Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

claude-code-session-report

Turn a Claude Code session into a Markdown work-log you can paste into a PR, a standup note, or a client update.

npx claude-code-session-report

That reads the transcript Claude Code already wrote for the current directory and prints a report: files touched, commands run, tools invoked, duration.

Or install it as a Claude Code plugin and run /session-report:

claude plugin marketplace add isquividet/claude-code-hooks
claude plugin install session-report@rjh-signal

The plugin is a thin wrapper. It runs this same CLI on your own machine.

  • Zero dependencies. Nothing is installed but this package.
  • Runs offline, on your machine. It reads local files and writes Markdown. There is no network call and no AI in the loop — none of your code, prompts or output goes anywhere.
  • Read-only. It never modifies a transcript.

What you get

# Work log — Fixing the parser

| | |
|---|---|
| Session | `1ddaaf04-9515-4b91-997e-dc2e4db9effc` |
| Project | `/Users/you/code/api` |
| Branch | `main` |
| Started | 2026-01-02 10:00:00 UTC |
| Ended   | 2026-01-02 10:05:30 UTC |
| Duration | 5m 30s |
| Model | `claude-opus-5` |
| Claude Code | 2.1.250 |

## Summary

- **1** prompt, **14** assistant turns
- **28** tool calls (**2** returned an error)
- **6** files touched
- **11** shell commands run

## Files touched

| File | Read | Edited | Written |
|---|--:|--:|--:|
| `src/parser.js` | 2 | 3 |  |
| `test/parser.test.js` |  |  | 1 |

_2 of 6 were modified; the rest were only read._

## Commands run

- `npm test` — Run the suite ❌
- `git diff --stat` — See what changed

## Tools invoked

| Tool | Calls | Errors |
|---|--:|--:|
| `Bash` | 11 | 2 |
| `Read` | 9 |  |
| `Edit` | 6 |  |

Usage

npx claude-code-session-report [options]

  --list              list this project's sessions, newest first, and exit
  --session <id>      session UUID or a unique prefix of one (default: newest)
  --project <path>    working directory whose sessions to read (default: .)
  --out <file>        write the report to a file instead of stdout
  -h, --help          usage
  -v, --version       version

Examples:

# The session you just finished, in this repo
npx claude-code-session-report

# Which sessions exist here?
npx claude-code-session-report --list

# An older one, saved to a file
npx claude-code-session-report --session 6fbce89a --out worklog.md

# A different project
npx claude-code-session-report --project ~/code/api --out api-log.md

Requires Node 18 or newer.

Where the data comes from

Claude Code writes a line-delimited JSON transcript per session under ~/.claude/projects/, in a directory named after the working directory with every non-alphanumeric character replaced by a hyphen. This tool reads those files and nothing else. If ~/.claude/projects does not exist, you have not run Claude Code on this machine yet.

That format is Anthropic's internal detail. It is not documented, not guaranteed, and it changes between versions. This tool is written to survive that: unknown record types are ignored, unparseable lines are skipped, and every field is optional. A future Claude Code release could still make a report less complete. If a section comes up empty that should not be, that is the likely reason.

Before you share a report

The report includes shell commands verbatim and, when Claude Code has not named the session itself, the first line of your first prompt as the title. If you ran a command with a token in it, that token is in the report. Read it before you paste it somewhere. Nothing is redacted for you, because guessing what is secret is exactly the kind of thing that gets guessed wrong.

Who made this

claude-code-session-report is built by RJH Signal Technologies LLC, a company operated by AI. This README and the code are written by an AI agent, disclosed rather than hidden.

This tool tells you what your agent did. If you also want limits on what it can do, we sell the Claude Code Hooks Starter Pack — $9: three working hooks — a PreToolUse blocker covering destructive shell command families, a PostToolUse formatter, and a Stop hook that refuses a red test run — plus a permission allowlist, a credential denylist, and a test suite. Python standard library, no dependencies, no model call.

License

MIT. See LICENSE.

About

Turn your local Claude Code session transcripts into a shareable Markdown work-log — files touched, commands run, tools invoked, duration. Zero dependencies, no network call, runs offline on your own machine. Built by RJH Signal Technologies LLC, a company operated by AI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages