[{"data":1,"prerenderedAt":1225},["ShallowReactive",2],{"blog-post-hermes-vs-pi-vs-opencode":3,"related-posts-hermes-vs-pi-vs-opencode":1199},{"id":4,"title":5,"author":6,"body":10,"category":1172,"date":1173,"description":1174,"extension":1175,"featured":1176,"hideToc":1176,"image":1177,"imageAlt":1178,"imageHeight":1179,"imageWidth":1180,"itemList":1181,"lang":1181,"meta":1182,"navigation":1183,"noindex":1176,"path":1184,"readingTime":1185,"redirected":1176,"relatedSlugs":1181,"seo":1186,"seoTitle":1187,"stem":1188,"subtitle":1189,"tags":1190,"updatedDate":1181,"__hash__":1198},"blog/blog/hermes-vs-pi-vs-opencode.md","Hermes vs Pi vs OpenCode: Which AI Agent to Use for Which Job",{"name":7,"role":8,"avatar":9},"Shabnam Katoch","Growth Head","/img/avatars/shabnam-profile.jpeg",{"type":11,"value":12,"toc":1136},"minimark",[13,22,25,28,80,83,88,93,102,108,114,118,125,128,133,139,143,150,160,165,169,344,348,351,354,451,454,476,479,486,493,497,505,508,511,522,526,532,538,541,545,548,555,558,569,575,579,582,585,631,638,700,703,729,739,818,821,844,849,942,948,952,956,959,963,966,970,973,977,980,984,987,991,994,998,1001,1030,1043,1047,1059,1072,1079,1083,1087,1090,1094,1097,1101,1104,1108,1111,1115,1118,1122,1125,1129,1132],[14,15,16,17,21],"p",{},"Use Pi or OpenCode for writing code, and Hermes Agent for research, automation and personal-agent work. That's what each tool was built for, and it's what our measurements below point to: ",[18,19,20],"strong",{},"before you type anything, Hermes sends the model about 10,400 tokens, OpenCode about 5,100 and Pi about 1,500."," On a local model with a 64K window, Hermes has used a sixth of it on turn one.",[14,23,24],{},"They're all free, open source and MIT-licensed, and they all run on the models you choose. The difference is scope. Hermes tries to do everything for you. Pi does almost nothing until you extend it. OpenCode does one job, coding, with a full set of tools for it.",[14,26,27],{},"Based on what each was built for, and on what we measured below:",[29,30,31,44],"table",{},[32,33,34],"thead",{},[35,36,37,41],"tr",{},[38,39,40],"th",{},"If you want…",[38,42,43],{},"Use",[45,46,47,56,64,72],"tbody",{},[35,48,49,53],{},[50,51,52],"td",{},"A coding agent in the terminal with plan mode and editor support",[50,54,55],{},"OpenCode",[35,57,58,61],{},[50,59,60],{},"A minimal, hackable coding agent you shape yourself",[50,62,63],{},"Pi",[35,65,66,69],{},[50,67,68],{},"Automation, memory, schedules and chat apps",[50,70,71],{},"Hermes Agent",[35,73,74,77],{},[50,75,76],{},"All three jobs from one place",[50,78,79],{},"Hermes, handing coding work to a coding tool",[14,81,82],{},"All facts below were checked against each project's repo, docs and release notes on 25 October 2026.",[84,85,87],"h2",{"id":86},"what-each-one-is-built-for","What each one is built for",[89,90,92],"h3",{"id":91},"hermes-agent-the-do-everything-agent","Hermes Agent: the do-everything agent",[14,94,95,101],{},[96,97,71],"a",{"href":98,"rel":99},"https://github.com/NousResearch/hermes-agent",[100],"nofollow",", from Nous Research, is a personal agent and orchestrator. It remembers you across sessions, writes and improves its own skills, runs jobs on a schedule, delegates to subagents, and talks to you on Telegram, Discord, Slack, WhatsApp, Signal, Teams and around two dozen other platforms. It has a CLI, a terminal UI, and a desktop app that first shipped in v0.16 in June 2026. The current release is v0.22.5 (23 October 2026).",[14,103,104,107],{},[18,105,106],{},"Strengths:"," memory, skills, schedules, messaging, subagents and a large plugin catalog. Since v0.22, it can also install and run local models through llama.cpp for you.",[14,109,110,113],{},[18,111,112],{},"Weakness for coding:"," every turn carries skills, tools and memory that a coding task doesn't need. That's context the model has to read, and tokens you pay for.",[89,115,117],{"id":116},"pi-the-four-tool-coding-agent","Pi: the four-tool coding agent",[14,119,120,124],{},[96,121,63],{"href":122,"rel":123},"https://pi.dev",[100]," was started by Mario Zechner and moved with him to Earendil in April 2026. His announcement was clear: \"pi is MIT licensed. It will stay MIT licensed.\" The current version is 1.4.0 (21 October 2026).",[14,126,127],{},"Pi gives the model four tools by default (read, write, edit and bash) and very little else. When Zechner introduced it in November 2025, he wrote that the system prompt and tool definitions together \"come in below 1000 tokens\". It has grown a little since: in our measurement of version 1.4.0, it was about 1,500 tokens, still the smallest of the three by far. It runs in five modes: interactive, print, JSON, RPC and as an SDK.",[14,129,130,132],{},[18,131,106],{}," a tiny prompt, speed, tree-shaped sessions you can branch, and TypeScript extensions for anything you want to add. The package catalog at pi.dev lists 5,353 packages.",[14,134,135,138],{},[18,136,137],{},"Weakness:"," you build what you need. Pi's README says it \"skips features like sub-agents and plan mode\", and it \"does not include a built-in permission system\", so it doesn't ask before running commands. Its docs recommend running it in a container or sandbox.",[89,140,142],{"id":141},"opencode-the-coding-ide-in-your-terminal","OpenCode: the coding IDE in your terminal",[14,144,145,149],{},[96,146,55],{"href":147,"rel":148},"https://opencode.ai",[100]," comes from Anomaly, the team behind SST, and has passed 220,000 GitHub stars. It's a full coding agent with a terminal UI, a desktop app in beta, and a web interface. It has an extension for VS Code and its forks (Cursor, Windsurf, VSCodium), and works with JetBrains IDEs, Zed and Neovim through the Agent Client Protocol. OpenCode V2 is at v2.1.4 (23 October 2026).",[14,151,152,154,155,159],{},[18,153,106],{}," two built-in agents, Build for making changes and Plan for thinking without editing files, support for 75+ model providers including local models through Ollama, and editor integration out of the box. It can also feed language-server diagnostics back to the model, though that's off by default; you turn it on with ",[156,157,158],"code",{},"\"lsp\": true",".",[14,161,162,164],{},[18,163,137],{}," it's a coding tool and nothing else. No memory across projects, no schedules, no chat apps.",[84,166,168],{"id":167},"side-by-side-comparison","Side-by-side comparison",[29,170,171,183],{},[32,172,173],{},[35,174,175,177,179,181],{},[38,176],{},[38,178,71],{},[38,180,63],{},[38,182,55],{},[45,184,185,201,215,231,247,263,282,298,314,329],{},[35,186,187,192,195,198],{},[50,188,189],{},[18,190,191],{},"Made by",[50,193,194],{},"Nous Research",[50,196,197],{},"Mario Zechner, now Earendil",[50,199,200],{},"Anomaly (team behind SST)",[35,202,203,208,211,213],{},[50,204,205],{},[18,206,207],{},"License",[50,209,210],{},"MIT",[50,212,210],{},[50,214,210],{},[35,216,217,222,225,228],{},[50,218,219],{},[18,220,221],{},"What it is",[50,223,224],{},"Personal agent and orchestrator",[50,226,227],{},"Minimal terminal coding agent",[50,229,230],{},"Full terminal coding agent",[35,232,233,238,241,244],{},[50,234,235],{},[18,236,237],{},"Interfaces",[50,239,240],{},"CLI, terminal UI, desktop app, 30+ chat platforms",[50,242,243],{},"Terminal (interactive, print, JSON, RPC, SDK)",[50,245,246],{},"Terminal UI, desktop (beta), web, VS Code extension; JetBrains, Zed and Neovim via ACP",[35,248,249,254,257,260],{},[50,250,251],{},[18,252,253],{},"Models",[50,255,256],{},"Many providers, plus local models through llama.cpp",[50,258,259],{},"30+ providers; local via llama.cpp, Ollama, LM Studio, vLLM",[50,261,262],{},"75+ providers; local via Ollama",[35,264,265,270,273,276],{},[50,266,267],{},[18,268,269],{},"MCP",[50,271,272],{},"Yes, plus a reviewed plugin catalog (600 at launch, now over 800 entries)",[50,274,275],{},"Yes, since 0.99 (29 Sep 2026); MCP tools run inside a sandboxed \"codemode\" by default",[50,277,278,279],{},"Yes, configured in ",[156,280,281],{},"opencode.json",[35,283,284,289,292,295],{},[50,285,286],{},[18,287,288],{},"Coding helpers",[50,290,291],{},"Subagents; bundled skills that hand work to Claude Code, Codex or OpenCode",[50,293,294],{},"None built in; add your own with TypeScript extensions",[50,296,297],{},"Build and Plan agents; optional LSP diagnostics",[35,299,300,305,308,311],{},[50,301,302],{},[18,303,304],{},"Safety default",[50,306,307],{},"Approval modes (smart by default); desktop plugins aren't sandboxed",[50,309,310],{},"No permission prompts; docs recommend a container",[50,312,313],{},"Most permissions default to allow; a few ask",[35,315,316,321,324,327],{},[50,317,318],{},[18,319,320],{},"Reads AGENTS.md",[50,322,323],{},"Yes",[50,325,326],{},"Yes (and CLAUDE.md)",[50,328,323],{},[35,330,331,336,339,341],{},[50,332,333],{},[18,334,335],{},"Cost",[50,337,338],{},"Free software; you pay your model provider",[50,340,338],{},[50,342,343],{},"Free software; optional Zen or Go plans",[84,345,347],{"id":346},"what-each-agent-sends-before-youve-asked-anything-we-measured","What each agent sends before you've asked anything (we measured)",[14,349,350],{},"Every turn, an agent sends the model its system prompt and the definitions of every tool it can use, on top of your message. That fixed overhead decides how much of a model's context window is left for your code, and how many tokens you pay for on every turn.",[14,352,353],{},"So we measured it. On 25 October 2026 we installed each agent fresh with default settings, pointed it at a stand-in OpenAI-compatible endpoint that records requests, opened an empty git repository, and asked \"Say OK\". Then we counted the first real request with OpenAI's o200k tokenizer.",[29,355,356,371],{},[32,357,358],{},[35,359,360,362,365,368],{},[38,361],{},[38,363,364],{},"Hermes Agent v0.22.5",[38,366,367],{},"Pi 1.4.0",[38,369,370],{},"OpenCode 2.1.4",[45,372,373,387,401,415,437],{},[35,374,375,378,381,384],{},[50,376,377],{},"System prompt",[50,379,380],{},"1,356 tokens",[50,382,383],{},"765 tokens",[50,385,386],{},"1,947 tokens",[35,388,389,392,395,398],{},[50,390,391],{},"Tools offered",[50,393,394],{},"20",[50,396,397],{},"4",[50,399,400],{},"12",[35,402,403,406,409,412],{},[50,404,405],{},"Tool definitions",[50,407,408],{},"9,073 tokens",[50,410,411],{},"714 tokens",[50,413,414],{},"3,181 tokens",[35,416,417,422,427,432],{},[50,418,419],{},[18,420,421],{},"Fixed overhead per turn",[50,423,424],{},[18,425,426],{},"about 10,400 tokens",[50,428,429],{},[18,430,431],{},"about 1,500 tokens",[50,433,434],{},[18,435,436],{},"about 5,100 tokens",[35,438,439,442,445,448],{},[50,440,441],{},"Share of a 64K context window",[50,443,444],{},"about 16%",[50,446,447],{},"about 2%",[50,449,450],{},"about 8%",[14,452,453],{},"Here's what fills those tool definitions:",[455,456,457,464,470],"ul",{},[458,459,460,463],"li",{},[18,461,462],{},"Hermes:"," terminal, file read, write, patch and search, code execution, browser, web search and extract, vision, text-to-speech, memory, skills (two tools), subagent delegation, clarifying questions, connections, and three tools for finding and calling more tools.",[458,465,466,469],{},[18,467,468],{},"Pi:"," read, bash, edit, write. That's all.",[458,471,472,475],{},[18,473,474],{},"OpenCode:"," read, write, edit, glob, grep, shell, execute, web search and fetch, skills, subagents, and a tool for asking you a question.",[14,477,478],{},"Hermes and OpenCode also made a second, small call to name the session (about 350 and 500 tokens). Pi didn't.",[14,480,481,482,485],{},"Treat these as starting points, not fixed sizes. Every MCP server, skill and AGENTS.md file you add increases them, and Hermes offers more tools once you connect more services. The tokenizer matters too: Claude and Gemini count text slightly differently. But the gap is real. ",[18,483,484],{},"Before you've typed anything, Hermes is carrying about seven times Pi's overhead, and OpenCode about three and a half times."," On a big cloud model with prompt caching, that's mostly a cost question. On a local model with a 64K window, it's a sixth of your context gone on turn one.",[14,487,488],{},[489,490],"img",{"alt":491,"src":492},"Tokens sent before you ask anything, first request on a fresh install with default settings: Hermes Agent v0.22.5 10,429, OpenCode 2.1.4 5,128, Pi 1.4.0 1,479 (o200k tokenizer).","/img/blog/hermes-vs-pi-vs-opencode-token-overhead.jpg",[84,494,496],{"id":495},"why-developers-say-hermes-is-bloated-for-coding-and-what-nous-changed","Why developers say Hermes is bloated for coding (and what Nous changed)",[14,498,499,500,504],{},"The complaint is fair. A coding task needs the repo, the error and a few tools. Hermes, by design, also brings its memory, its skills and a long list of tools into every turn. That costs tokens, and it spreads the model's attention across things the task doesn't need. Our post on ",[96,501,503],{"href":502},"/blog/skills-that-reduce-token-usage","skills that reduce token usage"," explains why loading less up front matters so much.",[14,506,507],{},"Nous has been answering it. The v0.22.0 release notes say memory providers \"now live with their makers\" (Honcho, Supermemory, Mem0 and others) as plugins, along with integrations like Home Assistant and Spotify, leaving \"a codebase a third smaller\", about 1.06M lines down to 698K.",[14,509,510],{},"If you want to stay on Hermes for coding anyway:",[455,512,513,516,519],{},[458,514,515],{},"Load fewer skills and tools for coding sessions.",[458,517,518],{},"Keep a separate, coding-specific profile.",[458,520,521],{},"Or let Hermes hand coding to a worker tool, which is the next section.",[84,523,525],{"id":524},"pi-vs-opencode-for-coding","Pi vs OpenCode for coding",[14,527,528,531],{},[18,529,530],{},"Pick Pi if you want control."," You get a tiny prompt, four tools, and an extension system for building exactly the workflow you want. It's the tool for developers who like to know everything the agent sees, and who are comfortable running it in a container because it won't ask before acting.",[14,533,534,537],{},[18,535,536],{},"Pick OpenCode if you want it ready to use."," Plan mode, editor integration, a desktop app and 75+ providers work without building anything. Most permissions are allowed by default, so review its permission settings before you point it at anything important.",[14,539,540],{},"On token usage: in our measurement above, OpenCode's fixed overhead was about 5,100 tokens a turn against Pi's 1,500. That gap is the price of OpenCode's extra tools (search, web, subagents, questions). Whether it's worth paying depends on whether you'd otherwise build those tools into Pi yourself.",[84,542,544],{"id":543},"using-them-together","Using them together",[14,546,547],{},"A useful way to think about this stack, borrowed from Michael Tuszynski's piece on the two layers of coding agents: coding tools are workers, and Hermes is an orchestrator that can use them as workers.",[14,549,550,551,554],{},"In practice, ",[18,552,553],{},"Hermes ships bundled skills that delegate coding to Claude Code, Codex and OpenCode",", and its delegate tool can drive agents that speak the Agent Client Protocol. There's no Pi skill in Hermes's catalog today, so pairing Hermes with Pi means writing your own.",[14,556,557],{},"The split that works for most people:",[455,559,560,563,566],{},[458,561,562],{},"Hermes keeps the memory, the schedule and the chat channel. It decides what needs doing.",[458,564,565],{},"OpenCode (or another coding tool) does the code change in the repo.",[458,567,568],{},"You review the result.",[14,570,571],{},[489,572],{"alt":573,"src":574},"One orchestrator, coding workers: Hermes Agent keeps memory, schedule and Telegram, and hands code changes to OpenCode, Claude Code or Codex through bundled skills.","/img/blog/hermes-vs-pi-vs-opencode-orchestrator.jpg",[84,576,578],{"id":577},"getting-started-with-each-one","Getting started with each one",[14,580,581],{},"All three install in one line. These commands are from each project's README and docs, checked on 25 October 2026.",[89,583,71],{"id":584},"hermes-agent",[586,587,592],"pre",{"className":588,"code":589,"language":590,"meta":591,"style":591},"language-bash shiki shiki-themes github-light","curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash\nhermes model        # pick a provider and model\n","bash","",[156,593,594,618],{"__ignoreMap":591},[595,596,599,603,607,611,615],"span",{"class":597,"line":598},"line",1,[595,600,602],{"class":601},"s7eDp","curl",[595,604,606],{"class":605},"sYu0t"," -fsSL",[595,608,610],{"class":609},"sYBdl"," https://hermes-agent.nousresearch.com/install.sh",[595,612,614],{"class":613},"sD7c4"," |",[595,616,617],{"class":601}," bash\n",[595,619,621,624,627],{"class":597,"line":620},2,[595,622,623],{"class":601},"hermes",[595,625,626],{"class":609}," model",[595,628,630],{"class":629},"sAwPA","        # pick a provider and model\n",[14,632,633,634,637],{},"MCP servers go in ",[156,635,636],{},"~/.hermes/config.yaml",":",[586,639,643],{"className":640,"code":641,"language":642,"meta":591,"style":591},"language-yaml shiki shiki-themes github-light","mcp_servers:\n  filesystem:\n    command: \"npx\"\n    args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/projects\"]\n","yaml",[156,644,645,655,662,674],{"__ignoreMap":591},[595,646,647,651],{"class":597,"line":598},[595,648,650],{"class":649},"shJU0","mcp_servers",[595,652,654],{"class":653},"sgsFI",":\n",[595,656,657,660],{"class":597,"line":620},[595,658,659],{"class":649},"  filesystem",[595,661,654],{"class":653},[595,663,665,668,671],{"class":597,"line":664},3,[595,666,667],{"class":649},"    command",[595,669,670],{"class":653},": ",[595,672,673],{"class":609},"\"npx\"\n",[595,675,677,680,683,686,689,692,694,697],{"class":597,"line":676},4,[595,678,679],{"class":649},"    args",[595,681,682],{"class":653},": [",[595,684,685],{"class":609},"\"-y\"",[595,687,688],{"class":653},", ",[595,690,691],{"class":609},"\"@modelcontextprotocol/server-filesystem\"",[595,693,688],{"class":653},[595,695,696],{"class":609},"\"/home/user/projects\"",[595,698,699],{"class":653},"]\n",[89,701,63],{"id":702},"pi",[586,704,706],{"className":588,"code":705,"language":590,"meta":591,"style":591},"curl -fsSL https://pi.dev/install.sh | sh\npi                  # then /login to add a provider, /model to pick one\n",[156,707,708,722],{"__ignoreMap":591},[595,709,710,712,714,717,719],{"class":597,"line":598},[595,711,602],{"class":601},[595,713,606],{"class":605},[595,715,716],{"class":609}," https://pi.dev/install.sh",[595,718,614],{"class":613},[595,720,721],{"class":601}," sh\n",[595,723,724,726],{"class":597,"line":620},[595,725,702],{"class":601},[595,727,728],{"class":629},"                  # then /login to add a provider, /model to pick one\n",[14,730,633,731,734,735,738],{},[156,732,733],{},"~/.pi/agent/mcp.json"," (or ",[156,736,737],{},".pi/mcp.json"," for one project):",[586,740,744],{"className":741,"code":742,"language":743,"meta":591,"style":591},"language-json shiki shiki-themes github-light","{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\", \".\"]\n    }\n  }\n}\n","json",[156,745,746,751,759,766,779,800,806,812],{"__ignoreMap":591},[595,747,748],{"class":597,"line":598},[595,749,750],{"class":653},"{\n",[595,752,753,756],{"class":597,"line":620},[595,754,755],{"class":605},"  \"mcpServers\"",[595,757,758],{"class":653},": {\n",[595,760,761,764],{"class":597,"line":664},[595,762,763],{"class":605},"    \"filesystem\"",[595,765,758],{"class":653},[595,767,768,771,773,776],{"class":597,"line":676},[595,769,770],{"class":605},"      \"command\"",[595,772,670],{"class":653},[595,774,775],{"class":609},"\"npx\"",[595,777,778],{"class":653},",\n",[595,780,782,785,787,789,791,793,795,798],{"class":597,"line":781},5,[595,783,784],{"class":605},"      \"args\"",[595,786,682],{"class":653},[595,788,685],{"class":609},[595,790,688],{"class":653},[595,792,691],{"class":609},[595,794,688],{"class":653},[595,796,797],{"class":609},"\".\"",[595,799,699],{"class":653},[595,801,803],{"class":597,"line":802},6,[595,804,805],{"class":653},"    }\n",[595,807,809],{"class":597,"line":808},7,[595,810,811],{"class":653},"  }\n",[595,813,815],{"class":597,"line":814},8,[595,816,817],{"class":653},"}\n",[89,819,55],{"id":820},"opencode",[586,822,824],{"className":588,"code":823,"language":590,"meta":591,"style":591},"curl -fsSL https://opencode.ai/v2/install | bash\n# or: npm i -g @opencode/cli@latest\n",[156,825,826,839],{"__ignoreMap":591},[595,827,828,830,832,835,837],{"class":597,"line":598},[595,829,602],{"class":601},[595,831,606],{"class":605},[595,833,834],{"class":609}," https://opencode.ai/v2/install",[595,836,614],{"class":613},[595,838,617],{"class":601},[595,840,841],{"class":597,"line":620},[595,842,843],{"class":629},"# or: npm i -g @opencode/cli@latest\n",[14,845,633,846,848],{},[156,847,281],{}," at your project root:",[586,850,852],{"className":741,"code":851,"language":743,"meta":591,"style":591},"{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"filesystem\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@modelcontextprotocol/server-filesystem\", \".\"],\n      \"enabled\": true\n    }\n  }\n}\n",[156,853,854,858,870,877,883,895,918,928,932,937],{"__ignoreMap":591},[595,855,856],{"class":597,"line":598},[595,857,750],{"class":653},[595,859,860,863,865,868],{"class":597,"line":620},[595,861,862],{"class":605},"  \"$schema\"",[595,864,670],{"class":653},[595,866,867],{"class":609},"\"https://opencode.ai/config.json\"",[595,869,778],{"class":653},[595,871,872,875],{"class":597,"line":664},[595,873,874],{"class":605},"  \"mcp\"",[595,876,758],{"class":653},[595,878,879,881],{"class":597,"line":676},[595,880,763],{"class":605},[595,882,758],{"class":653},[595,884,885,888,890,893],{"class":597,"line":781},[595,886,887],{"class":605},"      \"type\"",[595,889,670],{"class":653},[595,891,892],{"class":609},"\"local\"",[595,894,778],{"class":653},[595,896,897,899,901,903,905,907,909,911,913,915],{"class":597,"line":802},[595,898,770],{"class":605},[595,900,682],{"class":653},[595,902,775],{"class":609},[595,904,688],{"class":653},[595,906,685],{"class":609},[595,908,688],{"class":653},[595,910,691],{"class":609},[595,912,688],{"class":653},[595,914,797],{"class":609},[595,916,917],{"class":653},"],\n",[595,919,920,923,925],{"class":597,"line":808},[595,921,922],{"class":605},"      \"enabled\"",[595,924,670],{"class":653},[595,926,927],{"class":605},"true\n",[595,929,930],{"class":597,"line":814},[595,931,805],{"class":653},[595,933,935],{"class":597,"line":934},9,[595,936,811],{"class":653},[595,938,940],{"class":597,"line":939},10,[595,941,817],{"class":653},[14,943,944,945,947],{},"One thing to do on day one with OpenCode: turn on LSP if your language has a server (",[156,946,158],{}," in the same file), and review the permission settings, since most actions are allowed by default. With Pi, run it in a container or a throwaway VM until you trust your setup, because it won't ask before running commands.",[84,949,951],{"id":950},"which-one-should-you-pick-five-common-situations","Which one should you pick? Five common situations",[89,953,955],{"id":954},"you-want-a-coding-agent-in-the-terminal-tomorrow","You want a coding agent in the terminal tomorrow",[14,957,958],{},"Start with OpenCode. Plan mode lets you see what it intends before it edits anything, the VS Code extension keeps it close to your editor, and you can point it at whatever model you already pay for. Check its permission settings first, since most actions are allowed by default.",[89,960,962],{"id":961},"you-want-to-control-everything-the-agent-does","You want to control everything the agent does",[14,964,965],{},"Pick Pi. You'll spend an afternoon adding the extensions you need, but you'll know exactly what's in the prompt. Run it in a container, because it won't stop to ask before running a command.",[89,967,969],{"id":968},"you-want-an-assistant-with-memory-schedules-and-chat-apps","You want an assistant with memory, schedules and chat apps",[14,971,972],{},"That's Hermes. Neither Pi nor OpenCode tries to do this.",[89,974,976],{"id":975},"you-want-one-assistant-that-also-writes-code-sometimes","You want one assistant that also writes code sometimes",[14,978,979],{},"Keep Hermes as the front door and let it hand coding tasks to OpenCode, Claude Code or Codex through its bundled skills. You get the memory and scheduling without paying for them on every coding turn.",[89,981,983],{"id":982},"your-agent-is-really-for-email-leads-and-reports","Your \"agent\" is really for email, leads and reports",[14,985,986],{},"None of the three is the obvious fit, because each expects someone to install, update and secure it. That's the gap a managed platform fills, which is the last section below.",[89,988,990],{"id":989},"whichever-you-pick","Whichever you pick",[14,992,993],{},"Start with one narrow job, give it a clear definition of done, and widen its scope only after it's run cleanly for a week.",[84,995,997],{"id":996},"cost-what-you-actually-pay","Cost: what you actually pay",[14,999,1000],{},"All three are free and open source. What you pay for is the model.",[455,1002,1003,1008,1013],{},[458,1004,1005,1007],{},[18,1006,462],{}," your model provider, or a Nous Portal subscription if you want its bundled models and tools.",[458,1009,1010,1012],{},[18,1011,468],{}," your model provider. One warning from Pi's own changelog: if you sign in with a Claude subscription, \"Anthropic third-party usage draws from extra usage and is billed per token\", not from your plan's included usage.",[458,1014,1015,1017,1018,1023,1024,1029],{},[18,1016,474],{}," your model provider, or one of its optional plans. ",[96,1019,1022],{"href":1020,"rel":1021},"https://opencode.ai/docs/zen",[100],"Zen"," is pay as you go, sold at cost, with a card processing fee of 4.6% + $0.31 on top-ups. ",[96,1025,1028],{"href":1026,"rel":1027},"https://opencode.ai/docs/go",[100],"Go"," is $10 a month, and Go Plus is $40 a month.",[14,1031,1032,1033,1037,1038,1042],{},"Whichever you choose, bringing your own key keeps the model bill at list price. Our explainers on ",[96,1034,1036],{"href":1035},"/blog/byok-ai-bring-your-own-key","BYOK"," and ",[96,1039,1041],{"href":1040},"/blog/openrouter-vs-direct-api-agents","OpenRouter vs direct API pricing"," show how much that's worth.",[84,1044,1046],{"id":1045},"when-you-dont-want-to-run-any-of-them-yourself","When you don't want to run any of them yourself",[14,1048,1049,1050,1054,1055,159],{},"If the work you need is business automation (your inbox, leads, reports, follow-ups) rather than code, you may not want to run an agent at all. BetterClaw runs the agent for you, on any model with your own key and zero markup, with 120+ connectors and approvals before anything sends. If you're weighing it against Hermes specifically, see our ",[96,1051,1053],{"href":1052},"/compare/hermes","Hermes vs BetterClaw comparison",", or ",[96,1056,1058],{"href":1057},"/docs/getting-started/quickstart","set up your first agent",[14,1060,1061,1062,1066,1067,1071],{},"Already running Hermes and something's broken? Our ",[96,1063,1065],{"href":1064},"/blog/hermes-agent-not-working","Hermes Agent troubleshooting guide"," covers the common failures. And whichever coding agent you pick, all three read AGENTS.md; our ",[96,1068,1070],{"href":1069},"/blog/agents-md-best-practices","AGENTS.md best practices guide"," covers how to write one they'll follow.",[14,1073,1074,1078],{},[96,1075,1077],{"href":1076},"/pricing","Build your agent in BetterClaw",". Plans start at $19 a month with a 7-day money-back guarantee.",[84,1080,1082],{"id":1081},"frequently-asked-questions","Frequently Asked Questions",[89,1084,1086],{"id":1085},"is-hermes-or-pi-better-for-coding","Is Hermes or Pi better for coding?",[14,1088,1089],{},"Pi or OpenCode, rather than Hermes. Pick Pi if you want control and the smallest prompt, OpenCode if you want plan mode and editor support ready to use. Hermes can code, but every turn carries memory, skills and tools a coding task doesn't need. Hermes is better at automation, schedules and chat-based work.",[89,1091,1093],{"id":1092},"what-is-the-difference-between-pi-and-opencode","What is the difference between Pi and OpenCode?",[14,1095,1096],{},"Pi is minimal: four tools, no plan mode, no subagents and no permission prompts, with TypeScript extensions to add what you need. OpenCode is ready to use: Build and Plan agents, a desktop app, editor integration and 75+ model providers out of the box.",[89,1098,1100],{"id":1099},"which-agent-uses-the-fewest-tokens-per-turn","Which agent uses the fewest tokens per turn?",[14,1102,1103],{},"Pi, by a wide margin. In our measurement of fresh installs with default settings, Pi 1.4.0 sent about 1,500 tokens of system prompt and tool definitions per turn, OpenCode 2.1.4 about 5,100, and Hermes Agent v0.22.5 about 10,400. MCP servers, skills and AGENTS.md files add to all three.",[89,1105,1107],{"id":1106},"is-hermes-agent-bloated","Is Hermes Agent bloated?",[14,1109,1110],{},"For coding, many developers think so, because it brings memory, skills and many tools into every turn. Nous has trimmed it: v0.22.0 moved memory providers and several integrations into plugins and cut the codebase by about a third.",[89,1112,1114],{"id":1113},"does-pi-support-mcp","Does Pi support MCP?",[14,1116,1117],{},"Yes, since version 0.99 (29 September 2026). By default, MCP tools are called from a sandboxed \"codemode\" script environment rather than loaded into the prompt, which keeps their schemas out of the model's context.",[89,1119,1121],{"id":1120},"is-opencode-free","Is OpenCode free?",[14,1123,1124],{},"Yes. OpenCode is free, MIT-licensed software, and you can use it with your own model keys. Its optional Zen plan sells model usage at cost plus a card fee, and its Go plan costs $10 a month.",[89,1126,1128],{"id":1127},"can-i-use-hermes-and-opencode-together","Can I use Hermes and OpenCode together?",[14,1130,1131],{},"Yes. Hermes ships a bundled skill that delegates coding tasks to the OpenCode CLI, so Hermes can keep the memory and schedule while OpenCode makes the code changes.",[1133,1134,1135],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}",{"title":591,"searchDepth":620,"depth":620,"links":1137},[1138,1143,1144,1145,1146,1147,1148,1153,1161,1162,1163],{"id":86,"depth":620,"text":87,"children":1139},[1140,1141,1142],{"id":91,"depth":664,"text":92},{"id":116,"depth":664,"text":117},{"id":141,"depth":664,"text":142},{"id":167,"depth":620,"text":168},{"id":346,"depth":620,"text":347},{"id":495,"depth":620,"text":496},{"id":524,"depth":620,"text":525},{"id":543,"depth":620,"text":544},{"id":577,"depth":620,"text":578,"children":1149},[1150,1151,1152],{"id":584,"depth":664,"text":71},{"id":702,"depth":664,"text":63},{"id":820,"depth":664,"text":55},{"id":950,"depth":620,"text":951,"children":1154},[1155,1156,1157,1158,1159,1160],{"id":954,"depth":664,"text":955},{"id":961,"depth":664,"text":962},{"id":968,"depth":664,"text":969},{"id":975,"depth":664,"text":976},{"id":982,"depth":664,"text":983},{"id":989,"depth":664,"text":990},{"id":996,"depth":620,"text":997},{"id":1045,"depth":620,"text":1046},{"id":1081,"depth":620,"text":1082,"children":1164},[1165,1166,1167,1168,1169,1170,1171],{"id":1085,"depth":664,"text":1086},{"id":1092,"depth":664,"text":1093},{"id":1099,"depth":664,"text":1100},{"id":1106,"depth":664,"text":1107},{"id":1113,"depth":664,"text":1114},{"id":1120,"depth":664,"text":1121},{"id":1127,"depth":664,"text":1128},"Comparison","2026-10-25","Hermes Agent, Pi and OpenCode compared: what each is for, models, MCP and cost. Most people use Pi or OpenCode for coding and Hermes for the rest.","md",false,"/img/blog/hermes-vs-pi-vs-opencode.jpg","Hermes vs Pi vs OpenCode: Hermes Agent for memory, schedules and chat apps; Pi with 4 tools, minimal and hackable; OpenCode for coding with plan mode and 75+ providers",512,1024,null,{},true,"/blog/hermes-vs-pi-vs-opencode","11 min read",{"title":5,"description":1174},"Hermes vs Pi vs OpenCode: Which Agent for Which Job (2026)","blog/hermes-vs-pi-vs-opencode","Three open-source agents, three different philosophies. One is a do-everything personal agent, one is a four-tool coding agent you build on, and one is a full coding IDE in your terminal.",[1191,1192,1193,1194,1195,1196,1197],"hermes vs pi","hermes vs pi vs opencode","hermes vs opencode","pi vs opencode","pi coding agent vs opencode","hermes vs opencode for coding","pi coding agent mcp","_3ih6TirPlMcmJwB4WBD3-4KdhMBQrUtuqRNr0u93lQ",[1200,1209,1217],{"stem":1201,"title":1202,"description":1203,"date":1204,"image":1205,"category":1206,"redirected":1176,"author":1207,"readingTime":1208},"blog/hermes-agent-not-working","Hermes Agent Not Working? Couldn't Start, Backend Exited and Every Other Fix (v0.22.4)","Hermes couldn't start, backend exited, provider auth failed, tools not working with Ollama? Find your exact error, then the fix. Updated for v0.22.","2026-06-08","/img/blog/hermes-agent-not-working.jpg","Troubleshooting",{"name":7,"role":8,"avatar":9},"13 min read",{"stem":1210,"title":1211,"description":1212,"date":1213,"image":1214,"category":1215,"redirected":1176,"author":1216,"readingTime":1208},"blog/hermes-agent-docker-install","Hermes Agent Docker Install: Setup, Compose, and Troubleshooting (2026)","Install Hermes Agent in Docker with the official image: docker run and Compose files, ports 8642 and 9119, volume permissions, updates, Portainer and Synology.","2026-05-15","/img/blog/hermes-agent-docker-install.jpg","Guides",{"name":7,"role":8,"avatar":9},{"stem":1218,"title":1219,"description":1220,"date":1221,"image":1222,"category":1206,"redirected":1176,"author":1223,"readingTime":1224},"blog/hermes-response-truncated-fix","Hermes \"Response Truncated (finish_reason='length')\": 5 Causes and Fixes (v0.21.5)","Hermes \"response truncated\" or \"remained truncated after 4 continuation attempts\"? 5 causes and fixes for v0.21.5, plus the Pi agent truncation error.","2026-05-19","/img/blog/hermes-response-truncated-fix.jpg",{"name":7,"role":8,"avatar":9},"10 min read",1792946477617]