
Why One Gemini Prompt Uses Multiple Requests — and What Each One Costs
One prompt is not one model call. Agent tools send your context, call tools, and retry — several model requests per prompt. Where that's metered, why small tasks can exhaust a request quota, and how to measure your own sessions.
You type one short prompt. Later, the tool says you've used a chunk of your daily quota — or, on pay-as-you-go, a charge noticeably bigger than the answer deserved. The gap between "what I typed" and "what got metered" is not a bug. It's the shape of how coding agents work, and understanding it is the difference between a quota that lasts a working day and one that's gone by lunch.
One prompt is not one model call
A modern coding agent loops. Each turn of the loop is a separate model request, and one prompt routinely triggers several of them. Google documents this directly for the Gemini CLI and Gemini Code Assist agent mode: "When in agent mode or when using the Gemini CLI, one prompt might result in multiple model requests," and the daily request limits are aggregated across all model versions used (Google Cloud, "Quotas and limits", checked 2026-09-17).
The loop typically looks like this:
you type one prompt
├─ model request 1: read the plan + tool definitions, decide the next step
├─ model request 2: after the first file read, process its contents
├─ model request 2: after an edit, decide verification
├─ tool executions (shell commands, tests) — between requests, not inside them
└─ model request N: produce the final summary
The same pattern exists across tools, with different accounting. Anthropic's Claude Code documentation explains that every request carries the full conversation, and each tool use sends another request carrying that batch of tool results — so a one-line question in a session that has been open all day still draws usage for the whole conversation (Anthropic, "Manage costs effectively", checked 2026-09-17).
Connect the Claude or Codex you already pay for — the rest runs on workers that cost a fraction.
Download meshcode →What gets metered, and where the counters live
Not every agent meters the same unit. What your session consumes depends on how you authenticated and which product surface you're on:
| Surface | Usually metered per | Daily cap style | Reset behavior |
|---|---|---|---|
| Gemini CLI, Google-account login (Code Assist for individuals) | model requests | yes — a request count per user per day | daily, on Google's clock |
| Gemini CLI, Google AI Pro / Ultra subscription | model requests | yes — higher counts per plan | daily |
| Gemini API key (free tier) | requests + tokens | yes — request and token-per-minute limits, plus daily caps | daily quota resets at midnight Pacific time; per-minute limits reset every minute |
| Gemini API key (paid tiers) | tokens (billed) + rate limits | spend-based limits on a rolling 10-minute window | rolling window |
| Claude Code, API key | tokens (billed) | no fixed daily cap — billed per token | n/a |
| Claude Code, subscription (Pro/Max) | plan usage | yes — a rolling five-hour window and a weekly window | rolling |
The numbers in each vendor's docs move; the shape doesn't. Google's Gemini API docs list requests per minute, tokens per minute, and requests per day as the three standing dimensions, and note that exceeding any one of them triggers a rate-limit error — hitting any single one blocks you even if the others have headroom (Google AI, "Rate limits", checked 2026-09-17).
Two consequences worth internalizing:
A small prompt can be an expensive one. The cost scales with what the agent does — files read, edits, verification runs, retries — not with how short your sentence was. An agent that reads ten files before answering has made ten requests' worth of context-carrying work, on top of the visible one.
Retries and errors are part of the loop too. A request that fails with a rate-limit error may still have consumed the per-minute or per-request budget that produced it (whether a failed request is billed depends on the vendor and surface — treat it as "probably yes for per-minute limits, check your bill" rather than assuming either way).
An illustrative trace (template, not a real log)
To make the loop concrete, here's what a typical small task can look like. This is an illustrative shape for you to compare against your own telemetry — not a measurement of any real session:
prompt: "add input validation to the login function" (illustrative)
├─ req 1 plan + read tool schemas ~2k tokens in
├─ tool: read auth.ts (150 lines)
├─ req 2 process file + propose edit ~20k tokens in
├─ tool: apply edit
├─ req 3 verification pass ~25k tokens in
├─ tool: run test file
└─ req 4 summarize results ~30k tokens in
The visible prompt was one line. The metered activity was four model requests, each carrying the accumulated context, plus four tool executions. On a request-count quota, that's 4 of your day. On a token-metered plan, requests 2 through 4 re-read much of the same context each time — that's where the real cost sits. In Claude Code, the docs point out that each time Claude uses tools it sends another request carrying the whole conversation, so usage climbs with session length even when your prompts stay short.
Measure your own sessions (checklist + record table)
Vendors expose enough telemetry to stop guessing. What to check, per tool:
- Gemini CLI: run
/stats modelduring a session — it shows the session's token usage and the limits associated with your current quota (per the CLI's own docs, checked 2026-09-17). - Claude Code: run
/usage— the Session block shows token counts and cost per model, plan subscribers see plan-usage bars, and the Prompt cache line shows how much of the input came from cache./insightsanalyzes patterns across sessions. - Any agent: check whether it logs per-request token counts (many write a session transcript or debug file you can grep).
Then record what you find, so the numbers stop being anecdotes:
| Session | Task type | Your prompts | Model requests metered | Failed/retried requests | Tokens in / out | What surprised you |
|---|---|---|---|---|---|---|
Fill it across a few real sessions and you'll know your ratio of prompts to requests — which is the number every quota explanation above is hiding behind. If your tool doesn't expose request counts, write "N/A" in that column rather than estimating: an honest N/A beats a confident fiction.
What to do with this
Budget in requests, not prompts. If your plan says 1,000 requests a day, and a medium coding task costs a handful, budget accordingly — a "prompt" is not the unit you're spending.
Keep context lean on purpose. The loop's later requests re-send earlier context. Sessions that stay small stay cheap; sessions that accrete a day's worth of history make every subsequent turn expensive. Compacting or starting fresh when a task ends is cheaper than carrying history into unrelated work.
Route by task weight, not by habit. Mechanical edits and boilerplate don't need your scarcest quota. Saving frontier requests for work that needs them is the whole game — which is also the argument for running a cheap metered model alongside your agent of choice, instead of letting every small task draw from the same daily pool.
meshcode runs multiple agents in parallel panes, so you can point mechanical tasks at a cheaper meter and keep the scarce daily requests for the work that needs them — each tool connected with its own account, under its own limits.
Related: why the caps aren't one number across Gemini surfaces · what AI coding agents cost per token · how to reduce token usage in Claude Code.
More from the blog
Whole Repo vs. Targeted Context: a Reproducible Cost Experiment You Can Run
Does feeding the whole repository to your coding agent cost more than passing only the relevant files? Here's a rigorous experiment design — worktrees, matched tasks, honest bookkeeping — you can run on your own stack.
Barely Used Gemini CLI but Hit the Limit? Diagnose the Code Assist Shared Quota
When your Gemini CLI quota dies early, the cause is usually not your account — it's which meter you're on. How to tell the free consumer plan, CLI Google login, and API-key paths apart, understand the shared-quota structure, and recover without rotating accounts.
How to Run Claude Code and Codex in Parallel on One Repo (Git Worktrees, Step by Step)
Run Claude Code and Codex on the same repository at once without them overwriting each other: one git worktree per agent, scoped briefs, and a safe merge. Step by step.