[{"data":1,"prerenderedAt":558},["ShallowReactive",2],{"tool-openhands-en":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":32,"cover":53,"og":54,"expertise":55,"locales":56,"lang":57,"title":60,"description":61,"coverAlt":62,"url":63,"pricing":64,"kind":9,"metaTitle":65,"takeaways":66,"faq":72,"toc":85,"blocks":109,"others":332},"openhands","2026-09-09",9,"agents",[9,10,11,12,13],"Coding agent","Sandboxed execution","Automations","Self-hosted","MIT licence",[4,15,16,17,18,19,20,21],"openhands self-host","open hands coding agent","openhands vs claude code","agent canvas","openhands docker sandbox","open source coding agent","openhands cloud pricing",[23,26,29],{"name":24,"url":25},"OpenHands","https:\u002F\u002Fwww.openhands.dev",{"name":27,"url":28},"OpenHands on GitHub","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands",{"name":30,"url":31},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[33,35,38,41,44,47,50],{"title":34,"url":28},"OpenHands README",{"title":36,"url":37},"OpenHands licence (MIT)","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands\u002Fblob\u002Fmain\u002FLICENSE",{"title":39,"url":40},"Agent Canvas 1.25.0 release notes","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fagent-canvas\u002Frelease-notes\u002Fv1.25.0.md",{"title":42,"url":43},"OpenHands sandbox overview","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fsandboxes\u002Foverview.md",{"title":45,"url":46},"OpenHands quick start","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Finstallation",{"title":48,"url":49},"OpenHands pricing","https:\u002F\u002Fwww.openhands.dev\u002Fpricing",{"title":51,"url":52},"Introducing the OpenHands Index","https:\u002F\u002Fwww.openhands.dev\u002Fblog\u002Fintroducing-the-openhands-index","\u002Fimages\u002Fblog\u002Fopenhands\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenhands\u002Fog.jpg","ai-engineer",[57,58,59],"en","de","hu","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","Free · self-host","OpenHands review: self-hosted coding agent · Balázs Csorba",[67,68,69,70,71],"OpenHands 1.25.0, released 6 October 2026, is MIT-licensed and splits across four repositories: canvas, agent server, client and automation.","Docker is the recommended sandbox; process mode is documented as unsafe, and one container per conversation needs a single environment variable.","Automations on schedules, GitHub events and webhooks are what separate it from a terminal coding agent.","Models are pluggable through LiteLLM, local servers included, so the harness does not lock you to one vendor.","The model sets the outcome quality, while the harness decides the cost and the blast radius of every run.",[73,76,79,82],{"q":74,"a":75},"Is OpenHands free?","The open-source project is MIT-licensed and free to run. The pricing page lists a free local tier and a free Individual tier for the hosted cloud that can bring your own key or buy models at cost, with custom pricing for SaaS or self-hosting in your own VPC.",{"q":77,"a":78},"What is Agent Canvas?","Agent Canvas is the current web front end: it starts conversations, connects to agent backends and schedules automations. It replaced the older OpenHands web UI naming, while some configuration still uses the legacy RUNTIME environment variable.",{"q":80,"a":81},"Does OpenHands need Docker?","Docker is the recommended sandbox but not required: process mode runs the agent server directly on the host without isolation, and remote sandboxes are used by managed deployments. A container per conversation needs OH_CONVERSATION_RUNTIME=docker.",{"q":83,"a":84},"Which models can OpenHands use?","Any model reachable through LiteLLM, including local servers such as Ollama and vLLM, plus the hosted OpenHands provider. LLM profiles let one conversation switch models mid-task.",[86,89,92,95,98,100,103,106],{"id":87,"title":88},"what-it-is","What it is",{"id":90,"title":91},"how-it-works","How it works",{"id":93,"title":94},"getting-started","Getting started",{"id":96,"title":97},"sandboxing","Sandboxing and blast radius",{"id":99,"title":11},"automations",{"id":101,"title":102},"where-it-shingles","Where it shingles",{"id":104,"title":105},"verdict","Verdict",{"id":107,"title":108},"sources","Sources",[110,114,117,120,123,141,144,145,148,157,160,161,164,167,170,177,178,181,196,202,203,206,218,221,222,225,235,238,283,286,287,290,303,307,308],{"type":111,"content":112},"paragraph",[113],"OpenHands is an MIT-licensed platform for running coding agents: a web front end called Agent Canvas, a CLI, a headless mode, a Python SDK and a REST API, all driving agents that edit files and run commands inside a sandbox. The position of this review: it is the most complete open-source option for teams that want to own the execution environment, and it behaves like a platform under active construction rather than a finished product.",{"type":111,"content":115},[116],"It sits where Claude Code, Codex CLI, Aider and the hosted agents sit, between the model and the repository, but on a different contract: the model is a pluggable dependency instead of a bundled one, and the runtime is your infrastructure instead of a vendor’s. Version 1.25.0 was released on 6 October 2026.",{"type":118,"level":119,"id":87,"text":88},"heading",2,{"type":111,"content":121},[122],"OpenHands began as a single repository and is now four: the Agent Canvas front end and local orchestration in OpenHands\u002FOpenHands, the Python agent server and SDK in software-agent-sdk, a TypeScript client, and a separate automation service. That split is the first thing to understand before adopting it.",{"type":124,"ordered":125,"items":126},"list",false,[127,129,131,133,135,137,139],[128],"MIT licence, with the hosted service sold separately by All Hands AI.",[130],"Version 1.25.0, released 6 October 2026, pinning the agent server and the SDK to 1.53.0.",[132],"Surfaces: the Agent Canvas web UI, an interactive CLI, headless mode for CI, a Python SDK, and a REST API for conversations, events and sandboxes.",[134],"Model agnostic through LiteLLM, with profiles for switching models inside a conversation and local servers such as Ollama and vLLM supported.",[136],"Sandbox providers: Docker as the recommended option, a process mode without container isolation, and remote sandboxes for hosted setups.",[138],"Agent Client Protocol support lets Canvas drive Claude Code, Codex or Gemini CLI as alternative backends.",[140],"Automations run on schedules, GitHub events or webhooks, with prebuilt templates for issue to pull request and pull-request review.",{"type":111,"content":142},[143],"Underneath, the agent server exposes a workspace, a tool set covering bash, file edits, a browser and an interactive terminal, plus skills, hooks and MCP servers. The canvas and the automation service are clients of that API, which is why one conversation can start from a button, a cron job or a webhook.",{"type":118,"level":119,"id":90,"text":91},{"type":111,"content":146},[147],"A conversation is a stream of typed events: the agent proposes an action, the action runs in the sandbox, the observation comes back, and the loop continues until the model stops. The interesting decisions sit at the boundary — which files the workspace exposes, which commands the policy allows, and which model profile pays for the next turn.",{"type":149,"attrs":150,"inner":154,"caption":155},"diagram",{"viewBox":151,"role":152,"aria-labelledby":153},"0 0 720 366","img","d-oh-t d-oh-d","\u003Ctitle id=\"d-oh-t\">How an OpenHands conversation runs\u003C\u002Ftitle>\u003Cdesc id=\"d-oh-d\">The flow is a loop with five boxes and a guardrail band. Top left, a Task box labelled prompt or issue sends a line right into the Agent box, which plans and calls tools. The Agent box sends a line right into the Sandbox box, which runs a Docker container. Below the Sandbox an Observation box collects stdout and diffs, and a line leaves its bottom, runs left and returns up into the Agent box, closing the loop. On the left, an Automations box labelled cron and events connects upward into the Task box, showing that a schedule or a webhook can start the same loop. A dashed band at the bottom holds the guardrails: skills and hooks shape behaviour, MCP adds tools, a confirmation policy can block actions, Docker is the recommended sandbox, and process mode runs without container isolation.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"26\" class=\"d-title\">How an OpenHands conversation runs\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"26\" text-anchor=\"end\" class=\"d-label\">one loop, several entry points\u003C\u002Ftext>\u003Crect x=\"30\" y=\"56\" width=\"150\" height=\"56\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"105\" y=\"80\" text-anchor=\"middle\" class=\"d-text\">Task\u003C\u002Ftext>\u003Ctext x=\"105\" y=\"100\" text-anchor=\"middle\" class=\"d-small\">prompt or issue\u003C\u002Ftext>\u003Crect x=\"285\" y=\"56\" width=\"150\" height=\"56\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"360\" y=\"80\" text-anchor=\"middle\" class=\"d-text\">Agent\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"100\" text-anchor=\"middle\" class=\"d-small\">plans and calls tools\u003C\u002Ftext>\u003Crect x=\"540\" y=\"56\" width=\"150\" height=\"56\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"615\" y=\"80\" text-anchor=\"middle\" class=\"d-text\">Sandbox\u003C\u002Ftext>\u003Ctext x=\"615\" y=\"100\" text-anchor=\"middle\" class=\"d-small\">Docker container\u003C\u002Ftext>\u003Cpath d=\"M180 84 H285\" class=\"d-line\" \u002F>\u003Cpath d=\"M435 84 H540\" class=\"d-line\" \u002F>\u003Cpath d=\"M615 112 V160\" class=\"d-line\" \u002F>\u003Crect x=\"540\" y=\"160\" width=\"150\" height=\"56\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"615\" y=\"184\" text-anchor=\"middle\" class=\"d-text\">Observation\u003C\u002Ftext>\u003Ctext x=\"615\" y=\"204\" text-anchor=\"middle\" class=\"d-small\">stdout and diffs\u003C\u002Ftext>\u003Cpath d=\"M615 216 V250 H360 V112\" class=\"d-line\" \u002F>\u003Crect x=\"30\" y=\"160\" width=\"150\" height=\"56\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"105\" y=\"184\" text-anchor=\"middle\" class=\"d-text\">Automations\u003C\u002Ftext>\u003Ctext x=\"105\" y=\"204\" text-anchor=\"middle\" class=\"d-small\">cron and events\u003C\u002Ftext>\u003Cpath d=\"M105 160 V112\" class=\"d-line\" \u002F>\u003Crect x=\"30\" y=\"282\" width=\"660\" height=\"72\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"50\" y=\"308\" class=\"d-text\">Guardrails\u003C\u002Ftext>\u003Ctext x=\"50\" y=\"332\" class=\"d-small\">skills and hooks shape behaviour, MCP adds tools, a confirmation policy can block actions\u003C\u002Ftext>\u003Ctext x=\"50\" y=\"350\" class=\"d-small\">Docker is the recommended sandbox; process mode runs without container isolation\u003C\u002Ftext>",[156],"The loop lives in the agent server, so a button, a cron job and a webhook all reach the same execution path.",{"type":111,"content":158},[159],"Because the loop lives in the agent server rather than in the UI, the same conversation can be started from the canvas, the CLI, a schedule or a webhook, and can be paused, resumed, branched or exported as a trajectory. That is the architectural argument for the project: one execution path with several entry points.",{"type":118,"level":119,"id":93,"text":94},{"type":111,"content":162},[163],"The documented route is Docker: one container publishes the canvas on localhost, mounts a projects directory the agent may reach, and keeps its state in a home directory volume.",{"type":165,"code":166},"code","# one container for the canvas, the agent server and a mounted workspace\nexport PROJECTS_PATH=\"$HOME\u002Fprojects\"\nmkdir -p \"$PROJECTS_PATH\" \"$HOME\u002F.openhands\"\n\ndocker run -it --rm \\\n  -p 127.0.0.1:8000:8000 \\\n  -e AGENT_CANVAS_ALLOW_LAN_SESSION_KEY=true \\\n  -v \"$HOME\u002F.openhands:\u002Fhome\u002Fopenhands\u002F.openhands\" \\\n  -v \"${PROJECTS_PATH}:\u002Fprojects\" \\\n  ghcr.io\u002Fopenhands\u002Fagent-canvas:1.25.0\n\n# open http:\u002F\u002Flocalhost:8000, add a model key, start a conversation",{"type":111,"content":168},[169],"The npm route, npm install -g @openhands\u002Fagent-canvas, needs Node.js 24 and uv and runs the agent server directly on the host; the README warns that this gives the agent full access to the filesystem. The container route is the one to copy into a team setup.",{"type":171,"variant":172,"title":173,"body":174},"callout","warn","Bind it to localhost",[175],[176],"Local listeners bind to 127.0.0.1 so the injected session key is not reachable from other machines, and the README tells you to drop the key-injection variable when publishing on a LAN or a public interface and to set a strong LOCAL_BACKEND_API_KEY instead.",{"type":118,"level":119,"id":96,"text":97},{"type":111,"content":179},[180],"The sandbox is the security boundary, and the docs are blunt about the options: Docker is recommended, process mode is labelled unsafe but fast, and remote sandboxes serve hosted deployments. A sandbox is where commands run and files get edited, so its configuration decides what a prompt can do to a machine.",{"type":124,"ordered":125,"items":182},[183,185,187,192,194],[184],"The Docker sandbox runs the agent server in a container and is the recommended provider on a workstation.",[186],"The process sandbox runs it as a normal process with no container isolation: faster, and only for trusted work.",[188,191],{"tag":165,"children":189},[190],"OH_CONVERSATION_RUNTIME=docker"," gives every conversation its own container, with its own workspace and state.",[193],"Hooks can block dangerous commands and enforce checks before the agent stops, and a confirmation policy can require approval for actions.",[195],"Workspaces are limited to a mounted projects path, so the default container cannot see the rest of the host filesystem.",{"type":171,"variant":197,"title":198,"body":199},"note","Isolation is not permission",[200],[201],"Sandboxing limits where code runs, not what it may reach: network access, mounted secrets and registry credentials still define the blast radius. The self-hosting guide in the repository is the document to read before a canvas leaves localhost.",{"type":118,"level":119,"id":99,"text":11},{"type":111,"content":204},[205],"Automations are the reason to pick this over a terminal agent. A task runs on a schedule or on an event — a GitHub issue, a pull request, a webhook — dispatches a conversation to an agent server, and the result comes back as a comment, a pull request or a Slack message.",{"type":124,"ordered":125,"items":207},[208,210,212,214,216],[209],"Prebuilt templates cover issue to pull request, pull-request review, repository monitoring and a Slack channel monitor.",[211],"Schedules and event triggers share one dashboard, with run history and enable or disable per automation.",[213],"Automations can be exported, imported and synced with a Git repository, so they are edited as files and shared like code.",[215],"Integrations cover Slack, GitHub, Linear, Notion and webhooks; the automation service runs as its own repository and process.",[217],"With a container per conversation, parallel automations do not fight over one workspace.",{"type":111,"content":219},[220],"This is also where the operational cost appears: an always-on canvas, an automation service and per-conversation containers are three more things to watch than a terminal agent. The project’s own use-case pages describe a four-automation pipeline from issue to merge, which is a fair target and an honest amount of machinery.",{"type":118,"level":119,"id":101,"text":102},{"type":111,"content":223},[224],"The weaknesses first: OpenHands moves fast and its surface shows it. Terminology changed from runtimes to sandboxes in V1 while configuration still reads RUNTIME, the front end is now Agent Canvas rather than the older web UI, and the code is spread across four repositories with separately versioned pieces. Teams that pin nothing will find upgrade notes in their tickets.",{"type":124,"ordered":125,"items":226},[227,229,231,233],[228],"API stability: the SDK and the agent server version independently of the canvas, and the 1.25.0 notes pin them to 1.53.0.",[230],"Outcome quality tracks the model: the project’s own OpenHands Index finds small gaps between models on issue resolution and much larger ones across its five-task mix.",[232],"Self-hosted automations need a machine that is always on, plus credential management for GitHub, Slack and the model provider.",[234],"The GUI, the CLI and the canvas overlap, so a team has to choose an entry point instead of inheriting one.",{"type":111,"content":236},[237],"Most of that is managed with discipline rather than avoided: pin the three version numbers together, keep one entry point per team, and read a release note before it reads as an incident.",{"type":239,"head":240,"rows":249},"table",[241,243,245,247],[242],"System",[244],"Where it runs",[246],"Model choice",[248],"Heaviest part",[250,258,267,275],[251,252,254,256],[24],[253],"your Docker, a remote sandbox or a local process",[255],"any provider through LiteLLM, local servers included",[257],"always-on canvas, agent server and containers",[259,261,263,265],[260],"Claude Code",[262],"your terminal, with hooks and CI scripts",[264],"Anthropic models",[266],"almost none",[268,270,272,274],[269],"Aider",[271],"your terminal, with git-aware edits",[273],"many providers, local servers included",[266],[276,278,280,281],[277],"Cline",[279],"a VS Code extension",[273],[282],"an open editor session",{"type":111,"content":284},[285],"The comparison is really about infrastructure. OpenHands buys sandboxed, schedulable, model-agnostic execution and charges for it in always-on services; the terminal agents buy simplicity and give up the control plane.",{"type":118,"level":119,"id":104,"text":105},{"type":111,"content":288},[289],"Adopt OpenHands when the work is unattended: issues that should become pull requests, reviews that should run on every merge, monitors that should watch a repository. For interactive work in one repository, a terminal agent plus a sandbox you already trust is less machinery for the same result.",{"type":124,"ordered":291,"items":292},true,[293,295,297,299,301],[294],"Use it when the model has to stay a swappable dependency: profiles, LiteLLM providers and local servers are first class, so no single vendor is load-bearing.",[296],"Use it self-hosted when owning the execution environment is the point; the MIT licence and the Docker path make that a supported route rather than a workaround.",[298],"Start with the container install, keep projects mounted from one directory, and treat process mode as a debugging convenience.",[300],"Do not adopt it for a stable API: pin the canvas, the agent server and the SDK together and read each release note before upgrading.",[302],"Do not enable automations you cannot audit: every schedule is an agent holding credentials, so confirmation policies and hooks belong on by default.",{"type":304,"content":305},"quote",[306],"OpenHands is not a tool you run on a project. It is a small platform that runs your agents, and the platform is the part you have to staff.",{"type":118,"level":119,"id":107,"text":108},{"type":124,"ordered":291,"items":309},[310,314,317,320,323,326,329],[311],{"tag":312,"href":28,"children":313},"a",[34],[315],{"tag":312,"href":37,"children":316},[36],[318],{"tag":312,"href":40,"children":319},[39],[321],{"tag":312,"href":43,"children":322},[42],[324],{"tag":312,"href":46,"children":325},[45],[327],{"tag":312,"href":49,"children":328},[48],[330],{"tag":312,"href":52,"children":331},[51],[333,397,444,510],{"slug":334,"published":335,"minutes":6,"category":7,"tags":336,"keywords":341,"about":348,"sources":352,"cover":389,"og":390,"expertise":55,"locales":391,"lang":57,"title":392,"description":393,"coverAlt":394,"url":355,"pricing":395,"kind":396},"mcp-reference-servers","2026-09-25",[337,338,339,340],"MCP","Reference servers","Tool protocol","Server SDKs",[342,343,344,345,346,347],"mcp reference servers","modelcontextprotocol servers github","write an mcp server","mcp server examples","mcp server sdk","mcp server security",[349],{"name":350,"url":351},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",[353,356,359,362,365,368,371,374,377,380,383,386],{"title":354,"url":355},"MCP reference servers repository","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers",{"title":357,"url":358},"Repository README and server list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FREADME.md",{"title":360,"url":361},"Security policy","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FSECURITY.md",{"title":363,"url":364},"Release process and trusted publishing","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FRELEASING.md",{"title":366,"url":367},"Filesystem server README","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Ffilesystem\u002FREADME.md",{"title":369,"url":370},"Everything server feature list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Feverything\u002Fdocs\u002Ffeatures.md",{"title":372,"url":373},"MCP Registry","https:\u002F\u002Fregistry.modelcontextprotocol.io\u002F",{"title":375,"url":376},"Archived reference servers","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers-archived",{"title":378,"url":379},"Model Context Protocol documentation","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"title":381,"url":382},"TypeScript MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",{"title":384,"url":385},"Python MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk",{"title":387,"url":388},"FastMCP on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Ffastmcp\u002F","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fog.jpg",[57,58,59],"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":398,"published":399,"minutes":400,"category":7,"tags":401,"keywords":406,"about":413,"sources":419,"cover":436,"og":437,"expertise":55,"locales":438,"lang":57,"title":439,"description":440,"coverAlt":441,"url":442,"pricing":443,"kind":9},"aider","2026-09-23",10,[9,402,403,404,405],"Terminal","Git workflow","BYO key","Open source",[398,407,408,409,410,20,411,412],"aider vs claude code","aider polyglot benchmark","ai pair programming terminal","aider leaderboard","aider architect mode","aider install",[414,416],{"name":269,"url":415},"https:\u002F\u002Faider.chat\u002F",{"name":417,"url":418},"Aider on GitHub","https:\u002F\u002Fgithub.com\u002FAider-AI\u002Faider",[420,422,425,428,431,433],{"title":421,"url":415},"Aider website",{"title":423,"url":424},"Aider LLM leaderboards","https:\u002F\u002Faider.chat\u002Fdocs\u002Fleaderboards\u002F",{"title":426,"url":427},"Aider linting and testing","https:\u002F\u002Faider.chat\u002Fdocs\u002Fusage\u002Flint-test.html",{"title":429,"url":430},"Aider token limits","https:\u002F\u002Faider.chat\u002Fdocs\u002Ftroubleshooting\u002Ftoken-limits.html",{"title":432,"url":418},"Aider repository on GitHub",{"title":434,"url":435},"aider-chat on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Faider-chat\u002F","\u002Fimages\u002Fblog\u002Faider\u002Fcover.webp","\u002Fimages\u002Fblog\u002Faider\u002Fog.jpg",[57,58,59],"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":445,"published":446,"minutes":400,"category":7,"tags":447,"keywords":452,"about":461,"sources":471,"cover":502,"og":503,"expertise":55,"locales":504,"lang":57,"title":505,"description":506,"coverAlt":507,"url":474,"pricing":508,"kind":509},"openai-agents-sdk","2026-09-11",[448,449,450,337,451],"Agent runtime","Tracing","Guardrails","Python",[453,454,455,456,457,458,459,460],"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",[462,465,468],{"name":463,"url":464},"Model context protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_context_protocol",{"name":466,"url":467},"Software framework","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_framework",{"name":469,"url":470},"Agentic AI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgentic_AI",[472,475,478,481,484,487,490,493,496,499],{"title":473,"url":474},"OpenAI Agents SDK documentation: Intro, and Agents SDK or Responses API","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",{"title":476,"url":477},"OpenAI Agents SDK documentation: Running agents","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Frunning_agents\u002F",{"title":479,"url":480},"OpenAI Agents SDK documentation: Guardrails","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fguardrails\u002F",{"title":482,"url":483},"OpenAI Agents SDK documentation: Human-in-the-loop","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fhuman_in_the_loop\u002F",{"title":485,"url":486},"OpenAI Agents SDK documentation: Tracing","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Ftracing\u002F",{"title":488,"url":489},"OpenAI Agents SDK documentation: Configuration","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fconfig\u002F",{"title":491,"url":492},"openai-agents 0.23.1 on PyPI, release history and licence","https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-agents\u002F",{"title":494,"url":495},"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":497,"url":498},"OpenAI API documentation: Agents, comparison of the three runtimes","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"title":500,"url":501},"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",[57,58,59],"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":511,"published":512,"minutes":400,"category":7,"tags":513,"keywords":518,"about":525,"sources":529,"cover":551,"og":552,"expertise":55,"locales":553,"lang":57,"title":554,"description":555,"coverAlt":556,"url":528,"pricing":557,"kind":514},"cursor","2026-09-02",[514,515,516,517,337],"AI code editor","Coding agents","CLI","Usage-based pricing",[511,519,520,521,522,523,524],"cursor vs github copilot","cursor pricing","cursor cli","ai code editor","cursor usage limits","cursor pro plus",[526],{"name":527,"url":528},"Cursor","https:\u002F\u002Fcursor.com",[530,533,536,539,542,545,548],{"title":531,"url":532},"Cursor pricing","https:\u002F\u002Fcursor.com\u002Fpricing",{"title":534,"url":535},"Cursor models and pricing docs","https:\u002F\u002Fcursor.com\u002Fdocs\u002Fmodels-and-pricing",{"title":537,"url":538},"Cursor CLI documentation","https:\u002F\u002Fcursor.com\u002Fdocs\u002Fcli\u002Foverview",{"title":540,"url":541},"GitHub Copilot plans","https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot\u002Fplans",{"title":543,"url":544},"Claude pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":546,"url":547},"Claude Code cost documentation","https:\u002F\u002Fdocs.claude.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fcosts",{"title":549,"url":550},"Cline pricing","https:\u002F\u002Fcline.bot\u002Fpricing","\u002Fimages\u002Fblog\u002Fcursor\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcursor\u002Fog.jpg",[57,58,59],"Cursor reviewed: an AI code editor billed past its sticker price","Cursor bundles an editor, a terminal agent and cloud runs behind one subscription. What the two usage pools really cost, and when Copilot, Claude Code or Cline is the better buy.","Abstract pipeline artwork for the Cursor review","Free · Pro from $20 per month",1791383548749]