auto-capture-claude-code
auto-capture-claude-code is a Stop-hook script that automatically captures Claude Code session transcripts when sessions end without explicit user triggers like terminal closes or timeouts. It filters out short sessions and agent-only work, then posts qualifying transcripts to an Open Brain ingest endpoint for thought extraction, complementing the base auto-capture skill which requires verbal triggers. Install both skills together for complete session coverage.
git clone --depth 1 https://github.com/NateBJones-Projects/OB1 /tmp/auto-capture-claude-code && cp -r /tmp/auto-capture-claude-code/skills/auto-capture-claude-code ~/.claude/skills/auto-capture-claude-codeSKILL.md
# Auto-Capture: Claude Code Adapter
## Relationship to Upstream Skill
This adapter implements the session-end capture behavior defined by the upstream [auto-capture skill](../auto-capture/) by **Jared Irish**. The base skill is a behavioral protocol — it describes when and what to capture during interactive session closes. This adapter is the concrete Claude Code binding: a Stop-hook script that fires the same capture behavior automatically when a session ends without a verbal trigger. The upstream skill and this adapter are complementary; install both for full coverage.
## Problem
The base auto-capture skill requires a verbal trigger ("wrap up", "park this")
to fire. In practice, many Claude Code sessions end without that trigger —
the user closes the terminal, hits Ctrl+C, or simply walks away. Those sessions
and their decisions are lost.
## What This Adapter Adds
This adapter uses Claude Code's hook system to run a capture script automatically
at session end. It complements the base auto-capture skill:
- **Base auto-capture** handles interactive session-close captures (ACT NOW items,
session summaries) when the user explicitly wraps up.
- **This adapter** handles ambient capture when the session ends without an
explicit trigger (terminal close, timeout, Ctrl+C).
Together they ensure no valuable session falls through the cracks.
## How It Works
1. Claude Code fires a `Stop` hook at session end, passing the transcript path
and session metadata via stdin as JSON.
2. The hook script (`session-end-capture.mjs`) reads the transcript, filters out
short or agent-only sessions, and formats the content.
3. The formatted transcript is POSTed to the Open Brain REST ingest endpoint
(or smart-ingest edge function) for automatic thought extraction.
4. Failed captures are saved to a local retry queue and retried on subsequent
session ends.
## Skip Heuristics
Not every session is worth capturing. The hook skips:
- Sessions with fewer than 3 user turns (too short to contain decisions)
- Agent-only sessions (sub-agent work, automated tooling)
- Sessions containing restricted content (matched against sensitivity patterns)
- Session-end reasons that are not terminal (`clear`, `resume`)
## Installation
### Prerequisites
Install the base [auto-capture skill](../auto-capture/) first. This adapter
extends it — it does not replace it.
### Steps
1. Copy `session-end-capture.mjs` to your project or a shared scripts directory.
2. Register the hook in your Claude Code settings (`.claude/settings.json` or
global `~/.claude/settings.json`):
```json
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "node /path/to/session-end-capture.mjs"
}
]
}
]
}
}
```
3. Set environment variables (in `.env.local` or your environment):
```bash
SUPABASE_URL=https://<project-ref>.supabase.co
MCP_ACCESS_KEY=your-access-key
```
4. Restart Claude Code to pick up the hook.
5. End a test session with at least 3 user messages and verify a capture appears
in your Open Brain thoughts.
## Adapting the Script
The included `session-end-capture.mjs` is a reference implementation. Adapt it
to your setup:
- **Ingest endpoint**: Update the URL construction if your REST API or
smart-ingest function is deployed at a different path.
- **Sensitivity patterns**: Add a `config/sensitivity-patterns.json` file with
regex patterns for restricted content detection, or remove the check if you
don't need it.
- **Retry queue**: The script saves failed captures to
`data/capture-retry-queue/` and retries them on subsequent runs. Adjust
`RETRY_MAX_ATTEMPTS` and `RETRY_BATCH_SIZE` as needed.
- **Hard timeout**: The script exits after 25 seconds to avoid blocking Claude
Code shutdown. Adjust `HARD_TIMEOUT_MS` if your network is slower.
## Output
When working correctly:
- Every meaningful Claude Code session (3+ user turns, non-agent, non-restricted)
is automatically ingested into Open Brain for thought extraction.
- Failed captures are queued locally and retried on subsequent session ends.
- Short, agent, and restricted sessions are silently skipped.
- All outcomes are logged to `logs/ambient-capture.log` for debugging.
## Notes
- This adapter is designed to be non-blocking. All errors are caught and logged —
the hook never prevents Claude Code from shutting down.
- The base auto-capture skill and this adapter are complementary. The skill
handles interactive captures with ACT NOW items; the adapter handles ambient
background capture of the full session transcript.
- Tool names vary by client and connector. The hook script uses the REST API
directly rather than MCP tools, so it works regardless of which MCP connector
is active.Use Nate Jones OB1 Agent Memory from OpenClaw with provenance, scope, review, and use-policy discipline.
Continuous learning system that extracts reusable knowledge from work sessions. Triggers: (1) /aiception command, (2) 'save this as a skill' or 'extract a skill from this', (3) 'what did we learn?', (4) after non-obvious debugging or trial-and-error discovery. Creates new skills when valuable reusable knowledge is identified. Integrates with Open Brain to prevent duplicates.
Morning digest of yesterday's Open Brain thoughts, drafted to Gmail
Generate infographic images from any research doc, Open Brain thoughts, or analysis. Auto-chunks content, writes prompts, generates images via Gemini API (free tier), and saves to media/. Use --premium for better text rendering.
|
Use when processing voice transcripts, brain dumps, stream-of-consciousness notes, or any raw multi-topic capture. Extracts every idea thread, then evaluates each one with deep brainstorming, then captures results to Open Brain. Trigger on transcripts, exports, "process this", "pan for gold", "brain dump", "what did I say", or multi-topic markdown files.
|