Claude Code's Async Tools: Turn Waiting Test Runs Into Task IDs and Notifications
Teams using Claude Code in interactive or CI workflows can stop blocking the model on long commands and start parallel work. Getting the choice wrong is costly: async adds task management, cache misses, and permission overhead, and the token bill collects the difference.
Claude Code's async tools change the semantics of tool calls from blocking function calls to task submission. Instead of running `npm test` synchronously and freezing the conversation, a model can call `Bash` with `run_in_background: true`, get a task ID immediately, and move on to other modules. When the process exits, the harness injects a notification, and the model reads the output from disk with `Read`. The same pattern extends to subagents, which are background by default, and to event monitoring, cron scheduling, and scripted Workflows.
Each form has its own constraints: background tasks cap output at 5GB, die with the session, and default to 30 minutes unattended; Monitor streams every line but has a 5-minute default deadline; CronCreate only fires in an idle REPL and expires recurring jobs after 7 days. The scheduling guidance also exposes a cost dimension most agent frameworks ignore: a 5-minute prompt-cache TTL means a wake-up after 300 seconds rereads the full context uncached, so the recommended heartbeat is 1200–1800 seconds. Workflow is the heaviest option and requires explicit user opt-in; most teams should master background Bash and TaskStop before orchestrating dozens of agents.
Claude Code's protocol-level shift from `tool_result` payloads to task handles is what actually enables the model to do other work; shell `&` alone never gave the harness a way to re-invoke the model on completion.
The `ScheduleWakeup` guidance treats a model wake-up as a priced event: waiting 300 seconds is worse than both shorter and much longer intervals because it misses the 5-minute prompt cache without amortizing the miss. That is a cost model most agent schedulers don't have.
The hard rule against fabricating pending agent results closes the 'hallucinated completion' hole at the protocol layer, a stronger guarantee than relying on the model to be honest about what it knows.
Version 2.1.304's default flip for `ToolSearch` broke configurations where the platform rejects the search, and 2.1.305 had to add a retry path. Default changes in agent tooling can silently become hard failures for gateway users.
Starting with background Bash and `TaskStop` before adopting Workflow is the practical order; multi-agent orchestration is a later layer, not the first one.