Open Source | 2026 — Present
Carry-On — Claude Code Session Resumer
Carry-On catches a Claude Code turn that dies on a usage limit through the native StopFailure hook, records the session and its working directory, waits for the reset window, confirms the window is open with a free probe, and resumes the same session headlessly. It uses no resident daemon, polling loop, or terminal keystroke injection.
- Bash
- jq
- Claude Code

Carry-On turns Claude Code usage-limit interruptions into an automatic handoff, so long-running work can continue without manual intervention.
The problem
Long-running Claude Code work can stop mid-task when a usage limit is reached, leaving the session with all of its context but unable to continue until the window resets. Manually returning later and resuming interrupts unattended workflows.
The solution
Carry-On uses Claude Code’s native StopFailure hook to detect the exact limit event and capture the session ID and working directory. It waits for the reset, confirms that the window has actually reopened, then runs claude --resume against the same session so the existing context is preserved.
Key features
Hook-native detection with no polling
Headless resume with no terminal keystroke injection
Always-visible statusline badge and resume history
Wake spacing and transcript-size gating to control resume cost
Project and session policies for resume, chain, notify, or off modes
My role
I designed and built Carry-On end to end, including the hook-based limit detection, pending-session state, reset waiting and probing, headless resume workflow, statusline integration, cost-aware gating, safety controls, and CLI commands.
Want the full story behind this project?
houssem.djeghri@gmail.com