What happens at each level
Last Call checks the battery on every prompt and tool call. It usually takes a few milliseconds, never touches the network, and if anything goes wrong it steps aside and lets the tool run.
Every agent is told the battery level and asked to finish the current step without starting long jobs: builds, full test suites, subagent fan-outs.
Subagents and long commands are blocked. The agent is told to write .lastcall/HANDOFF.md with what was done, what is in flight, the exact next steps and the files touched, commit to a lastcall/wip branch without pushing, and stop.
Every tool is blocked except writing the handoff note and a short list of local git commands (status, diff, add, commit, stash, a lastcall/wip branch). No push, no reset, no chaining. Saving the record is the only thing left to do.
Plugged in, it all clears. No messages, no blocks. On a Mac with no battery, Last Call stays out of the way until you pick Wrap up all agents now. Thresholds live in ~/.lastcall/config.
Questions
- Does it move my sessions to another machine?
- No. It keeps the record so you can pick up anywhere. On the same Mac, run
claude --resume. Anywhere else, pull the lastcall/wip branch and start a session that reads .lastcall/HANDOFF.md. - Will it break my existing hooks?
- No. The installer backs up ~/.claude/settings.json and adds its three entries next to yours. If the file is not valid JSON, it stops before changing anything. If the hook cannot read the battery or its input, the tool runs as normal and the reason goes to ~/.lastcall/lastcall.log.
- What is enforced, and what is guidance?
- Blocking is enforced by the hook: at 10% subagents and long commands are refused, and at 5% every tool except the handoff note and git is refused. The model does not get a vote. Long commands at 10% are recognized by name (installs, builds, test runs, docker, make, long sleeps and similar, also behind env, time or sh -c), so an unusual command or a custom script can slip through. At 5% the rule is an exact allowlist: the handoff note, and one plain local git command at a time with no shell syntax. Push, reset, clean, rebase and the rest are refused. Writing the handoff and committing are instructions the agent is given; a good model follows them, but Last Call does not write or commit anything itself. If there is nothing to commit, it will not commit.
- Does it push my code anywhere?
- No. The commit stays on a local branch, and at 5% git push is refused. Pushing is up to you.
- Can I try it without draining my battery?
- Start a session with
LASTCALL_FAKE_BATTERY=8 claude, or pick Wrap up all agents now from the menu bar. - How do I remove it?
curl -fsSL https://lastagentcall.com/uninstall.sh | bashremoves the hook entries, the app and ~/.lastcall, and leaves your other settings as they were.- How do I know the installer got the right files?
- When piped through curl, install.sh checks every file it downloads against SHA256SUMS and installs nothing on a mismatch. That catches broken or mismatched downloads. The list is served from this site too, so to check provenance, compare it with the copy in the GitHub repo, or install from a checkout.
- How is the install count measured?
- The installer downloads the hook script from this site, and nothing else downloads it, so the site counts those downloads, at most one per network per day. The count is a salted hash of the day and the network address; the address itself is not kept, and nothing about you or your Mac is sent. Runs from a checkout are not counted. Installs from launch on September 26 to October 2, 2026 were counted the same way from Vercel's recorded request data for that file, never estimated, and the details are in backfill.json in the repo. Our own test machines are left out. The number shows here once it is more than a handful.
- What does it cost?
- Nothing. MIT licensed.