SessionEnd Hook - Claude Code
Fires when a session terminates.
SessionEnd fires when Claude Code is shutting down a session - clean exit or otherwise. It's your last chance to flush logs, stop services, or summarize work.
What it does
The hook runs after the last turn completes and before the process exits. It can record analytics, push auto-memory updates, kill orphaned background processes, or write a session summary to disk. Output goes to logs, not to the user - the session's already done.
When to use it
- Cleaning up background tasks Claude spawned during the session.
- Writing a short summary of what changed to a handoff file.
- Flushing metrics to an observability backend.
- Closing any connection or file handle the session opened.
Gotchas
- SessionEnd may fire after a crash or interrupt. Make the hook resilient.
- Long SessionEnd hooks delay process exit. Don't block on network calls if you can avoid it.
- Some signals kill the process before the hook can run. Critical cleanup needs defense-in-depth.
Official docs: https://code.claude.com/docs/en/hooks.md#sessionend
Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools - delivered free every week.
Was this helpful?




