[{"data":1,"prerenderedAt":569},["ShallowReactive",2],{"tool-goose-block-en":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":13,"about":22,"sources":29,"cover":57,"og":58,"expertise":59,"locales":60,"lang":61,"title":64,"description":65,"coverAlt":66,"url":67,"pricing":68,"kind":9,"metaTitle":69,"takeaways":70,"faq":76,"toc":89,"blocks":114,"others":341},"goose-block","2026-07-17",10,"agents",[9,10,11,12],"Coding agent","MCP","Local models","Open source",[14,15,16,17,18,19,20,21],"goose ai agent","goose vs claude code","block goose open source agent","goose mcp extensions","goose recipes","local first ai agent","goose permission modes","agentic ai foundation",[23,26],{"name":24,"url":25},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",{"name":27,"url":28},"goose documentation","https:\u002F\u002Fgoose-docs.ai\u002F",[30,33,36,39,42,45,48,51,54],{"title":31,"url":32},"goose documentation: quickstart","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Fquickstart",{"title":34,"url":35},"goose documentation: configuration files","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Fguides\u002Fconfig-files",{"title":37,"url":38},"goose documentation: permission modes","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Fguides\u002Fmanaging-tools\u002Fgoose-permissions",{"title":40,"url":41},"goose documentation: smart context management","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Fguides\u002Fsessions\u002Fsmart-context-management",{"title":43,"url":44},"goose documentation: recipe reference","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Fguides\u002Frecipes\u002Frecipe-reference",{"title":46,"url":47},"goose documentation: CLI commands","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Fguides\u002Fgoose-cli-commands",{"title":49,"url":50},"goose documentation: known issues","https:\u002F\u002Fgoose-docs.ai\u002Fdocs\u002Ftroubleshooting\u002Fknown-issues",{"title":52,"url":53},"goose has a new home: the Agentic AI Foundation (7 April 2026)","https:\u002F\u002Fgoose-docs.ai\u002Fblog\u002F2026\u002F04\u002F07\u002Fgoose-moves-to-aaif\u002F",{"title":55,"url":56},"goose repository on GitHub","https:\u002F\u002Fgithub.com\u002Faaif-goose\u002Fgoose","\u002Fimages\u002Fblog\u002Fgoose-block\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgoose-block\u002Fog.jpg","ai-engineer",[61,62,63],"en","de","hu","Goose: the open-source agent you run on your own machine","Goose is an Apache-2.0 coding agent written in Rust, now owned by the Linux Foundation. How its permission modes, recipes and MCP extensions hold up against commercial tools.","The goose agent loop: prompt, goose core, model, tool call, MCP extension, running back to the prompt, with the permission mode, turn limit and compaction controls underneath.","https:\u002F\u002Fgithub.com\u002Fblock\u002Fgoose","Free · self-host","Goose review: the open-source agent you run · Balázs Csorba",[71,72,73,74,75],"Goose is an Apache-2.0 coding agent in Rust, released by Block in January 2025 and donated to the Agentic AI Foundation at the Linux Foundation in December 2025, so governance no longer sits with its original sponsor.","Capability is a configuration decision: the tools a session can reach are the MCP extensions enabled for it, restricted per extension with an available_tools allowlist.","Four permission modes exist and the most permissive one, fully autonomous, is the default, so a fresh install edits and deletes files without asking.","Recipes are versioned YAML with parameters, retries and a machine-checkable success test, which makes a repeatable agent workflow something you can review and schedule rather than a prompt you retype.","The operational tax is real: most external extensions need npx or uvx on the machine, dev servers hang sessions until the tool times out, and the docs tell you to end and restart a session when the agent stops responding.",[77,80,83,86],{"q":78,"a":79},"Is goose still a Block project?","No. Block donated goose to the Agentic AI Foundation at the Linux Foundation in December 2025, alongside Anthropic's Model Context Protocol and OpenAI's AGENTS.md, and the move was announced on 7 April 2026. The repository also moved from block\u002Fgoose to aaif-goose\u002Fgoose, so clones need their remote updated.",{"q":81,"a":82},"Can goose use my existing ChatGPT or Claude subscription?","Yes, over the Agent Client Protocol. The quickstart offers a ChatGPT subscription option that signs in with existing credentials to reach Codex models, alongside plain API keys, OpenRouter, a third-party agent router and local Ollama models.",{"q":84,"a":85},"What is the difference between recipes and sub-recipes?","A recipe is a reusable YAML unit with instructions, extensions, parameters and settings. A sub-recipe is one that another recipe invokes as a tool: it runs in a separate session with its own context and no shared memory, and cannot itself define sub-recipes. The docs still label sub-recipes experimental.",{"q":87,"a":88},"How do I stop goose from editing files it should not?","Switch the permission mode away from autonomous. Manual approval asks before every tool, smart approval auto-approves what it reads as low risk, and chat only blocks tool use entirely. Granular per-tool permissions apply in the two approval modes, and GOOSE_MAX_TURNS caps how many turns it can take unattended.",[90,93,96,99,102,105,108,111],{"id":91,"title":92},"what-it-is","What goose is",{"id":94,"title":95},"how-it-works","How it works",{"id":97,"title":98},"context-and-cost","Context, turns and cost",{"id":100,"title":101},"extensions-and-recipes","Extensions and recipes",{"id":103,"title":104},"permissions-and-autonomy","Permissions and autonomy",{"id":106,"title":107},"where-it-shingles","Where it shingles",{"id":109,"title":110},"verdict","Verdict",{"id":112,"title":113},"sources","Sources",[115,119,122,125,128,131,149,150,153,162,165,168,175,176,179,189,192,193,196,198,201,202,205,215,222,223,226,281,284,287,288,291,304,310,311],{"type":116,"content":117},"paragraph",[118],"Goose is an open-source coding agent that runs on the developer's own machine rather than inside a vendor's cloud. It ships as a desktop app for macOS, Linux and Windows, a full CLI, and an API to embed, and it is written in Rust. Block released it publicly in January 2025 and donated it in December 2025 to the Agentic AI Foundation at the Linux Foundation, alongside Anthropic's Model Context Protocol and OpenAI's AGENTS.md, so the project is now governed by a foundation rather than by the company that started it.",{"type":116,"content":120},[121],"What is not commodity here is the extension model. Goose reaches the outside world through Model Context Protocol servers, and the tools a session can use are the extensions enabled for it. That makes an agent's capability surface a configuration decision rather than a property of the binary, which is a materially different shape from an agent with a fixed built-in toolset.",{"type":116,"content":123},[124],"The position after reading the documentation: this is a serious, well-documented agent that loses to the commercial leaders on polish and on individual task quality, and wins on the fact that every part of it can be inspected, forked and redistributed, including the format its workflows are written in. It is most convincing as a platform for standardising agent behaviour across a fleet, and least convincing as a single developer's daily driver when a commercial tool with better autocomplete is already licensed.",{"type":126,"level":127,"id":91,"text":92},"heading",2,{"type":116,"content":129},[130],"Two surfaces on one core. The desktop app is the approachable half and the CLI is the scriptable half; both drive the same session logic, the same config file and the same extension list. The repository is Apache-2.0 and shows roughly 55,000 stars and 6,400 forks.",{"type":132,"ordered":133,"items":134},"list",false,[135,137,139,141,143,145,147],[136],"Apache-2.0 licensed and written in Rust, published as signed release artefacts and as a one-line install script for the CLI.",[138],"15+ LLM providers including Anthropic, OpenAI, Google, Azure, Bedrock, OpenRouter and Ollama, with API keys or an existing subscription over ACP.",[140],"70+ extensions over MCP, in four types: stdio, builtin, platform and streamable HTTP.",[142],"Four permission modes, from fully autonomous to chat only, chosen per session with granular per-tool permissions on top.",[144],"Recipes: versioned YAML files packaging instructions, extensions, parameters, settings, retries and a JSON response schema into one reviewable unit.",[146],"Auto-compaction at 80% of the context window, tool-output summarisation, and a hard turn ceiling that defaults to 1000.",[148],"A scheduler, an ACP server for editors such as Zed, a built-in review command and documented support for shipping your own branded build.",{"type":126,"level":127,"id":94,"text":95},{"type":116,"content":151},[152],"The loop is the standard one: send context, receive a message, and if it contains a tool call, execute the tool and feed the result into the next turn. What goose adds around that loop is bookkeeping. Token accounting, compaction, a turn limit, a cost estimate and a permission gate all sit between the model and the filesystem, and every one of them is a setting rather than a heuristic buried in the binary.",{"type":154,"attrs":155,"inner":159,"caption":160},"diagram",{"viewBox":156,"role":157,"aria-labelledby":158},"0 0 720 292","img","d1-goose-t d1-goose-d","\u003Ctitle id=\"d1-goose-t\">The goose agent loop\u003C\u002Ftitle>\u003Cdesc id=\"d1-goose-d\">A prompt enters the goose core, which calls a model, receives a tool call, runs it through an MCP extension, and loops back to the prompt. Three controls apply on every turn: the permission mode, the maximum turn limit and automatic context compaction.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">The goose agent loop\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"28\" text-anchor=\"end\" class=\"d-label\">rust core, mcp tools\u003C\u002Ftext>\u003Crect x=\"110\" y=\"70\" width=\"130\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"175\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Prompt\u003C\u002Ftext>\u003Ctext x=\"175\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">session, hints\u003C\u002Ftext>\u003Cpath d=\"M240 102 H252\" class=\"d-line\" \u002F>\u003Cpath d=\"M270 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"270\" y=\"70\" width=\"130\" height=\"64\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"335\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">goose core\u003C\u002Ftext>\u003Ctext x=\"335\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">session loop\u003C\u002Ftext>\u003Cpath d=\"M400 102 H412\" class=\"d-line\" \u002F>\u003Cpath d=\"M430 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"430\" y=\"70\" width=\"130\" height=\"64\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"495\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Model\u003C\u002Ftext>\u003Ctext x=\"495\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">15+ providers\u003C\u002Ftext>\u003Cpath d=\"M560 102 H572\" class=\"d-line\" \u002F>\u003Cpath d=\"M590 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"590\" y=\"70\" width=\"110\" height=\"64\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"645\" y=\"98\" text-anchor=\"middle\" class=\"d-text\">Tool call\u003C\u002Ftext>\u003Ctext x=\"645\" y=\"119\" text-anchor=\"middle\" class=\"d-small\">shell, file\u003C\u002Ftext>\u003Cpath d=\"M645 134 V152 C645 166 95 166 95 102 H100\" class=\"d-line\" \u002F>\u003Cpath d=\"M110 102 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Ctext x=\"370\" y=\"180\" text-anchor=\"middle\" class=\"d-label\">SESSION LOOP\u003C\u002Ftext>\u003Ctext x=\"20\" y=\"252\" class=\"d-label\">CONTROLS\u003C\u002Ftext>\u003Cpath d=\"M180 216 V180\" class=\"d-line d-dash\" \u002F>\u003Cpath d=\"M180 172 l-5 9 h10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M380 216 V180\" class=\"d-line d-dash\" \u002F>\u003Cpath d=\"M380 172 l-5 9 h10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M580 216 V180\" class=\"d-line d-dash\" \u002F>\u003Cpath d=\"M580 172 l-5 9 h10 z\" class=\"d-head\" \u002F>\u003Crect x=\"90\" y=\"216\" width=\"180\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"180\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">Permission mode\u003C\u002Ftext>\u003Ctext x=\"180\" y=\"265\" text-anchor=\"middle\" class=\"d-small\">auto, approve, chat\u003C\u002Ftext>\u003Crect x=\"290\" y=\"216\" width=\"180\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"380\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">Max turns\u003C\u002Ftext>\u003Ctext x=\"380\" y=\"265\" text-anchor=\"middle\" class=\"d-small\">default 1000\u003C\u002Ftext>\u003Crect x=\"490\" y=\"216\" width=\"180\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"580\" y=\"244\" text-anchor=\"middle\" class=\"d-text\">Auto-compaction\u003C\u002Ftext>\u003Ctext x=\"580\" y=\"265\" text-anchor=\"middle\" class=\"d-small\">at 80% of context\u003C\u002Ftext>",[161],"The agent loop is the commodity part. The three controls underneath it are the difference: each is an explicit setting that decides how far the agent may go unattended.",{"type":116,"content":163},[164],"Sessions are one continuous conversation. A token indicator shows what is used against what is available, and once the compaction threshold is reached the older part is summarised while the previous messages stay visible in the interface. It is a sensible design, and it means a long session loses fidelity well before it fails.",{"type":166,"code":167},"code","# install the CLI (macOS, Linux), then pick a provider\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Faaif-goose\u002Fgoose\u002Freleases\u002Fdownload\u002Fstable\u002Fdownload_cli.sh | bash\ngoose configure\n\n# run a session in a repository, with a turn cap\ncd ~\u002Fcode\u002Fmy-service\ngoose session --max-turns 25 --with-builtin developer\n\n# unattended: run a recipe and print only the model's reply\ngoose run --recipe release-check.yaml --params env=staging --quiet\n\n# what provider, model and extensions are actually in play\ngoose info --verbose",{"type":116,"content":169},[170,171,174],"Provider settings live in a YAML config file, with secrets in the system keyring by default. Setting ",{"tag":166,"children":172},[173],"GOOSE_DISABLE_KEYRING"," forces file storage instead, which is what the docs prescribe for containers and headless Linux where the keyring is often unavailable. Since version 1.10.0 sessions live in a SQLite database rather than a directory of JSONL files, so backups and migrations are a database problem.",{"type":126,"level":127,"id":97,"text":98},{"type":116,"content":177},[178],"Three settings decide how long a session runs and what it costs, and all three are plain configuration keys rather than hidden behaviour. The docs even suggest values for each class of work, which is unusual and useful.",{"type":132,"ordered":133,"items":180},[181,183,185,187],[182],"Auto-compaction threshold, 0.8 by default, the fraction of the context window at which old turns are summarised; set it to 0.0 to disable.",[184],"Maximum turns without human input, 1000 by default. On reaching it the agent stops and asks. The docs suggest 5 to 10 for exploratory work and 100 or more for a migration.",[186],"Prompt cache lifetime for Anthropic, 5 minutes by default or 1 hour to keep the cached prefix alive across idle gaps at a higher cache-write rate.",[188],"A per-session cost estimate priced from the OpenRouter catalogue and cached locally. The docs are explicit that it is a public-price estimate, not an invoice.",{"type":116,"content":190},[191],"Context limits resolve from an explicit override, then declarative provider config, then runtime discovery, then model metadata, and finally a 128,000-token default. That last fallback matters when goose points at a gateway with a custom model name: the indicator shows the wrong number until the limit is set explicitly, which is a small trap for anyone running it against a proxy.",{"type":126,"level":127,"id":100,"text":101},{"type":116,"content":194},[195],"An extension is an MCP server with a name, a command, a timeout and an optional list of the tools it may expose. That list is the setting that matters most in practice: every tool a session can see is a choice the model has to make correctly on each turn, and narrowing the list is cheaper than a better prompt.",{"type":166,"code":197},"version: \"1.0.0\"\ntitle: \"Release risk check\"\ndescription: \"Diff the branch against a base and report shipping risk\"\nparameters:\n  - key: base\n    input_type: string\n    requirement: required\n    description: \"Branch to compare against\"\nprompt: |\n  Compare this branch against {{ base }} and summarise\n  behavioural risk in shipping order.\n\nextensions:\n  - type: builtin\n    name: developer\n    timeout: 300\n  - type: stdio\n    name: github\n    cmd: npx\n    args: [\"-y\", \"@modelcontextprotocol\u002Fserver-github\"]\n    env_keys: [GITHUB_PERSONAL_ACCESS_TOKEN]\n    available_tools: [get_file_contents, search_code]\n\nsettings:\n  goose_provider: anthropic\n  temperature: 0.2\n  max_turns: 40\n\nretry:\n  max_retries: 2\n  timeout_seconds: 30\n  checks:\n    - type: shell\n      command: \"test -f RISK.md\"",{"type":116,"content":199},[200],"That is the shape worth copying. A recipe is reviewable YAML with a validation command attached, so a scheduled job can be retried until it produces something checkable instead of retried blindly, and validation rejects a template variable with no matching parameter definition. Sub-recipes compose the same way, with the parent mapping its values onto the children, though the docs still mark that feature experimental and note that sub-recipes run in isolated sessions with no shared memory.",{"type":126,"level":127,"id":103,"text":104},{"type":116,"content":203},[204],"Permission is the whole safety story, and the default is the most permissive setting available. There are four modes, and each session picks its own.",{"type":132,"ordered":133,"items":206},[207,209,211,213],[208],"Autonomous, which modifies files, uses extensions and deletes files with no approval. This is the default.",[210],"Manual approval, which asks before any tool and honours the granular per-tool permission list.",[212],"Smart approval, which auto-approves what it reads as low risk and flags the rest. The classification is performed by the model provider, so it is a suggestion rather than a control.",[214],"Chat only, which forbids extensions and file changes, for analysis, writing and reasoning.",{"type":216,"variant":217,"title":218,"body":219},"callout","warn","Read tools run without asking",[220],[221],"In both approval modes goose only prompts for tools it classifies as write operations, such as text editor writes and edits and shell invocations of rm, cp and mv. Reads run unattended, and the classification is itself a model inference that can be wrong in either direction. On a checkout with real history, treat smart approval as a convenience layered on top of manual approval rather than a replacement for it.",{"type":126,"level":127,"id":106,"text":107},{"type":116,"content":224},[225],"The gaps are practical rather than architectural. Most external extensions launch through npx or uvx, so the agent quietly depends on Node.js or a Python toolchain being installed. It will start development servers nobody asked for, and those never exit, so the session hangs until the tool times out. Extensions download their runtimes through a bundled copy of Hermit, which fails on an air-gapped network unless the shims are renamed. Windows installs expect Node.js at a fixed path and the documented remedy is a symbolic link. And the known-issues page advises ending the session and starting a new one when the agent stops responding, which is honest but not a fix.",{"type":227,"head":228,"rows":237},"table",[229,231,233,235],[230],"",[232],"goose",[234],"Claude Code",[236],"OpenHands",[238,247,255,263,272],[239,241,243,245],[240],"Where it runs",[242],"Desktop, CLI or embedded API",[244],"Terminal only",[246],"Local or Docker, with a web UI",[248,250,252,254],[249],"Licence",[251],"Apache-2.0",[253],"Proprietary",[12],[256,258,260,262],[257],"Tools",[259],"MCP extensions you enable",[261],"Built in, plus MCP",[261],[264,266,268,270],[265],"Model choice",[267],"15+ providers or your own gateway",[269],"Anthropic only",[271],"Bring your own key",[273,275,277,279],[274],"Weakest point",[276],"A runtime on every machine",[278],"One vendor, one price list",[280],"Heavier runtime than a CLI",{"type":116,"content":282},[283],"The trade against the commercial tools is straightforward. Claude Code is a better daily driver: it starts faster, the model quality is the reason people stay, and its permission model comes from the provider instead of being inferred by it. OpenHands wins exactly where goose is weakest, running agent work in a sandbox where the result can be inspected, at the cost of a heavier runtime. Goose wins the two things that matter to a platform team: a licence that permits forking, and a declarative format with an allowlist per recipe that can be enforced across a fleet.",{"type":116,"content":285},[286],"The second structural gap is security depth. There is prompt-injection detection with a configurable threshold, and an adversary mode that runs a separate reviewer agent over tool calls, which is an interesting idea and not a control anyone should rely on alone. Read-only tools execute without approval by default, and extensions run as the developer with the developer's credentials.",{"type":126,"level":127,"id":109,"text":110},{"type":116,"content":289},[290],"Goose is a credible default for a team that wants to own its agent stack, and a poor substitute for a well-configured commercial agent on one laptop. Its real contribution is not the coding loop, which is commodity, but the combination of a foundation-owned licence, a declarative extension allowlist and a recipe format with machine-checkable success criteria. That is the layer organisations keep rebuilding badly on top of someone else's agent.",{"type":132,"ordered":292,"items":293},true,[294,296,298,300,302],[295],"Adopt it when agents have to run on machines you do not control, or where code cannot leave the network. The binary and its documentation can both be packaged for air-gapped use.",[297],"Adopt it to standardise behaviour across a fleet. The per-recipe extension allowlist and the permission mode are the mechanism, and the recipe file is the artefact you version and review.",[299],"Adopt it as a second opinion. Pointing the same task at two agents with different tools and comparing the diffs is cheap when both are free to run.",[301],"Do not adopt it as a developer's first agent. The install is a script and the first session needs a provider key, so the setup cost lands on whoever has the least time for it.",[303],"Do not switch a working commercial agent over to it. On individual task quality the leaders are still ahead and the surrounding ecosystem is deeper.",{"type":216,"variant":305,"title":306,"body":307},"tip","Whatever you choose",[308],[309],"Run it with the turn limit set and the working tree committed. The documented remedy for a wedged session is to start a new one, which is only painless if the previous changes were already in git.",{"type":126,"level":127,"id":112,"text":113},{"type":132,"ordered":292,"items":312},[313,317,320,323,326,329,332,335,338],[314],{"tag":315,"href":32,"children":316},"a",[31],[318],{"tag":315,"href":35,"children":319},[34],[321],{"tag":315,"href":38,"children":322},[37],[324],{"tag":315,"href":41,"children":325},[40],[327],{"tag":315,"href":44,"children":328},[43],[330],{"tag":315,"href":47,"children":331},[46],[333],{"tag":315,"href":50,"children":334},[49],[336],{"tag":315,"href":53,"children":337},[52],[339],{"tag":315,"href":56,"children":340},[55],[342,404,451,517],{"slug":343,"published":344,"minutes":345,"category":7,"tags":346,"keywords":350,"about":357,"sources":359,"cover":396,"og":397,"expertise":59,"locales":398,"lang":61,"title":399,"description":400,"coverAlt":401,"url":362,"pricing":402,"kind":403},"mcp-reference-servers","2026-09-25",9,[10,347,348,349],"Reference servers","Tool protocol","Server SDKs",[351,352,353,354,355,356],"mcp reference servers","modelcontextprotocol servers github","write an mcp server","mcp server examples","mcp server sdk","mcp server security",[358],{"name":24,"url":25},[360,363,366,369,372,375,378,381,384,387,390,393],{"title":361,"url":362},"MCP reference servers repository","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers",{"title":364,"url":365},"Repository README and server list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FREADME.md",{"title":367,"url":368},"Security policy","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FSECURITY.md",{"title":370,"url":371},"Release process and trusted publishing","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FRELEASING.md",{"title":373,"url":374},"Filesystem server README","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Ffilesystem\u002FREADME.md",{"title":376,"url":377},"Everything server feature list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Feverything\u002Fdocs\u002Ffeatures.md",{"title":379,"url":380},"MCP Registry","https:\u002F\u002Fregistry.modelcontextprotocol.io\u002F",{"title":382,"url":383},"Archived reference servers","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers-archived",{"title":385,"url":386},"Model Context Protocol documentation","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"title":388,"url":389},"TypeScript MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",{"title":391,"url":392},"Python MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk",{"title":394,"url":395},"FastMCP on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Ffastmcp\u002F","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fog.jpg",[61,62,63],"MCP reference servers: what they demonstrate and what they omit","A review of modelcontextprotocol\u002Fservers: seven reference servers, what each one teaches, the SDK versions behind them and why none of them should reach production.","Seven reference servers fanning out from a single MCP client over stdio","MIT","Protocol tooling",{"slug":405,"published":406,"minutes":6,"category":7,"tags":407,"keywords":411,"about":419,"sources":426,"cover":443,"og":444,"expertise":59,"locales":445,"lang":61,"title":446,"description":447,"coverAlt":448,"url":449,"pricing":450,"kind":9},"aider","2026-09-23",[9,408,409,410,12],"Terminal","Git workflow","BYO key",[405,412,413,414,415,416,417,418],"aider vs claude code","aider polyglot benchmark","ai pair programming terminal","aider leaderboard","open source coding agent","aider architect mode","aider install",[420,423],{"name":421,"url":422},"Aider","https:\u002F\u002Faider.chat\u002F",{"name":424,"url":425},"Aider on GitHub","https:\u002F\u002Fgithub.com\u002FAider-AI\u002Faider",[427,429,432,435,438,440],{"title":428,"url":422},"Aider website",{"title":430,"url":431},"Aider LLM leaderboards","https:\u002F\u002Faider.chat\u002Fdocs\u002Fleaderboards\u002F",{"title":433,"url":434},"Aider linting and testing","https:\u002F\u002Faider.chat\u002Fdocs\u002Fusage\u002Flint-test.html",{"title":436,"url":437},"Aider token limits","https:\u002F\u002Faider.chat\u002Fdocs\u002Ftroubleshooting\u002Ftoken-limits.html",{"title":439,"url":425},"Aider repository on GitHub",{"title":441,"url":442},"aider-chat on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Faider-chat\u002F","\u002Fimages\u002Fblog\u002Faider\u002Fcover.webp","\u002Fimages\u002Fblog\u002Faider\u002Fog.jpg",[61,62,63],"Aider review: git-first pair programming in the terminal","A review of Aider 0.86.2, an Apache-2.0 terminal pair programmer whose benchmark ranks models honestly and whose release cadence has stopped.","Cover art for the Aider review: a terminal session turning a single request into a row of git commits","https:\u002F\u002Faider.chat","Free · BYO API key",{"slug":452,"published":453,"minutes":6,"category":7,"tags":454,"keywords":459,"about":468,"sources":478,"cover":509,"og":510,"expertise":59,"locales":511,"lang":61,"title":512,"description":513,"coverAlt":514,"url":481,"pricing":515,"kind":516},"openai-agents-sdk","2026-09-11",[455,456,457,10,458],"Agent runtime","Tracing","Guardrails","Python",[460,461,462,463,464,465,466,467],"openai agents sdk","openai agents sdk vs langgraph","python agent framework comparison","openai agents sdk guardrails","agent run tracing tool calls","openai agents sdk human in the loop","openai-agents pypi","agents sdk vs responses api",[469,472,475],{"name":470,"url":471},"Model context protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_context_protocol",{"name":473,"url":474},"Software framework","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_framework",{"name":476,"url":477},"Agentic AI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgentic_AI",[479,482,485,488,491,494,497,500,503,506],{"title":480,"url":481},"OpenAI Agents SDK documentation: Intro, and Agents SDK or Responses API","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",{"title":483,"url":484},"OpenAI Agents SDK documentation: Running agents","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Frunning_agents\u002F",{"title":486,"url":487},"OpenAI Agents SDK documentation: Guardrails","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fguardrails\u002F",{"title":489,"url":490},"OpenAI Agents SDK documentation: Human-in-the-loop","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fhuman_in_the_loop\u002F",{"title":492,"url":493},"OpenAI Agents SDK documentation: Tracing","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Ftracing\u002F",{"title":495,"url":496},"OpenAI Agents SDK documentation: Configuration","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fconfig\u002F",{"title":498,"url":499},"openai-agents 0.23.1 on PyPI, release history and licence","https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-agents\u002F",{"title":501,"url":502},"OpenAI: The next evolution of the Agents SDK (15 April 2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fthe-next-evolution-of-the-agents-sdk\u002F",{"title":504,"url":505},"OpenAI API documentation: Agents, comparison of the three runtimes","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"title":507,"url":508},"Arize: AI agent frameworks compared (1 October 2026)","https:\u002F\u002Farize.com\u002Fai-agents\u002Fagent-frameworks\u002F","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fog.jpg",[61,62,63],"OpenAI Agents SDK: a small agent runtime with sharp edges","A review of the OpenAI Agents SDK: the runner loop, tracing, guardrails and approvals, plus what the release churn and the Responses-only features cost.","Diagram of the Agents SDK runner loop: input, agent, model call, final output, guardrails, and tool calls feeding back into the input","MIT · API pay per token","Agent framework",{"slug":518,"published":519,"minutes":345,"category":7,"tags":520,"keywords":525,"about":532,"sources":541,"cover":562,"og":563,"expertise":59,"locales":564,"lang":61,"title":565,"description":566,"coverAlt":567,"url":568,"pricing":68,"kind":9},"openhands","2026-09-09",[9,521,522,523,524],"Sandboxed execution","Automations","Self-hosted","MIT licence",[518,526,527,528,529,530,416,531],"openhands self-host","open hands coding agent","openhands vs claude code","agent canvas","openhands docker sandbox","openhands cloud pricing",[533,535,538],{"name":236,"url":534},"https:\u002F\u002Fwww.openhands.dev",{"name":536,"url":537},"OpenHands on GitHub","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands",{"name":539,"url":540},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[542,544,547,550,553,556,559],{"title":543,"url":537},"OpenHands README",{"title":545,"url":546},"OpenHands licence (MIT)","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands\u002Fblob\u002Fmain\u002FLICENSE",{"title":548,"url":549},"Agent Canvas 1.25.0 release notes","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fagent-canvas\u002Frelease-notes\u002Fv1.25.0.md",{"title":551,"url":552},"OpenHands sandbox overview","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fsandboxes\u002Foverview.md",{"title":554,"url":555},"OpenHands quick start","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Finstallation",{"title":557,"url":558},"OpenHands pricing","https:\u002F\u002Fwww.openhands.dev\u002Fpricing",{"title":560,"url":561},"Introducing the OpenHands Index","https:\u002F\u002Fwww.openhands.dev\u002Fblog\u002Fintroducing-the-openhands-index","\u002Fimages\u002Fblog\u002Fopenhands\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenhands\u002Fog.jpg",[61,62,63],"OpenHands: the open-source coding agent you operate","OpenHands 1.25.0 is an MIT-licensed coding agent platform with a web canvas, a CLI, sandboxed execution and scheduled automations. A review of where it is strong and where it gets heavy.","Cover artwork for the OpenHands review showing a loop from task to agent to sandboxed run and back","https:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands",1791383548857]