[{"data":1,"prerenderedAt":852},["ShallowReactive",2],{"blog-gemini-cli-en":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":36,"cover":120,"og":121,"expertise":122,"locales":123,"lang":124,"title":127,"description":128,"coverAlt":129,"metaTitle":130,"takeaways":131,"faq":137,"toc":150,"blocks":178,"others":583},"gemini-cli","2026-10-07",9,"agents",[9,10,11,12,13],"Terminal agent","Gemini","MCP","Sandboxing","Data protection",[15,16,17,18,19,20,21,22],"gemini cli","gemini cli free tier","gemini cli pricing","gemini cli data privacy","gemini cli vs claude code","antigravity cli","gemini cli github action","gemini cli sandbox",[24,27,30,33],{"name":25,"url":26},"Gemini CLI","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli",{"name":28,"url":29},"Vertex AI","https:\u002F\u002Fcloud.google.com\u002Fvertex-ai",{"name":31,"url":32},"Apache License","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApache_License",{"name":34,"url":35},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io",[37,40,43,46,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117],{"title":38,"url":39},"Google Developers Blog: transitioning Gemini CLI to Antigravity CLI","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fan-important-update-transitioning-gemini-cli-to-antigravity-cli\u002F",{"title":41,"url":42},"Gemini CLI: quotas and pricing","https:\u002F\u002Fgeminicli.com\u002Fdocs\u002Fresources\u002Fquota-and-pricing\u002F",{"title":44,"url":45},"Gemini CLI: licence, terms of service and privacy notices","https:\u002F\u002Fgeminicli.com\u002Fdocs\u002Fresources\u002Ftos-privacy",{"title":47,"url":26},"GitHub: google-gemini\u002Fgemini-cli, the repository and README",{"title":49,"url":50},"Gemini CLI changelog: v0.63.0 released 6 October 2026","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fchangelogs\u002Flatest.md",{"title":52,"url":53},"Gemini CLI reference: flags and approval modes","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fcli\u002Fcli-reference.md",{"title":55,"url":56},"Gemini CLI configuration: settings.json and approval defaults","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fconfiguration.md",{"title":58,"url":59},"Gemini CLI sandboxing","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fcli\u002Fsandbox.md",{"title":61,"url":62},"Gemini CLI: context files (GEMINI.md)","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fcli\u002Fgemini-md.md",{"title":64,"url":65},"Gemini CLI: MCP servers","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Ftools\u002Fmcp-server.md",{"title":67,"url":68},"Gemini API Additional Terms of Service","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fterms",{"title":70,"url":71},"Gemini Developer API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":73,"url":74},"Gemini Code Assist FAQs","https:\u002F\u002Fdocs.cloud.google.com\u002Fgemini\u002Fdocs\u002Fcodeassist\u002Ffaqs",{"title":76,"url":77},"Vertex AI data governance and zero data retention","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Fdata-governance",{"title":79,"url":80},"Vertex AI data residency","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Flearn\u002Fdata-residency",{"title":82,"url":83},"Vertex AI locations and endpoints","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Flearn\u002Flocations",{"title":85,"url":86},"run-gemini-cli: the GitHub Action for Gemini CLI","https:\u002F\u002Fgithub.com\u002Fgoogle-github-actions\u002Frun-gemini-cli",{"title":88,"url":89},"Antigravity CLI migration guide","https:\u002F\u002Fantigravity.google\u002Fdocs\u002Fcli\u002Fgcli-migration",{"title":91,"url":92},"Claude pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":94,"url":95},"Claude Code: data usage","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fdata-usage",{"title":97,"url":98},"Claude Code: setup and plan requirements","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsetup",{"title":100,"url":101},"Claude Code: permission modes","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fpermission-modes",{"title":103,"url":104},"Claude Code: sandboxing","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsandboxing",{"title":106,"url":107},"Claude Code licence (LICENSE.md)","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FLICENSE.md",{"title":109,"url":110},"OpenAI Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":112,"url":113},"OpenAI Codex CLI repository","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex",{"title":115,"url":116},"Codex: agent approvals and security","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fagent-approvals-security",{"title":118,"url":119},"Codex: sandboxing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fconcepts\u002Fsandboxing","\u002Fimages\u002Fblog\u002Fgemini-cli\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgemini-cli\u002Fog.jpg","ai-engineer",[124,125,126],"en","de","hu","Gemini CLI review: open source, but no longer free for individuals","Gemini CLI stays Apache-2.0 and gets releases, but the free individual route closed on 18 June 2026. What remains: Code Assist, billed API keys and Vertex AI.","A tall wall with three narrow gates, the left blocked, and an arrow bending to the middle.","Gemini CLI review: open, but no longer free · Balázs Csorba",[132,133,134,135,136],"Gemini CLI is still Apache-2.0 and still maintained (v0.63.0 on 6 October 2026), but since 18 June 2026 it no longer serves Google AI Pro or Ultra users or free individual Code Assist users.","For a company, the realistic routes are a Code Assist Standard or Enterprise licence, with 1,500 or 2,000 requests per user a day, or a billed Gemini API or Vertex AI key.","Your data terms follow the route: a billed key does not use prompts to improve products, Code Assist does not train on your data without permission, and the unpaid API tier may be used to improve Google's products.","For EU residency, start from Vertex AI's EU multi-region endpoint, because an endpoint alone does not guarantee residency or in-region processing.","The sandbox applies only when you switch it on, and the default macOS profile still allows broad file reads and network access.",[138,141,144,147],{"q":139,"a":140},"Can I still use Gemini CLI for free?","Not as an individual. The CLI's quota page says the unpaid tier and Google One users were replaced by Antigravity CLI on 18 June 2026, so the free rows it still lists are out of date. I did not verify Antigravity CLI's own limits, so check Google's pages before you plan around them.",{"q":142,"a":143},"Does Gemini CLI train on my code?","It depends on the route. Under Code Assist Standard and Enterprise, Google does not use your data to train its models without permission. Under a billed Gemini API key, prompts and responses are not used to improve products. Under the unpaid API tier, Google may use what you submit to improve products, and human reviewers may read it.",{"q":145,"a":146},"What does a call cost on the paid API?","On Google's pricing page, as of October 2026, Gemini 3.1 Pro Preview is listed at $2.00 per million input tokens and $12.00 per million output tokens, with thinking tokens billed as output. At that listed rate, a call with a 10,000-token prompt and a 1,000-token answer costs about $0.03, and an agent session makes many calls. The page sets separate rates around a 200,000-token prompt, so check the rate for your prompt size.",{"q":148,"a":149},"Is the CLI open source?","Yes. The code is licensed under the Apache License 2.0, as the LICENSE file states. The licence covers the code, not the models or the quotas, which Google sets separately.",[151,154,157,160,163,166,169,172,175],{"id":152,"title":153},"what-it-is","What it is",{"id":155,"title":156},"how-it-works","How it works",{"id":158,"title":159},"getting-started","Getting started",{"id":161,"title":162},"approvals-and-sandbox","Approval modes and the sandbox",{"id":164,"title":165},"context-mcp-and-actions","Context, MCP and the GitHub Action",{"id":167,"title":168},"cost-and-deployment","Cost and data protection",{"id":170,"title":171},"where-it-falls-short","Where it falls short",{"id":173,"title":174},"verdict","Verdict",{"id":176,"title":177},"sources","Sources",[179,183,186,189,192,217,224,225,228,234,237,238,241,244,247,248,251,273,282,283,286,289,292,293,296,360,363,366,374,375,378,400,401,404,458,489,495,496],{"type":180,"content":181},"paragraph",[182],"Gemini CLI is Google's open-source terminal agent, and it is no longer the free tool that its README still describes. Use it if your company already holds a Code Assist Standard or Enterprise licence, or if your platform team runs Gemini through billed API keys, including Vertex AI in the EU. Do not use it as a free personal agent: since 18 June 2026, Google has moved individual users to Antigravity CLI.",{"type":180,"content":184},[185],"This review covers what the CLI does, which routes still exist in October 2026, what each route does with your code, and how it compares with Claude Code and Codex CLI. I opened the Google, Anthropic and OpenAI pages on 10 October 2026. Where I could not confirm a figure – such as a Code Assist seat price – I left it out.",{"type":187,"level":188,"id":152,"text":153},"heading",2,{"type":180,"content":190},[191],"Gemini CLI is an npm package that runs an agent in your terminal. It reads your project, runs shell commands, edits files, searches the web through Google Search grounding and calls MCP servers. The code is Apache License 2.0, the latest stable release is v0.63.0 from 6 October 2026, and the README says the Gemini 3 models have a 1M-token context window.",{"type":193,"ordered":194,"items":195},"list",false,[196,202,207,212],[197,201],{"tag":198,"children":199},"strong",[200],"Install. ","npm install -g @google\u002Fgemini-cli, Homebrew or npx.",[203,206],{"tag":198,"children":204},[205],"Built-in tools. ","Google Search grounding, file operations, shell commands and web fetching.",[208,211],{"tag":198,"children":209},[210],"Extensions. ","MCP servers over stdio, SSE or Streamable HTTP, plus GEMINI.md context files.",[213,216],{"tag":198,"children":214},[215],"Automation. ","Headless mode with -p, a JSON output format and a GitHub Action.",{"type":218,"variant":219,"title":220,"body":221},"callout","warn","The free route closed on 18 June 2026",[222],[223],"Google's quota page says the unpaid tier and Google One users were replaced by Antigravity CLI on that date. The repository README still describes a free personal login with 1,000 requests a day and does not mention the change. For planning, trust the dated Google pages over the README.",{"type":187,"level":188,"id":155,"text":156},{"type":180,"content":226},[227],"Each request follows one loop. The prompt goes to the model, which asks for tools when it needs them. The approval mode decides whether a tool call runs at once or waits for you, and if you switched the sandbox on, the call runs inside it before it touches the project. The result returns to the model, and the loop repeats until the answer is ready.",{"type":229,"src":230,"alt":231,"wide":232,"caption":233},"image","\u002Fimages\u002Fblog\u002Fgemini-cli\u002Fdiagram-8.webp","One tool call, two checks A prompt goes to the Gemini model, which requests a tool call. The tool call passes the approval gate and then the sandbox before it reaches the project files. The result returns to the model, which continues the loop until it can answer.",true,"Each tool call passes the approval gate and the sandbox before it can change a file in the project.",{"type":180,"content":235},[236],"Two inputs sit beside that loop. GEMINI.md files are read from several locations and concatenated, so a global file and a project file both shape the model's behaviour. MCP servers add their tools to the same loop, as the next section explains.",{"type":187,"level":188,"id":158,"text":159},{"type":180,"content":239},[240],"Start with a key from a Cloud project with active billing. The unpaid tier has been moved off the CLI, and billed access counts as a paid service under Google's terms. Set GEMINI_API_KEY, then run one task non-interactively with -s, which enables the sandbox that tools.sandbox names in settings.json.",{"type":242,"code":243},"code","npm install -g @google\u002Fgemini-cli\nexport GEMINI_API_KEY=\"key-from-a-billed-project\"\ngemini -s -p \"Run the test suite and summarise the failures\" --output-format json",{"type":180,"content":245},[246],"The JSON output returns the response with usage statistics, so a script can record what each run used. Since v0.63.0, non-interactive runs can also carry out multi-step plans on their own. Keep the sandbox on for unattended runs.",{"type":187,"level":188,"id":161,"text":162},{"type":180,"content":249},[250],"The approval mode decides which tool calls run without asking. The yolo mode can be set only on the command line, and the older --yolo flag is deprecated in favour of --approval-mode=yolo.",{"type":193,"ordered":194,"items":252},[253,258,263,268],[254,257],{"tag":198,"children":255},[256],"default: ","prompts for approval before tool actions.",[259,262],{"tag":198,"children":260},[261],"auto_edit: ","approves the edit tools automatically.",[264,267],{"tag":198,"children":265},[266],"plan: ","read-only, for research and planning before any change.",[269,272],{"tag":198,"children":270},[271],"yolo: ","approves everything, so use it only inside a sandbox.",{"type":180,"content":274},[275,276,281],"The sandbox is opt-in. Switch it on with -s, the GEMINI_SANDBOX variable or tools.sandbox, and choose macOS Seatbelt (sandbox-exec), Docker, Podman, runsc or LXC. The default Seatbelt profile, permissive-open, denies operations by default and confines writes to the project directory, but it allows broad file reads and network access. Treat it as a write fence, not a network fence. For unattended runners, the ",{"tag":277,"to":278,"children":279},"link","\u002Fblog\u002Fsandboxing-coding-agents-ci-checklist",[280],"AI agent sandbox checklist"," covers the rest.",{"type":187,"level":188,"id":164,"text":165},{"type":180,"content":284},[285],"GEMINI.md is the cheapest way to keep rules in one place. The CLI reads context files from several locations, so a file under ~\u002F.gemini and a file in the project both apply. Antigravity CLI keeps reading that file, and its migration guide also reads AGENTS.md, so existing project rules should carry over.",{"type":180,"content":287},[288],"MCP servers are declared under mcpServers in settings.json, each with a command, arguments and environment variables. A server that can write to a ticket system or a repository is a case for default approval rather than yolo, and I would test which prompts it triggers before relying on it.",{"type":180,"content":290},[291],"The run-gemini-cli action brings the CLI into GitHub workflows for pull request reviews, issue triage and @gemini-cli comments that ask for changes. On the Google side it accepts a Gemini API key or Workload Identity Federation; on the GitHub side, the default GITHUB_TOKEN or a custom GitHub App, which the README recommends. Its setup text still describes an AI Studio key with free quotas, so use a billed key instead. Code Assist for GitHub takes no new installs on GitHub organisations from 18 June 2026, but the version bought through Google Cloud is unchanged.",{"type":187,"level":188,"id":167,"text":168},{"type":180,"content":294},[295],"There is nothing to self-host. The CLI runs on your machine and sends each request to a Google endpoint, so the price and the data terms follow the route, not the tool. The table lists each route as Google's pages describe it in October 2026. Grounding with Google Search is metered separately on the API: 5,000 requests a month are free across Gemini 3 and newer models, then $14 per 1,000. Output prices include thinking tokens, and the pricing page changes rates with prompt size.",{"type":297,"head":298,"rows":307},"table",[299,301,303,305],[300],"Route",[302],"Price",[304],"Quota per user a day",[306],"Data use",[308,317,326,334,343,351],[309,311,313,315],[310],"Google account: AI Pro, Ultra or free individual",[312],"Ended for the CLI on 18 June 2026",[314],"Not applicable",[316],"Moved to Antigravity CLI",[318,320,322,324],[319],"Code Assist Standard",[321],"Per-user licence (price not verified)",[323],"1,500 requests",[325],"No training without your permission",[327,329,330,332],[328],"Code Assist Enterprise",[321],[331],"2,000 requests",[333],"As Standard, under Google Cloud terms",[335,337,339,341],[336],"Gemini API key, billed project",[338],"$2.00 in, $12.00 out per million tokens (Gemini 3.1 Pro Preview)",[340],"Varies",[342],"Prompts and responses not used to improve products",[344,346,348,349],[345],"Vertex AI, billed",[347],"Pay per token, regional or multi-region endpoint",[340],[350],"No training without prior permission; in-memory cache up to 24 hours unless disabled",[352,354,356,358],[353],"Unpaid Gemini API key",[355],"Free",[357],"250 listed on the quota page",[359],"Used to improve products; human review possible",{"type":180,"content":361},[362],"The data terms are where the routes really differ. Under the unpaid Gemini API terms, Google uses what you submit to provide, improve and develop products and machine-learning technologies. Human reviewers may read, annotate and process input and output after it is disconnected from your account, key and project, and Google asks you not to send sensitive, confidential or personal data there. The paid terms say prompts and responses are not used to improve products, and paid use is processed under Google's Data Processing Addendum.",{"type":180,"content":364},[365],"Code Assist Standard and Enterprise follow Google Cloud's terms, and the FAQ says Google does not train its models on your data without permission. Vertex AI adds a training restriction for all managed models on Gemini Enterprise Agent Platform, including pre-GA models. Its data-residency page separates data at rest from ML processing. The EU multi-region endpoint keeps ML processing inside EU member states and excludes the UK and Switzerland.",{"type":180,"content":367},[368,369,373],"Google's locations page says endpoints do not guarantee data residency or in-region ML processing, so choose the endpoint on purpose. Two Vertex defaults need a decision too. Published Gemini models cache inputs and outputs in memory for up to 24 hours by default, per project, and you can disable that. Standard Google Cloud terms allow prompt logging for abuse monitoring, and zero data retention needs an exception request. For the wider EU checklist, see ",{"tag":277,"to":370,"children":371},"\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[372],"GDPR LLM data residency: region controls, zero retention, EU options",".",{"type":187,"level":188,"id":170,"text":171},{"type":180,"content":376},[377],"The weaknesses are mostly about planning. The free route has gone, and the documentation lags behind it. The README still advertises a free personal login, the quota table still lists the closed rows, and the Action's setup still asks for a free key. Read the dated Google pages, not the README, and expect names to move: Vertex AI is now filed under Gemini Enterprise Agent Platform.",{"type":193,"ordered":194,"items":379},[380,385,390,395],[381,384],{"tag":198,"children":382},[383],"The sandbox is a write fence. ","The default macOS profile allows broad reads and network access, so an agent that runs shell commands can still make network calls.",[386,389],{"tag":198,"children":387},[388],"Per-minute limits are not published. ","The quota page gives daily figures but no per-minute numbers, so you cannot size a burst from it.",[391,394],{"tag":198,"children":392},[393],"Token bills are hard to forecast. ","Thinking tokens count as output, prices change with prompt size and agent sessions make many calls.",[396,399],{"tag":198,"children":397},[398],"Two gaps remain. ","I did not confirm Antigravity CLI's limits or data terms, or a per-user price for Code Assist.",{"type":187,"level":188,"id":173,"text":174},{"type":180,"content":402},[403],"Gemini CLI is worth adopting where a licence or a billed key is already in the budget. A company with Code Assist Standard or Enterprise gets an Apache-2.0 agent with approval modes, an opt-in sandbox, GEMINI.md, MCP and an Action. For a personal project the free route is gone, and I would not start there.",{"type":297,"head":405,"rows":413},[406,408,409,411],[407],"Question",[25],[410],"Claude Code",[412],"Codex CLI",[414,422,431,440,449],[415,417,419,421],[416],"Licence",[418],"Apache-2.0",[420],"Public repository, all rights reserved",[418],[423,425,427,429],[424],"Entry price",[426],"Billed key or Code Assist licence",[428],"Pro $17 a month billed yearly, $20 monthly; Max from $100",[430],"Free tier; Plus $20 a month; Pro from $100",[432,434,436,438],[433],"Sandbox",[435],"Opt-in: Seatbelt, Docker, Podman, runsc, LXC",[437],"Seatbelt on macOS; bubblewrap and socat on Linux and WSL2",[439],"On by default: Seatbelt, bubblewrap or the Windows sandbox",[441,443,445,447],[442],"Approval modes",[444],"default, auto_edit, plan, yolo",[446],"acceptEdits, plan and auto modes",[448],"read-only, Auto, CI preset",[450,452,454,456],[451],"Training on your data",[453],"Depends on the route",[455],"Consumer plans: used for training if the setting is on; commercial: no training unless you opt in",[457],"Not verified here",{"type":193,"ordered":194,"items":459},[460,465,469,474,482],[461,464],{"tag":198,"children":462},[463],"Adopt it if ","your company holds a Code Assist Standard or Enterprise licence and wants an Apache-2.0 agent with approval modes and an Action.",[466,468],{"tag":198,"children":467},[463],"a platform team already runs Gemini on Vertex AI in a billed project and needs an EU endpoint.",[470,473],{"tag":198,"children":471},[472],"Do not adopt it ","as a free personal agent. The individual route has closed, and Antigravity CLI is Google's path for that use.",[475,478,481],{"tag":198,"children":476},[477],"Pick ",{"tag":277,"to":479,"children":480},"\u002Fblog\u002Fclaude-code",[410]," if you would rather pay a monthly plan than tokens. Its free plan does not include Claude Code, so budget from Pro.",[483,485,488],{"tag":198,"children":484},[477],{"tag":277,"to":486,"children":487},"\u002Fblog\u002Fopenai-codex-cli",[412]," if you already pay for ChatGPT Plus and want a sandbox that applies by default.",{"type":218,"variant":490,"title":491,"body":492},"tip","Check which terms apply before you add a key",[493],[494],"A key from Google AI Studio falls under the paid terms when its account has a billing-enabled Cloud project or is a Workspace enterprise account. Check which terms your key falls under before the CLI or the Action uses it.",{"type":187,"level":188,"id":176,"text":177},{"type":193,"ordered":194,"items":497},[498,502,505,508,511,514,517,520,523,526,529,532,535,538,541,544,547,550,553,556,559,562,565,568,571,574,577,580],[499],{"tag":500,"href":39,"children":501},"a",[38],[503],{"tag":500,"href":42,"children":504},[41],[506],{"tag":500,"href":45,"children":507},[44],[509],{"tag":500,"href":26,"children":510},[47],[512],{"tag":500,"href":50,"children":513},[49],[515],{"tag":500,"href":53,"children":516},[52],[518],{"tag":500,"href":56,"children":519},[55],[521],{"tag":500,"href":59,"children":522},[58],[524],{"tag":500,"href":62,"children":525},[61],[527],{"tag":500,"href":65,"children":528},[64],[530],{"tag":500,"href":68,"children":531},[67],[533],{"tag":500,"href":71,"children":534},[70],[536],{"tag":500,"href":74,"children":537},[73],[539],{"tag":500,"href":77,"children":540},[76],[542],{"tag":500,"href":80,"children":543},[79],[545],{"tag":500,"href":83,"children":546},[82],[548],{"tag":500,"href":86,"children":549},[85],[551],{"tag":500,"href":89,"children":552},[88],[554],{"tag":500,"href":92,"children":555},[91],[557],{"tag":500,"href":95,"children":558},[94],[560],{"tag":500,"href":98,"children":561},[97],[563],{"tag":500,"href":101,"children":564},[100],[566],{"tag":500,"href":104,"children":567},[103],[569],{"tag":500,"href":107,"children":570},[106],[572],{"tag":500,"href":110,"children":573},[109],[575],{"tag":500,"href":113,"children":576},[112],[578],{"tag":500,"href":116,"children":579},[115],[581],{"tag":500,"href":119,"children":582},[118],[584,641,714,783],{"slug":585,"published":586,"minutes":587,"category":7,"tags":588,"keywords":593,"about":604,"sources":613,"cover":635,"og":636,"expertise":122,"locales":637,"lang":124,"title":638,"description":639,"coverAlt":640},"agent-tool-design-descriptions-errors","2026-10-17",11,[589,590,591,11,592],"AI agents","Tool use","Function calling","Agent design",[594,595,596,597,598,599,600,601,602,603],"agent tool design","writing tool descriptions for llm","function calling best practices","tool use error handling","mcp tool design","tool calling is_error","how many tools should an agent have","tool search defer_loading","agent computer interface","llm tool schema design",[605,608,610],{"name":606,"url":607},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":34,"url":609},"https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":611,"url":612},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[614,617,620,623,626,629,632],{"title":615,"url":616},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":618,"url":619},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":621,"url":622},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":624,"url":625},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":627,"url":628},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":630,"url":631},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":633,"url":634},"OpenAI API Docs: Function calling","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ffunction-calling","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fog.jpg",[124,125,126],"Designing tools for AI agents: names, descriptions, schemas and error messages","How to design agent tools that get picked and called correctly: task-shaped tools, descriptions, schemas, compact responses and errors a model can act on.","Three rectangular slots in a base, with a block of matching width lined up over the middle slot and two wrong-width blocks beside it.",{"slug":642,"published":586,"minutes":587,"category":7,"tags":643,"keywords":649,"about":662,"sources":672,"cover":708,"og":709,"expertise":122,"locales":710,"lang":124,"title":711,"description":712,"coverAlt":713},"coding-agents-legacy-codebase-migration",[644,645,646,647,648],"Legacy migration","Coding agents","Strangler fig","Testing","Code review",[650,651,652,653,654,655,656,657,658,659,660,661],"legacy code migration ai","coding agent legacy codebase","strangler fig pattern ai","characterization tests legacy code","ai code migration review","agent assisted refactoring","legacy modernization coding agent","differential testing migration","shadow traffic migration","ai code review gate","test harness before migration","llm code migration",[663,666,669],{"name":664,"url":665},"Legacy code","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLegacy_code",{"name":667,"url":668},"Characterization test","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCharacterization_test",{"name":670,"url":671},"Strangler fig pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStrangler_fig_pattern",[673,676,678,681,684,687,690,693,696,699,702,705],{"title":674,"url":675},"Martin Fowler: Strangler Fig (2024)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",{"title":677,"url":668},"Wikipedia: Characterization test",{"title":679,"url":680},"Google Research: Accelerating code migrations with AI (2024)","https:\u002F\u002Fresearch.google\u002Fblog\u002Faccelerating-code-migrations-with-ai\u002F",{"title":682,"url":683},"Ziftci et al.: Migrating Code At Scale With LLMs At Google (arXiv 2504.09691)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":685,"url":686},"Anthropic: Effective harnesses for long-running agents (2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":688,"url":689},"Anthropic: Redesigning source control at Anthropic (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fredesigning-source-control",{"title":691,"url":692},"METR: Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity","https:\u002F\u002Fmetr.org\u002Fblog\u002F2025-07-10-early-2025-ai-experienced-os-dev-study\u002F",{"title":694,"url":695},"Chand et al.: Why Industry Migrates and When It Trusts LLMs (ESEM 2026)","https:\u002F\u002Fdrops.dagstuhl.de\u002Fentities\u002Fdocument\u002F10.4230\u002FLIPIcs.ESEM.2026.85",{"title":697,"url":698},"Li et al.: Environment-in-the-Loop: Rethinking Code Migration with LLM-based Agents (arXiv 2602.09944)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2602.09944",{"title":700,"url":701},"AWS: Amazon Q Developer just reached a $260 million dollar milestone (2024)","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdevops\u002Famazon-q-developer-just-reached-a-260-million-dollar-milestone\u002F",{"title":703,"url":704},"OpenAI: Why SWE-bench Verified no longer measures frontier coding capabilities (2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fwhy-we-no-longer-evaluate-swe-bench-verified\u002F",{"title":706,"url":707},"GitHub Docs: About GitHub Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcoding-agent\u002Fabout-coding-agent","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fog.jpg",[124,125,126],"Migrating a legacy codebase with coding agents: a strangler fig playbook","How to use coding agents on a legacy migration: characterization tests first, one seam per task, review gates and differential verification.","A stack of slabs with the top two replaced by fresh ones beside a seam and a check.",{"slug":715,"published":586,"minutes":716,"category":7,"tags":717,"keywords":721,"about":733,"sources":743,"cover":777,"og":778,"expertise":122,"locales":779,"lang":124,"title":780,"description":781,"coverAlt":782},"background-agents-async-pr-workflow",12,[645,718,719,648,720],"Pull requests","CI","Automation",[722,723,724,725,726,727,728,729,730,731,732],"background coding agent","async coding agent","cloud coding agent pull request","copilot coding agent limits","codex cloud tasks","claude code cloud sessions","jules coding agent limits","agent pull request review","coding agent sandbox","agent CI gating","cost per merged pull request",[734,737,740],{"name":735,"url":736},"Software agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_agent",{"name":738,"url":739},"Pull request","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_version_control",{"name":741,"url":742},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[744,745,748,751,754,757,760,763,766,768,771,774],{"title":706,"url":707},{"title":746,"url":747},"GitHub Docs: Risks and mitigations for Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcloud-agent\u002Frisks-and-mitigations",{"title":749,"url":750},"OpenAI Developers: Codex cloud environments","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcloud\u002Fenvironments",{"title":752,"url":753},"Anthropic: Use Claude Code in the cloud","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fclaude-code-on-the-web",{"title":755,"url":756},"Google Jules: Limits and plans","https:\u002F\u002Fjules.google\u002Fdocs\u002Fusage-limits\u002F",{"title":758,"url":759},"Google Jules: Getting started","https:\u002F\u002Fjules.google\u002Fdocs\u002F",{"title":761,"url":762},"GitHub Docs: About protected branches","https:\u002F\u002Fdocs.github.com\u002Fen\u002Frepositories\u002Fconfiguring-branches-and-merges-in-your-repository\u002Fmanaging-protected-branches\u002Fabout-protected-branches",{"title":764,"url":765},"GitHub Docs: Models and pricing for GitHub Copilot","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fcopilot-billing\u002Fmodels-and-pricing",{"title":767,"url":110},"OpenAI Developers: Codex pricing",{"title":769,"url":770},"Ehsani et al.: Where Do AI Coding Agents Fail? An Empirical Study of Failed Agentic Pull Requests in GitHub (MSR 2026, arXiv 2601.15195)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.15195",{"title":772,"url":773},"Peralta et al.: Why Are Agentic Pull Requests Merged or Rejected? An Empirical Study (MSR 2026, arXiv 2605.22534)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.22534",{"title":775,"url":776},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fdora.dev\u002Fdora-report-2025","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fog.jpg",[124,125,126],"Background coding agents that open PRs: a practical async workflow","How async coding agents queue tasks, run in sandboxes, open draft PRs and pass CI. Provider limits, cost controls, review design and failure modes.","One card in a tray fanning out to five pads, all arrows leading to one page behind a gate.",{"slug":784,"published":785,"minutes":786,"category":7,"tags":787,"keywords":793,"about":805,"sources":813,"cover":846,"og":847,"expertise":122,"locales":848,"lang":124,"title":849,"description":850,"coverAlt":851},"context-rot-compaction-long-running-agents","2026-10-16",10,[788,789,790,791,792],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[794,795,796,797,798,799,800,801,802,803,804],"context rot","context rot LLM","compaction AI agents","context engineering","long-running agents context window","Claude compaction API","context editing clear tool results","OpenAI responses compaction","lost in the middle LLM","agent context management","sub-agents context isolation",[806,809,812],{"name":807,"url":808},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":810,"url":811},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":606,"url":607},[814,817,820,823,826,828,831,834,837,840,843],{"title":815,"url":816},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":818,"url":819},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":821,"url":822},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":824,"url":825},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":827,"url":686},"Anthropic: Effective harnesses for long-running agents (Nov 2025)",{"title":829,"url":830},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":832,"url":833},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":835,"url":836},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":838,"url":839},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":841,"url":842},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":844,"url":845},"Cognition: Don't Build Multi-Agents","https:\u002F\u002Fcognition.ai\u002Fblog\u002Fdont-build-multi-agents","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fog.jpg",[124,125,126],"Context rot in long-running agents: clearing, compaction, memory and sub-agents","Why LLM accuracy drops as context grows, and how clearing tool results, compaction, notes and sub-agents keep long-running agents on track.","A small square press squeezing a tall stack of sheets into a short one, two notes branching off.",1792261155572]