On June 15, Claude's claude -p (headless mode) and the Agent SDK stop drawing from your subscription and move to a separate metered credit. If you've built a pile of claude -p scripts, the news probably landed with a small jolt — I've written plenty of them myself, and "wait, all of that is metered now?" was my first reaction too.
But step back and it's not really one company's pricing decision. The whole industry is converging on the same shape:
- GitHub Copilot moved to AI Credits on June 1 (completions stay free; Chat, CLI, and agents consume credits)
- OpenAI Codex pairs seat pricing with credits + API usage
- And Claude, on June 15, splits headless and the SDK onto a separate credit
The shape they all landed on is the same: interaction stays flat-rate, automation gets metered.
This post is about how to read that, and what to actually do with your claude -p scripts. It comes from a few months of running a "multi-agent inside interactive sessions" setup day to day.
One thing up front: this is not a billing-evasion hack. The conclusion isn't "go back to doing everything by hand," and it isn't "keep everything headless" — it's a redesign that sits between the two.
— that said, if you opened this because you want to know "so can I keep doing my claude -p stuff inside the flat-rate plan?", some of the recipes below do read that way. Terms and pricing lines can shift, so check the current conditions and use your own judgment. My argument is "because it's a better setup," not "because it's cheaper" — but either door is fine.
Why everyone converged on the same shape
If you want the broader picture, frames what survives the meter. The gist:
Old-style completion was short output, and flat-rate worked. Agentic tools are different. Behind one user request, a flood of tokens: read the repo, search files, run tests, patch. The cost gap between a light user and a heavy user became extreme — flat-fee misses the real token cost of a heavy user by up to 10x — and "unlimited flat-rate for everyone" stopped being mathematically sustainable. The same shift that happened when cloud went from "server rent" to "metered usage" is now happening to LLM tokens.
Overlay how each vendor drew its line and something interesting shows up: usage where a human is at the screen (interaction) stays flat-rate; usage where the human steps away (headless, SDK, CI) goes metered.
The reason is simple — interaction is throughput-capped. A human reads, thinks, types. One session's consumption tops out at human speed. Headless can be called in a loop, without bound. The pricing is the answer to "which kind of usage can a flat rate actually support," and at the same time it's a statement about which usage the platform will structurally favor.
So the thing June 15 quietly tells you: the economically durable surface is inside the interactive session.
Was your claude -p really an "unattended" job?
Looking back, a fair amount of what I ran through claude -p didn't strictly need to be unattended. I wanted a second agent's opinion while I was working. I wanted a review from a different model. I wanted a refactor running in parallel on another model — and in every case I was right there. But there was no channel between sessions, so I had two options: be the copy-paste courier myself, or write claude -p into a script to bridge them.
This is a common thing in how a stack matures: when a part is missing, the neighboring part carries its role. While agent-to-agent messaging didn't exist, headless calls and glue scripts carried that weight — headless wasn't the wrong tool, it was the only channel.
Now that the missing part is filling in, you can redraw the division of labor. The response to June 15 isn't only "budget for headless credits" (some jobs genuinely need it — more below); it's also moving the carried-over work back to where it belongs, and leaving claude -p only the jobs that truly have to be headless. If agents can talk to each other directly inside interactive sessions, you need neither the courier nor the bridge script.
The channel I built for that is agmsg — a messaging layer that runs on nothing but bash + SQLite, letting Claude Code / Codex / Gemini CLI / Copilot CLI sessions form a team and message each other. No daemon, no network, not MCP. And the key part: send and receive both run inside your normal interactive sessions, through a hook. No claude -p, no SDK.
). The Claude Code that implemented the fix and a separate session that verified it in a Debian container handled the whole thing — request → environment details → verification results → merge report — over agmsg messages, and it went from report to merge in six hours (
SOCIAL SHARE CARD GENERATOR