You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After an agent makes a lone tmux tool call that could have travelled in a batch, deliver a
short system-reminder-style nudge encouraging it to batch next turn — the way
claude-in-chrome nudges toward browser_batch after a single MCP call:
You used a single tool call this turn. Prefer tmux_batch to execute multiple actions in
one call — it is significantly faster. Batch your next sequence of sends, waits, captures,
and layout changes together.
This is the runtime, in-loop counterpart to the tmux_batch front door (#101): the tool
gives the agent something to reach for; the reminder teaches it to actually reach.
Why
Every MCP tool call is a round-trip and an agent turn. The batch surface exists — and under
engine-ops (#87) it is genuinely powerful, with two levels of folding/pipelining — but
agents rarely find or use it. The generic wrappers appear in no server instructions
segment, and nothing at runtime points an agent back toward batching once it has fallen into
one-call-at-a-time behavior. Every reactive string the server emits today is error-path only
(bad-argument suggestions, tier denials, per-op batch rejections); none fires on a clean
single call. Static docs do not change in-loop habits; a per-call reminder does.
Desired behavior (acceptance)
After a qualifying single (non-batch) tmux call, the agent receives brief guidance —
delivered as guidance, not an error — that names the concrete batch tool to use.
The ask
After an agent makes a lone tmux tool call that could have travelled in a batch, deliver a
short system-reminder-style nudge encouraging it to batch next turn — the way
claude-in-chrome nudges toward
browser_batchafter a single MCP call:This is the runtime, in-loop counterpart to the
tmux_batchfront door (#101): the toolgives the agent something to reach for; the reminder teaches it to actually reach.
Why
Every MCP tool call is a round-trip and an agent turn. The batch surface exists — and under
engine-ops (#87) it is genuinely powerful, with two levels of folding/pipelining — but
agents rarely find or use it. The generic wrappers appear in no server
instructionssegment, and nothing at runtime points an agent back toward batching once it has fallen into
one-call-at-a-time behavior. Every reactive string the server emits today is error-path only
(bad-argument suggestions, tier denials, per-op batch rejections); none fires on a clean
single call. Static docs do not change in-loop habits; a per-call reminder does.
Desired behavior (acceptance)
delivered as guidance, not an error — that names the concrete batch tool to use.
execute_plan/build_workspace)when
LIBTMUX_MCP_ENGINE_OPS=1; otherwisesend_keys_batch/call_*_tools_batch(ortmux_batchoncetmux_batch: one discoverable front door for multi-action batches #101 lands).reminder never forces a batch or rejects a single call.
suppression are for the implementer).
Non-goals
tmux_batch: one discoverable front door for multi-action batches #101; this issue only adds the reactive nudge toward it.Prior art / relationship
self-location through static instruction segments frozen at import — not a post-call
adaptive reminder. wait_for_channel and signal_channel block the FastMCP event loop (sync subprocess.run) #18 merely quotes Claude Code's own client-side MCP-disconnect message.
send_keys_batch),Add tier-aware MCP tool batching #79 (
call_*_tools_batch), Typed tmux operation chains #81 (run_tmux_operations), feat: opt-in engine-ops chained plan tools and watchers #87 (engine-ops plan tools), andthe
tmux_batchfront door (tmux_batch: one discoverable front door for multi-action batches #101).