Stop Babysitting Claude Code: Let a Butler Hand Your Task to a Fresh Session 🎩
Know this feeling -> Big task. Everything flowing. Then the context window fills up, and suddenly the agent forgets stuff... repeats itself... hallucinates a bit 😅 So you stop it. Write a handover. /clear. Paste. Expla
Know this feeling ->
Big task. Everything flowing. Then the context window fills up, and suddenly the agent forgets stuff... repeats itself... hallucinates a bit 😅
So you stop it. Write a handover. /clear. Paste. Explain everything once again. Repeat...
So damn annoying...
I got so tired of babysitting Claude that I built a tool to fix it. It's called Jeeves. Because every agent deserves a butler 🎩
TL;DR
/plugin install jeeves --marketplace nickycdk/jeeves
Jeeves is a Claude Code plugin. At 40% context (by default) he asks Claude for a handover, checks it against git and the commands that ran, runs /clear, and continues in a fresh conversation in the same terminal. With your original prompt, word for word.
Public beta 0.3.1, MIT
macOS, Claude Code 2.1.319+, any terminal (Cursor's and VS Code's included)
No API key, no server, Jeeves makes no network requests. Local only.
Not made by or affiliated with Anthropic
Repo ➡️ github.com/nickycdk/jeeves
"Isn't that just /compact?"
Nope.
/compact summarises the conversation and keeps going in the same one. Jeeves starts a new conversation and hands the task over:
the fresh conversation gets your original task, not a summary of it
the handover is checked before it's used
every handover is a file you can read (/jeeves handover)
it happens early, typically well before automatic compaction kicks in
Getting started
Install it (above), or from a shell:
claude plugin install jeeves --marketplace nickycdk/jeeves
A note that some options aren't set yet is fine. Every setting is optional.
Then it depends where you are:
You're in... Do this
a git repo and a 200K+ context window and a new conversation Just type your task. Jeeves starts by himself.
no git repo, or a smaller window, or a resumed conversation /jeeves on, then type your task.
/jeeves on with no goal saves your next prompt, word for word, as the task. Or pass one:
/jeeves on
Once he's watching, the line under the prompt shows something like Jeeves 12%/40%. Context used, then the handover point. Not sure he's on? /jeeves status tells you, and if he isn't, why.
Third-party marketplaces don't update by themselves, so when there's a new version:
claude plugin update jeeves@jeeves
What happens at 40%
Jeeves waits until Claude has stopped and nothing is still running.
He asks for a handover: where things stand, what's next, how far along the plan is.
He checks it (see below).
If it's good: saves it with the commits since the task started, runs /clear, and gives the fresh conversation your original task, the handover and the next steps.
In the transcript:
Jeeves: handover requested
Jeeves: handover validated, starting fresh
And Claude carries on. You keep building.
The checks (aka the part I actually care about)
Handovers can lie a little... whether you wrote them or the agent did 🙈
So before one is used, Jeeves checks:
the format, ids and size are valid
branch and HEAD match git
files named as verified actually exist
no command is claimed as passing when its last run failed
nothing matches a recognised secret pattern
Fails? It goes back to Claude with the reasons. After three tries (one attempt, two retries) Jeeves stops and asks you. /jeeves retry kicks it off again.
What he won't do
Jeeves never runs your commands, never touches git, never answers permission prompts for you, and never marks a task done without proof.
He knows his place.
Want a command that must pass before the task counts as done?
/jeeves check npm test
Claude runs it. Jeeves checks the result.
If your Claude Code can't let a plugin run /clear, he drops to assisted mode: keeps the verified handover and asks you to run /clear, then /jeeves continue.
Commands worth knowing
/jeeves status what he's doing now, and what you can type next
/jeeves on [goal] start a task (or make an auto-started one yours)
/jeeves rotate request a handover at the next safe moment
/jeeves later skip the next handover (threshold +10)
/jeeves pause stop handovers for a while
/jeeves resume start them again
/jeeves handover show the last handover
/jeeves off end the task (its files are kept)
/jeeves retry try again after Jeeves stopped and asked you
/jeeves recover pick up a task left by a crashed or closed session
Tuning, per task or as project defaults:
/jeeves threshold 60
/jeeves limit 50
/jeeves defaults threshold 35
/jeeves defaults limit 80
Threshold: 20 to 90, default 40. Limit: 1 to 100, default 30. /jeeves help lists everything, and the full README has the rest.
Your data
All local, in a folder outside your repo: the task prompt, the handovers, git facts, and a redacted log of commands and edited file names. No transcript copies, no copies of your files.
Auto-started tasks that never hand over are deleted after 7 days. /jeeves purge --all nukes everything.
Beta, so honestly...
macOS is supported. Linux should work, but I haven't tested it.
On a Claude Team account it runs in a more limited turn mode. The README explains.
A handover is one extra Claude turn. Jeeves himself makes no model calls.
It relies on Claude Code letting a plugin run /clear. Works on 2.1.319, it's in the typed plugin API, but it's not documented as a supported use and could change. If it does, you get assisted mode and Jeeves says so.
Break it for me
If a handover looks wrong, or the status line stops without a good reason, open an issue. That's genuinely the most useful thing you can do for a beta.
Finish your coffee. Jeeves has it from here... and unlike a certain other assistant, he never needs a coffee break ☕
That about wraps it up! 🎩
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.