[{"data":1,"prerenderedAt":221},["ShallowReactive",2],{"navigation_docs":3,"-harnesses-openbot":112,"-harnesses-openbot-surround":218},[4,48],{"title":5,"path":6,"stem":7,"children":8,"icon":47},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Registry and paths","\u002Fguide\u002Fregistry","1.guide\u002F02.registry",{"title":16,"path":17,"stem":18},"Running another harness","\u002Fguide\u002Finvoke","1.guide\u002F03.invoke",{"title":20,"path":21,"stem":22},"MCP servers","\u002Fguide\u002Fmcp-servers","1.guide\u002F04.mcp-servers",{"title":24,"path":25,"stem":26},"Instructions files","\u002Fguide\u002Fagents-sync","1.guide\u002F05.agents-sync",{"title":28,"path":29,"stem":30},"CLI","\u002Fguide\u002Fcli","1.guide\u002F06.cli",{"title":32,"path":33,"stem":34},"Agents","\u002Fguide\u002Fagents","1.guide\u002F07.agents",{"title":36,"path":37,"stem":38},"Sessions","\u002Fguide\u002Fsessions","1.guide\u002F08.sessions",{"title":40,"path":41,"stem":42},"Custom harnesses","\u002Fguide\u002Fcustom","1.guide\u002F09.custom",{"title":44,"path":45,"stem":46},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F10.explorer","i-lucide-book-open",{"title":49,"path":50,"stem":51,"children":52,"icon":111},"Harnesses","\u002Fharnesses","2.harnesses\u002F00.index",[53,55,59,63,67,71,75,79,83,87,91,95,99,103,107],{"title":54,"path":50,"stem":51},"Overview",{"title":56,"path":57,"stem":58},"Claude Code","\u002Fharnesses\u002Fclaude","2.harnesses\u002F01.claude",{"title":60,"path":61,"stem":62},"Codex CLI","\u002Fharnesses\u002Fcodex","2.harnesses\u002F02.codex",{"title":64,"path":65,"stem":66},"Gemini CLI","\u002Fharnesses\u002Fgemini","2.harnesses\u002F03.gemini",{"title":68,"path":69,"stem":70},"Antigravity CLI","\u002Fharnesses\u002Fantigravity","2.harnesses\u002F04.antigravity",{"title":72,"path":73,"stem":74},"Grok CLI","\u002Fharnesses\u002Fgrok","2.harnesses\u002F05.grok",{"title":76,"path":77,"stem":78},"OpenCode","\u002Fharnesses\u002Fopencode","2.harnesses\u002F06.opencode",{"title":80,"path":81,"stem":82},"Pi","\u002Fharnesses\u002Fpi","2.harnesses\u002F07.pi",{"title":84,"path":85,"stem":86},"OMP","\u002Fharnesses\u002Fomp","2.harnesses\u002F08.omp",{"title":88,"path":89,"stem":90},"Cursor","\u002Fharnesses\u002Fcursor","2.harnesses\u002F09.cursor",{"title":92,"path":93,"stem":94},"GitHub Copilot","\u002Fharnesses\u002Fgithub-copilot","2.harnesses\u002F10.github-copilot",{"title":96,"path":97,"stem":98},"Mastra Code","\u002Fharnesses\u002Fmastracode","2.harnesses\u002F11.mastracode",{"title":100,"path":101,"stem":102},"Freebuff","\u002Fharnesses\u002Ffreebuff","2.harnesses\u002F12.freebuff",{"title":104,"path":105,"stem":106},"Prime Agent","\u002Fharnesses\u002Fprime-agent","2.harnesses\u002F13.prime-agent",{"title":108,"path":109,"stem":110},"OpenBot","\u002Fharnesses\u002Fopenbot","2.harnesses\u002F14.openbot","i-lucide-library",{"id":113,"title":108,"body":114,"description":211,"extension":212,"links":213,"meta":214,"navigation":215,"path":109,"seo":216,"stem":110,"__hash__":217},"docs\u002F2.harnesses\u002F14.openbot.md",{"type":115,"value":116,"toc":207},"minimark",[117,121,134,153,164,183,204],[118,119],"harness-facts",{"id":120},"openbot",[122,123,124,125,129,130,133],"p",{},"OpenBot is a desktop app by nightly-labs, not a CLI. It hosts Codex, Claude Code, Grok and other CLIs as persistent agents. There's no headless mode, so every run mode is refused. Ask for ",[126,127,128],"code",{},"--version","? You'd start the app instead. The registry reports ",[126,131,132],{},"null"," rather than probe.",[122,135,136,137,140,141,144,145,148,149,152],{},"Its state lives in Electron's userData directory. On Linux, that's ",[126,138,139],{},"~\u002F.config\u002FOpenBot\u002F",", unless ",[126,142,143],{},"XDG_CONFIG_HOME"," moves it. The ",[126,146,147],{},"openbot.db"," database holds agents, conversations, routines and MCP servers. I like having one source of truth here. The servers live in ",[126,150,151],{},"projection_mcp_servers",", and the registry can sync them. OpenBot reads the table whenever it starts an agent, so a sync needs no restart.",[122,154,155,156,159,160,163],{},"OpenBot reads your skills from ",[126,157,158],{},"~\u002F.agents\u002Fskills\u002F",". That's the folder Codex's skills sync uses, so syncing Codex covers OpenBot. It leaves out skills the hosted CLI already loads. Skills made in the app live in ",[126,161,162],{},"local-skills\u002F"," under userData, with an immutable directory for each revision.",[122,165,166,167,170,171,174,175,178,179,182],{},"Each agent has a workspace under ",[126,168,169],{},"~\u002FOpenBot\u002FAgents\u002F\u003Cagent-id>\u002F",". Its rules live in ",[126,172,173],{},"AGENTS.md"," at the workspace root. Older workspaces keep ",[126,176,177],{},"CLAUDE.md",". There's no single user file for ",[126,180,181],{},"agents sync"," to update. The hosted CLI still reads its own user instructions.",[122,184,185,186,189,190,192,193,196,197,199,200,203],{},"OpenBot sets ",[126,187,188],{},"OPENBOT_AGENT_PROCESS=1"," on every CLI it starts. A hosted CLI with its own marker takes precedence. Codex sets none, so a Codex agent detects as ",[126,191,120],{},". On Linux, an AppImage install can show a hollow dot in ",[126,194,195],{},"harnesses detect",". The ",[126,198,120],{}," command is on ",[126,201,202],{},"PATH"," only with the Nix package.",[205,206],"harness-sheet",{"id":120},{"title":208,"searchDepth":209,"depth":209,"links":210},"",2,[],"A desktop app that hosts CLI agents. Its state lives in Electron userData and every run mode is refused.","md",null,{},true,{"title":108,"description":211},"Bf5NPSchUfXiqs4vF598Fu5x89iI3QZVMDfORveksd8",[219,213],{"title":104,"path":105,"stem":106,"description":220,"children":-1},"Prime Intellect's Pi fork. One Python REPL as the only tool, flat JSONL sessions with artifacts beside them, model listing, advisor and agent modes but nothing read-only.",1793630869837]