[{"data":1,"prerenderedAt":854},["ShallowReactive",2],{"blog-opencode-en":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":35,"cover":105,"og":106,"expertise":107,"locales":108,"lang":109,"title":112,"description":113,"coverAlt":114,"metaTitle":115,"takeaways":116,"faq":122,"toc":135,"blocks":163,"others":584},"opencode","2026-10-09",8,"agents",[9,10,11,12,13],"AI coding agent","Terminal","Open source","Local models","MCP",[4,15,16,17,18,19,20,21],"opencode review","open source coding agent","opencode vs claude code","terminal coding agent","opencode local models","opencode permissions","opencode mcp",[23,26,29,32],{"name":24,"url":25},"OpenCode","https:\u002F\u002Fopencode.ai",{"name":27,"url":28},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",{"name":30,"url":31},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io",{"name":33,"url":34},"Language Server Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLanguage_Server_Protocol",[36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102],{"title":37,"url":38},"OpenCode docs: intro and installation","https:\u002F\u002Fopencode.ai\u002Fdocs\u002F",{"title":40,"url":41},"OpenCode docs: providers, Models.dev and local models","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fproviders\u002F",{"title":43,"url":44},"OpenCode docs: agents, Build, Plan and subagents","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fagents\u002F",{"title":46,"url":47},"OpenCode docs: permissions and defaults","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fpermissions\u002F",{"title":49,"url":50},"OpenCode docs: MCP servers","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fmcp-servers\u002F",{"title":52,"url":53},"OpenCode docs: LSP servers","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Flsp\u002F",{"title":55,"url":56},"OpenCode docs: server and web interface","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fserver\u002F",{"title":58,"url":59},"OpenCode docs: config and precedence","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fconfig\u002F",{"title":61,"url":62},"OpenCode docs: Zen, pay-as-you-go models","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fzen\u002F",{"title":64,"url":65},"OpenCode docs: Go subscription plans","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fgo\u002F",{"title":67,"url":68},"OpenCode docs: share and data retention","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fshare\u002F",{"title":70,"url":71},"OpenCode docs: enterprise and data handling","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fenterprise\u002F",{"title":73,"url":74},"GitHub: anomalyco\u002Fopencode, MIT licence and README","https:\u002F\u002Fgithub.com\u002Fanomalyco\u002Fopencode",{"title":76,"url":77},"OpenCode release v1.18.35 (6 October 2026)","https:\u002F\u002Fgithub.com\u002Fanomalyco\u002Fopencode\u002Freleases\u002Ftag\u002Fv1.18.35",{"title":79,"url":80},"Claude Code licence file (LICENSE.md)","https:\u002F\u002Fraw.githubusercontent.com\u002Fanthropics\u002Fclaude-code\u002Fmain\u002FLICENSE.md",{"title":82,"url":83},"Claude pricing: plans and Claude Code access","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":85,"url":86},"Claude Code docs: connect to an LLM gateway","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fllm-gateway",{"title":88,"url":89},"OpenAI Codex CLI repository (Apache-2.0)","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex",{"title":91,"url":92},"ChatGPT pricing: Codex included in plans","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fpricing",{"title":94,"url":95},"Codex configuration: model providers and config.toml","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fconfig-file\u002Fconfig-advanced",{"title":97,"url":98},"Aider website: git integration and LLM support","https:\u002F\u002Faider.chat\u002F",{"title":100,"url":101},"Aider licence file (Apache-2.0)","https:\u002F\u002Fraw.githubusercontent.com\u002FAider-AI\u002Faider\u002Fmain\u002FLICENSE.txt",{"title":103,"url":104},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:32016R0679","\u002Fimages\u002Fblog\u002Fopencode\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopencode\u002Fog.jpg","ai-engineer",[109,110,111],"en","de","hu","OpenCode review: the open-source coding agent for any model","OpenCode is an MIT-licensed terminal coding agent for any model, hosted or local. Agents, permissions, MCP and LSP, plus the data-protection trade-offs.","One central box fed from two sides with four squares inside, above a level balance.","OpenCode review: open-source agent, any model · Balázs Csorba",[117,118,119,120,121],"OpenCode is MIT-licensed and free to install. You pay for the model, through your own provider key, a local model or the optional Zen and Go plans.","Its provider layer reaches more than 75 providers through the AI SDK and Models.dev, and local models through Ollama, LM Studio or llama.cpp.","The Build and Plan agents separate doing from planning, but most permissions default to allow, so you must write your own approval rules before the first real run.","MCP servers and LSP diagnostics extend the agent. Each MCP server adds to the context you pay for, so enable them one at a time.","With your own provider, code goes straight from your machine to that provider. The exception is \u002Fshare, which publishes a public link on opencode.ai.",[123,126,129,132],{"q":124,"a":125},"Is OpenCode free?","The software is free under the MIT licence. You pay your model provider for tokens, pay as you go through Zen, or subscribe to Go at $10 a month or Go Plus at $40 a month. Prices are as of October 2026.",{"q":127,"a":128},"Can OpenCode run without a cloud provider?","Yes. The provider directory covers local options such as Ollama, LM Studio and llama.cpp. Prompts and code stay on your machine, but web tools and remote MCP servers still send requests out, and output quality depends on the model you run.",{"q":130,"a":131},"Does OpenCode store my code?","According to its enterprise page, OpenCode does not store any of your code or context data, and processing happens locally or through direct API calls to your AI provider. Using \u002Fshare is the exception, because the conversation is then published through opencode.ai.",{"q":133,"a":134},"How does it compare with Claude Code?","OpenCode is open source and provider-agnostic. Claude Code is under Anthropic's commercial terms, and Anthropic says it does not support routing Claude Code to non-Claude models through any gateway.",[136,139,142,145,148,151,154,157,160],{"id":137,"title":138},"what-it-is","What it is",{"id":140,"title":141},"how-it-works","How it works",{"id":143,"title":144},"getting-started","Getting started",{"id":146,"title":147},"agents-and-permissions","Agents and permissions",{"id":149,"title":150},"providers-and-local-models","Providers and local models",{"id":152,"title":153},"cost-and-deployment","Cost and deployment",{"id":155,"title":156},"where-it-falls-short","Where it falls short",{"id":158,"title":159},"verdict","Verdict",{"id":161,"title":162},"sources","Sources",[164,168,171,174,177,202,203,211,217,220,224,235,236,262,264,267,268,271,301,310,311,325,328,329,332,376,379,387,397,398,401,433,434,437,482,511,512],{"type":165,"content":166},"paragraph",[167],"OpenCode is an open-source AI coding agent for the terminal, also available as a desktop app and an IDE extension. The verdict up front: take it if you want one agent that can run whichever model you can connect, including a model on your own machine, and you are prepared to write its permission rules. Leave it alone if you want one vendor's model under one subscription, or if you expect safe defaults out of the box.",{"type":165,"content":169},[170],"This review rests on the official OpenCode docs, the GitHub repository and the v1.18.35 release, published on 6 October 2026. I did not benchmark it, so the comparison covers features, licences and prices, not output quality.",{"type":172,"level":173,"id":137,"text":138},"heading",2,{"type":165,"content":175},[176],"OpenCode is a terminal interface, a desktop app and an IDE extension. The source is at anomalyco\u002Fopencode on GitHub under the MIT licence, and the repository showed about 212.5k stars when I checked on 10 October 2026. The docs also carry a banner for a v2 release. The v2 page I opened had no details, so the specifics below refer to the v1.18 line.",{"type":178,"ordered":179,"items":180},"list",false,[181,187,192,197],[182,186],{"tag":183,"children":184},"strong",[185],"Install: ","a shell script, npm (opencode-ai), Bun, pnpm or Yarn, Homebrew through the anomalyco tap, and AUR or Nix packages.",[188,191],{"tag":183,"children":189},[190],"Models: ","more than 75 providers through the AI SDK and Models.dev, plus any OpenAI-compatible endpoint you configure.",[193,196],{"tag":183,"children":194},[195],"Clients: ","the terminal UI, the desktop app, IDE extensions, a browser interface from opencode web, and ACP-compatible editors such as Zed and JetBrains IDEs.",[198,201],{"tag":183,"children":199},[200],"Project rules: ","an AGENTS.md file, which the \u002Finit command creates or updates, is added to the model's context.",{"type":172,"level":173,"id":140,"text":141},{"type":165,"content":204},[205,206,210],"The docs describe a client and server split. The command",{"tag":207,"children":208},"code",[209],"opencode serve"," runs a headless HTTP server with an OpenAPI endpoint that any OpenCode client can use, so the interface and the agent can run in separate processes. Every tool call is checked against the permission rules before it runs.",{"type":212,"src":213,"alt":214,"wide":215,"caption":216},"image","\u002Fimages\u002Fblog\u002Fopencode\u002Fdiagram-7.webp","How an OpenCode request flows Clients such as the terminal UI, the desktop app or an IDE send requests to a local opencode server over HTTP. The agent loop runs in Build or Plan mode. Before each tool call, the permission gate allows, asks or denies the action. Tools read and edit files, run shell commands, use language servers and call MCP servers. The model call goes to the provider you configure, which can be a hosted API or a local model.",true,"Clients talk to one local server. The permission gate checks each tool call, and the model is whichever provider you configure.",{"type":165,"content":218},[219],"Tools do the actual work. Built-in tools read, write and patch files, run shell commands and fetch web pages, and each has its own permission key. The language server layer passes diagnostics from the project's language servers back to the agent, which the docs present as feedback for the agent.",{"type":172,"level":221,"id":222,"text":223},3,"mcp-and-lsp","MCP and LSP",{"type":165,"content":225},[226,227,230,231,234],"MCP servers sit under the ",{"tag":207,"children":228},[229],"mcp"," key. A local server is a command that OpenCode starts. A remote server is a URL, with optional headers, an OAuth block and a timeout that defaults to 5 seconds for fetching its tool list. The docs warn that every MCP server adds to the context you pay for, and that some, such as the GitHub MCP server, can exceed the context limit on their own. LSP works differently. OpenCode ships configurations for more than 30 language servers, from TypeScript, Rust and Python (pyright) to Go (gopls) and Terraform, and setting ",{"tag":207,"children":232},[233],"lsp"," to true enables all of them. Some install themselves; others need the toolchain on your path.",{"type":172,"level":173,"id":143,"text":144},{"type":165,"content":237},[238,239,242,243,245,246,249,250,253,254,257,258,261],"Install with the shell script or ",{"tag":207,"children":240},[241],"npm install -g opencode-ai",", then run ",{"tag":207,"children":244},[4]," in the project directory. Inside the TUI, ",{"tag":207,"children":247},[248],"\u002Fconnect"," adds provider keys and ",{"tag":207,"children":251},[252],"\u002Finit"," writes the AGENTS.md file. The configuration below points OpenCode at a model served by LM Studio on the same machine, sets the default permission to ask and turns sharing off. Put it in ",{"tag":207,"children":255},[256],"opencode.json"," at the project root, or in ",{"tag":207,"children":259},[260],"~\u002F.config\u002Fopencode\u002Fopencode.json"," for every project.",{"type":207,"code":263},"{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"model\": \"lmstudio\u002Fgoogle\u002Fgemma-3n-e4b\",\n  \"provider\": {\n    \"lmstudio\": {\n      \"npm\": \"@ai-sdk\u002Fopenai-compatible\",\n      \"name\": \"LM Studio (local)\",\n      \"options\": { \"baseURL\": \"http:\u002F\u002F127.0.0.1:1234\u002Fv1\" },\n      \"models\": { \"google\u002Fgemma-3n-e4b\": { \"name\": \"Gemma 3n-e4b (local)\" } }\n    }\n  },\n  \"permission\": { \"*\": \"ask\", \"bash\": \"ask\" },\n  \"share\": \"disabled\"\n}",{"type":165,"content":265},[266],"A local model keeps prompts on your machine, but the quality of the result is the model's, not the agent's. Run the first tasks on a scratch branch and read every diff before you accept it.",{"type":172,"level":173,"id":146,"text":147},{"type":165,"content":269},[270],"Two primary agents do the main work. Build is the default, with every tool enabled, and suits development. Plan is restricted to analysis and review, and the docs say it makes no code changes. Press Tab to switch between them. OpenCode also has three built-in subagents. Explore is a fast, read-only agent for finding files and answering questions about the code, Scout is read-only and researches external docs and dependency source, and General is the third. You can call any of them with an @ mention.",{"type":165,"content":272},[273,274,277,278,281,282,281,285,288,289,292,293,296,297,300],"Permissions are where you should spend your first hour. Each key accepts allow, ask or deny, and the object form can match on the tool input. The keys that matter most are ",{"tag":207,"children":275},[276],"edit"," (which covers write, edit and apply_patch), ",{"tag":207,"children":279},[280],"bash",", ",{"tag":207,"children":283},[284],"webfetch",{"tag":207,"children":286},[287],"external_directory"," and ",{"tag":207,"children":290},[291],"doom_loop",". A ",{"tag":207,"children":294},[295],"*"," key sets the default for everything else, and explicit deny rules still apply under ",{"tag":207,"children":298},[299],"--auto",".",{"type":302,"variant":303,"title":304,"body":305},"callout","warn","The defaults are permissive",[306,308],[307],"Most permissions start at allow. The docs set doom_loop and external_directory to ask and deny .env files, but bash and edit run without a prompt unless you change them.",[309],"The --auto flag approves every request that is not explicitly denied. Treat it as a setting for a throwaway sandbox, not for a laptop with production credentials.",{"type":172,"level":173,"id":149,"text":150},{"type":165,"content":312},[313,314,316,317,320,321,324],"This is the main reason to pick OpenCode. It uses the AI SDK and the Models.dev catalogue to cover more than 75 providers, ",{"tag":207,"children":315},[248]," stores the keys you add, and the ",{"tag":207,"children":318},[319],"baseURL"," option points any provider at a proxy or a private endpoint. The provider directory lists local options such as Ollama, LM Studio and llama.cpp, and any other OpenAI-compatible server can be added with the ",{"tag":207,"children":322},[323],"@ai-sdk\u002Fopenai-compatible"," package.",{"type":165,"content":326},[327],"Provider-agnostic does not mean equally good. The agent is only as reliable as the model behind it, especially for tool calls in a large repository. Keep a second model configured, so you can switch when one struggles, and compare the diffs they produce on the same task before you commit to either.",{"type":172,"level":173,"id":152,"text":153},{"type":165,"content":330},[331],"The software costs nothing. You pay for the model, and the bill depends on where that model runs. As of October 2026 the published options are these.",{"type":333,"head":334,"rows":341},"table",[335,337,339],[336],"Option",[338],"Price",[340],"What it covers",[342,348,355,362,369],[343,344,346],[24],[345],"Free, MIT",[347],"Install and run; you pay your model provider directly",[349,351,353],[350],"Zen",[352],"Pay as you go, per 1M tokens",[354],"Tested models hosted in the US and EU; zero retention except some free models",[356,358,360],[357],"Go",[359],"$10 a month",[361],"Open coding models with monthly dollar limits",[363,365,367],[364],"Go Plus",[366],"$40 a month",[368],"Higher monthly limits at the same token prices as Go",[370,372,374],[371],"Enterprise",[373],"Per seat, quoted",[375],"Central config, SSO, and your own LLM gateway with no token charge",{"type":165,"content":377},[378],"Self-hosting here means running the model on your side, because the agent already runs on your machine. The data-protection question is who processes your code. OpenCode's enterprise page says it does not store any of your code or context data, and that all processing happens locally or through direct API calls to your AI provider. That makes the provider the party you need a contract with.",{"type":165,"content":380},[381,382,300],"Under Article 28(3) of the GDPR, processing by a processor must be governed by a contract that binds the processor. If your repositories or test data contain personal data, get that contract, the processing region and the retention terms in writing from the provider you connect. Zen's published policy is a useful benchmark: its models are hosted in the US and EU, its providers follow zero retention and do not train on your data, with named exceptions for free models during their free period. The wider residency checklist is in the ",{"tag":383,"to":384,"children":385},"link","\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[386],"GDPR LLM data residency guide",{"type":302,"variant":388,"title":389,"body":390},"note","Three places data can leave your machine",[391,393,395],[392],"The model call, unless the model runs on your machine.",[394],"The \u002Fshare command, which publishes a conversation as a public link on opencode.ai's CDN. Sharing defaults to manual, and \u002Funshare deletes the data.",[396],"Web fetch and web search tools, and any remote MCP server, which send requests outside the model call.",{"type":172,"level":173,"id":155,"text":156},{"type":165,"content":399},[400],"Most of the weak points are defaults and upkeep rather than missing features.",{"type":178,"ordered":179,"items":402},[403,408,413,418,423,428],[404,407],{"tag":183,"children":405},[406],"Permissive defaults. ","Most permissions start at allow, and --auto removes the prompts altogether, so the safe setup is one you write and test yourself.",[409,412],{"tag":183,"children":410},[411],"Context cost from MCP. ","Each enabled server adds to the context. Enable one server at a time and measure what it costs before you add the next.",[414,417],{"tag":183,"children":415},[416],"Configuration keeps moving. ","The legacy tools boolean was merged into permission in v1.1.1, and the old key still works. Check examples against the version you run.",[419,422],{"tag":183,"children":420},[421],"Shares are public. ","Anyone with the link can read a shared conversation until someone unshares it.",[424,427],{"tag":183,"children":425},[426],"Team controls sit behind a quote. ","Central config, SSO and gateway enforcement are enterprise features, priced per seat.",[429,432],{"tag":183,"children":430},[431],"A version question. ","The docs point to a v2 release. Pin the version your team tests and retest after each upgrade.",{"type":172,"level":173,"id":158,"text":159},{"type":165,"content":435},[436],"OpenCode is the open option for teams that must keep the choice of model open. Pick it when you want an MIT-licensed agent, when code should go only to a provider you have contracted, or when local models are part of the plan. Do not pick it if you want safe behaviour without writing the rules yourself, or if one vendor's model is the requirement.",{"type":333,"head":438,"rows":447},[439,441,443,445],[440],"Tool",[442],"Licence",[444],"Models",[446],"Price, as of October 2026",[448,456,465,474],[449,450,452,454],[24],[451],"MIT",[453],"75+ providers and local models",[455],"Free software; you pay the provider, or Zen and Go",[457,459,461,463],[458],"Claude Code",[460],"Anthropic commercial terms",[462],"Claude models; no non-Claude models through gateways",[464],"Pro $17 a month billed yearly, $20 monthly; Max from $100",[466,468,470,472],[467],"Codex CLI",[469],"Apache-2.0",[471],"OpenAI models, plus custom providers in config.toml",[473],"Included in ChatGPT plans, Free to Enterprise",[475,477,478,480],[476],"Aider",[469],[479],"Almost any LLM, including local models",[481],"Free software; you pay the provider",{"type":178,"ordered":215,"items":483},[484,493,502],[485,488,489,300],{"tag":183,"children":486},[487],"Claude Code ","if you already work with Claude models and accept a commercial licence in return for Anthropic's own agent. The review is ",{"tag":383,"to":490,"children":491},"\u002Fblog\u002Fclaude-code",[492],"Claude Code review",[494,497,498,300],{"tag":183,"children":495},[496],"Codex CLI ","if your team already has ChatGPT plans and wants an Apache-2.0 agent. Its review is ",{"tag":383,"to":499,"children":500},"\u002Fblog\u002Fopenai-codex-cli",[501],"Codex CLI review",[503,506,507,300],{"tag":183,"children":504},[505],"Aider ","if you want a smaller, git-first tool that commits each change with a sensible message and reaches almost any model. Its review is ",{"tag":383,"to":508,"children":509},"\u002Fblog\u002Faider",[510],"Aider review",{"type":172,"level":173,"id":161,"text":162},{"type":178,"ordered":179,"items":513},[514,518,521,524,527,530,533,536,539,542,545,548,551,554,557,560,563,566,569,572,575,578,581],[515],{"tag":516,"href":38,"children":517},"a",[37],[519],{"tag":516,"href":41,"children":520},[40],[522],{"tag":516,"href":44,"children":523},[43],[525],{"tag":516,"href":47,"children":526},[46],[528],{"tag":516,"href":50,"children":529},[49],[531],{"tag":516,"href":53,"children":532},[52],[534],{"tag":516,"href":56,"children":535},[55],[537],{"tag":516,"href":59,"children":538},[58],[540],{"tag":516,"href":62,"children":541},[61],[543],{"tag":516,"href":65,"children":544},[64],[546],{"tag":516,"href":68,"children":547},[67],[549],{"tag":516,"href":71,"children":550},[70],[552],{"tag":516,"href":74,"children":553},[73],[555],{"tag":516,"href":77,"children":556},[76],[558],{"tag":516,"href":80,"children":559},[79],[561],{"tag":516,"href":83,"children":562},[82],[564],{"tag":516,"href":86,"children":565},[85],[567],{"tag":516,"href":89,"children":568},[88],[570],{"tag":516,"href":92,"children":571},[91],[573],{"tag":516,"href":95,"children":574},[94],[576],{"tag":516,"href":98,"children":577},[97],[579],{"tag":516,"href":101,"children":580},[100],[582],{"tag":516,"href":104,"children":583},[103],[585,642,715,785],{"slug":586,"published":587,"minutes":588,"category":7,"tags":589,"keywords":594,"about":605,"sources":614,"cover":636,"og":637,"expertise":107,"locales":638,"lang":109,"title":639,"description":640,"coverAlt":641},"agent-tool-design-descriptions-errors","2026-10-17",11,[590,591,592,13,593],"AI agents","Tool use","Function calling","Agent design",[595,596,597,598,599,600,601,602,603,604],"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",[606,609,611],{"name":607,"url":608},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":30,"url":610},"https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":612,"url":613},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[615,618,621,624,627,630,633],{"title":616,"url":617},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":619,"url":620},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":622,"url":623},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":625,"url":626},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":628,"url":629},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":631,"url":632},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":634,"url":635},"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",[109,110,111],"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":643,"published":587,"minutes":588,"category":7,"tags":644,"keywords":650,"about":663,"sources":673,"cover":709,"og":710,"expertise":107,"locales":711,"lang":109,"title":712,"description":713,"coverAlt":714},"coding-agents-legacy-codebase-migration",[645,646,647,648,649],"Legacy migration","Coding agents","Strangler fig","Testing","Code review",[651,652,653,654,655,656,657,658,659,660,661,662],"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",[664,667,670],{"name":665,"url":666},"Legacy code","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLegacy_code",{"name":668,"url":669},"Characterization test","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCharacterization_test",{"name":671,"url":672},"Strangler fig pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStrangler_fig_pattern",[674,677,679,682,685,688,691,694,697,700,703,706],{"title":675,"url":676},"Martin Fowler: Strangler Fig (2024)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",{"title":678,"url":669},"Wikipedia: Characterization test",{"title":680,"url":681},"Google Research: Accelerating code migrations with AI (2024)","https:\u002F\u002Fresearch.google\u002Fblog\u002Faccelerating-code-migrations-with-ai\u002F",{"title":683,"url":684},"Ziftci et al.: Migrating Code At Scale With LLMs At Google (arXiv 2504.09691)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":686,"url":687},"Anthropic: Effective harnesses for long-running agents (2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":689,"url":690},"Anthropic: Redesigning source control at Anthropic (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fredesigning-source-control",{"title":692,"url":693},"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":695,"url":696},"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":698,"url":699},"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":701,"url":702},"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":704,"url":705},"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":707,"url":708},"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",[109,110,111],"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":716,"published":587,"minutes":717,"category":7,"tags":718,"keywords":722,"about":734,"sources":744,"cover":779,"og":780,"expertise":107,"locales":781,"lang":109,"title":782,"description":783,"coverAlt":784},"background-agents-async-pr-workflow",12,[646,719,720,649,721],"Pull requests","CI","Automation",[723,724,725,726,727,728,729,730,731,732,733],"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",[735,738,741],{"name":736,"url":737},"Software agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_agent",{"name":739,"url":740},"Pull request","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_version_control",{"name":742,"url":743},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[745,746,749,752,755,758,761,764,767,770,773,776],{"title":707,"url":708},{"title":747,"url":748},"GitHub Docs: Risks and mitigations for Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcloud-agent\u002Frisks-and-mitigations",{"title":750,"url":751},"OpenAI Developers: Codex cloud environments","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcloud\u002Fenvironments",{"title":753,"url":754},"Anthropic: Use Claude Code in the cloud","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fclaude-code-on-the-web",{"title":756,"url":757},"Google Jules: Limits and plans","https:\u002F\u002Fjules.google\u002Fdocs\u002Fusage-limits\u002F",{"title":759,"url":760},"Google Jules: Getting started","https:\u002F\u002Fjules.google\u002Fdocs\u002F",{"title":762,"url":763},"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":765,"url":766},"GitHub Docs: Models and pricing for GitHub Copilot","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fcopilot-billing\u002Fmodels-and-pricing",{"title":768,"url":769},"OpenAI Developers: Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":771,"url":772},"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":774,"url":775},"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":777,"url":778},"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",[109,110,111],"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":786,"published":787,"minutes":788,"category":7,"tags":789,"keywords":795,"about":807,"sources":815,"cover":848,"og":849,"expertise":107,"locales":850,"lang":109,"title":851,"description":852,"coverAlt":853},"context-rot-compaction-long-running-agents","2026-10-16",10,[790,791,792,793,794],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[796,797,798,799,800,801,802,803,804,805,806],"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",[808,811,814],{"name":809,"url":810},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":812,"url":813},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":607,"url":608},[816,819,822,825,828,830,833,836,839,842,845],{"title":817,"url":818},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":820,"url":821},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":823,"url":824},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":826,"url":827},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":829,"url":687},"Anthropic: Effective harnesses for long-running agents (Nov 2025)",{"title":831,"url":832},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":834,"url":835},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":837,"url":838},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":840,"url":841},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":843,"url":844},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":846,"url":847},"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",[109,110,111],"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.",1792261155542]