[{"data":1,"prerenderedAt":1865},["ShallowReactive",2],{"navigation":3,"/ai/opencode-agent":458,"/ai/opencode-agent-surround":1860},[4,58,91,178,194,201,249,295,315,371,435,449],{"title":5,"path":6,"stem":7,"children":8,"icon":57},"MacOS","/macos","01.macos/01.index",[9,12,17,22,27,32,37,42,47,52],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Recommended Software","/macos/recommended-software","01.macos/02.recommended-software","i-lucide-laptop",{"title":18,"path":19,"stem":20,"icon":21},"Development Applications and Tools","/macos/development-tools","01.macos/03.development-tools","i-lucide-folder-code",{"title":23,"path":24,"stem":25,"icon":26},"Command Line Interface","/macos/cli-tools","01.macos/04.cli-tools","i-lucide-terminal",{"title":28,"path":29,"stem":30,"icon":31},"ZSH Configuration","/macos/zshrc","01.macos/05.zshrc","i-simple-icons-zsh",{"title":33,"path":34,"stem":35,"icon":36},"Uninstall Python","/macos/uninstall-python","01.macos/06.uninstall-python","i-simple-icons-python",{"title":38,"path":39,"stem":40,"icon":41},"Mac Mini Server Setup","/macos/mac-mini-server","01.macos/07.mac-mini-server","i-lucide-server",{"title":43,"path":44,"stem":45,"icon":46},"Image to 3D Model","/macos/image-to-3d","01.macos/08.image-to-3d","i-lucide-rotate-3d",{"title":48,"path":49,"stem":50,"icon":51},"NSVisualEffectView","/macos/material-view","01.macos/09.material-view","i-lucide-layers",{"title":53,"path":54,"stem":55,"icon":56},"SSH","/macos/ssh","01.macos/10.ssh","i-lucide-key-round","i-simple-icons-macos",{"title":59,"path":60,"stem":61,"children":62,"icon":90},"Windows","/windows","02.windows/01.index",[63,64,67,70,75,80,85],{"title":10,"path":60,"stem":61,"icon":11},{"title":13,"path":65,"stem":66,"icon":21},"/windows/recommended-software","02.windows/02.recommended-software",{"title":23,"path":68,"stem":69,"icon":26},"/windows/cli-tools","02.windows/03.cli-tools",{"title":71,"path":72,"stem":73,"icon":74},"Miscellaneous Tips","/windows/miscellaneous-tips","02.windows/04.miscellaneous-tips","i-lucide-lightbulb",{"title":76,"path":77,"stem":78,"icon":79},"Keyboard Shortcuts","/windows/keyboard-shortcuts","02.windows/05.keyboard-shortcuts","i-lucide-keyboard",{"title":81,"path":82,"stem":83,"icon":84},"WSL - Arch Linux","/windows/wsl-arch-linux","02.windows/06.wsl-arch-linux","i-simple-icons-archlinux",{"title":86,"path":87,"stem":88,"icon":89},"VirtualBox on Windows","/windows/virtualbox","02.windows/07.virtualbox","i-simple-icons-virtualbox","i-simple-icons-windows",{"title":92,"path":93,"stem":94,"children":95,"icon":177},"Rust","/rust","03.rust/01.index",[96,98,103,108,113,118,123,128,132,136,140,144,148,152,156,161,165,169,173],{"title":97,"path":93,"stem":94,"icon":26},"Installation",{"title":99,"path":100,"stem":101,"icon":102},"Continuous Integration","/rust/ci","03.rust/02.ci","i-lucide-workflow",{"title":104,"path":105,"stem":106,"icon":107},"Benchmarking with Criterion","/rust/benchmarking","03.rust/03.benchmarking","i-lucide-timer",{"title":109,"path":110,"stem":111,"icon":112},"Publishing Crates","/rust/publishing-crates","03.rust/04.publishing-crates","i-lucide-package",{"title":114,"path":115,"stem":116,"icon":117},"Multi-Crate Dependency Management","/rust/multi-crate-dependencies","03.rust/05.multi-crate-dependencies","i-lucide-git-branch",{"title":119,"path":120,"stem":121,"icon":122},"Just Task Runner","/rust/just-task-runner","03.rust/06.just-task-runner","i-lucide-play",{"title":124,"path":125,"stem":126,"icon":127},"Error Handling Patterns","/rust/error-handling","03.rust/07.error-handling","i-lucide-alert-triangle",{"title":129,"path":130,"stem":131},"Mutation Testing","/rust/mutation-testing","03.rust/08.mutation-testing",{"title":133,"path":134,"stem":135},"Semver Compliance with cargo-semver-checks","/rust/semver-checks","03.rust/09.semver-checks",{"title":137,"path":138,"stem":139},"Property-Based Testing","/rust/property-testing","03.rust/10.property-testing",{"title":141,"path":142,"stem":143},"Workspace Automation","/rust/workspace-automation","03.rust/11.workspace-automation",{"title":145,"path":146,"stem":147},"Type-Safe Units","/rust/type-safe-units","03.rust/12.type-safe-units",{"title":149,"path":150,"stem":151},"Faster Testing with nextest","/rust/nextest","03.rust/13.nextest",{"title":153,"path":154,"stem":155},"Cross-Crate Validation Testing","/rust/cross-crate-validation","03.rust/14.cross-crate-validation",{"title":157,"path":158,"stem":159,"icon":160},"Defensive API Design","/rust/defensive-api-design","03.rust/15.defensive-api-design","i-lucide-shield",{"title":162,"path":163,"stem":164},"Structured Logging with tracing","/rust/tracing","03.rust/16.tracing",{"title":166,"path":167,"stem":168},"Feature Flags & Conditional Compilation","/rust/feature-flags","03.rust/17.feature-flags",{"title":170,"path":171,"stem":172},"Debugging Rust","/rust/debugging","03.rust/18.debugging",{"title":174,"path":175,"stem":176},"Production-Ready Rust CLI Workflow","/rust/production-cli-workflow","03.rust/18.production-cli-workflow","i-simple-icons-rust",{"title":179,"path":180,"stem":181,"children":182,"icon":36},"Python","/python","04.python/01.index",[183,184,189],{"title":97,"path":180,"stem":181,"icon":26},{"title":185,"path":186,"stem":187,"icon":188},"Optionally Callable Decorators","/python/decorators","04.python/02.decorators","i-lucide-at-sign",{"title":190,"path":191,"stem":192,"icon":193},"Pre-commit, with uv","/python/pre-commit","04.python/03.pre-commit","i-simple-icons-precommit",{"title":195,"path":196,"stem":197,"children":198,"icon":200},"Go","/go","05.go/01.index",[199],{"title":97,"path":196,"stem":197,"icon":26},"i-simple-icons-go",{"title":202,"path":203,"stem":204,"children":205,"icon":248},"Web Design","/webdesign","06.webdesign/01.index",[206,209,214,219,224,229,234,239,244],{"title":207,"path":203,"stem":204,"icon":208},"Icons","i-simple-icons-lucide",{"title":210,"path":211,"stem":212,"icon":213},"CSS","/webdesign/css","06.webdesign/02.css","i-simple-icons-css",{"title":215,"path":216,"stem":217,"icon":218},"Captive Portals","/webdesign/captive-portals","06.webdesign/03.captive-portals","i-lucide-wifi",{"title":220,"path":221,"stem":222,"icon":223},"URL Pattern API","/webdesign/url-pattern","06.webdesign/04.url-pattern","i-lucide-link",{"title":225,"path":226,"stem":227,"icon":228},"Hidden Until Found","/webdesign/hidden-until-found","06.webdesign/05.hidden-until-found","i-lucide-search",{"title":230,"path":231,"stem":232,"icon":233},"Login Patterns","/webdesign/login-patterns","06.webdesign/06.login-patterns","i-lucide-log-in",{"title":235,"path":236,"stem":237,"icon":238},"Typography","/webdesign/typography","06.webdesign/07.typography","i-lucide-type",{"title":240,"path":241,"stem":242,"icon":243},"UI Details","/webdesign/ui-details","06.webdesign/08.ui-details","i-lucide-sparkles",{"title":245,"path":246,"stem":247},"Draftboard","/webdesign/draftboard","06.webdesign/09.draftboard","i-lucide-arrow-down-up",{"title":250,"icon":251,"path":252,"stem":253,"children":254,"page":294},"Health","i-lucide-heart-pulse","/health","07.health",[255,260,265,270,275,280,285,290],{"title":256,"path":257,"stem":258,"icon":259},"ADHD and Sleep Cycles","/health/adhd-sleep","07.health/02.adhd-sleep","i-lucide-moon",{"title":261,"path":262,"stem":263,"icon":264},"Daily Health Habits","/health/daily-health-habits","07.health/03.daily-health-habits","i-lucide-list-checks",{"title":266,"path":267,"stem":268,"icon":269},"Calm Down Posture","/health/calm-down-posture","07.health/04.calm-down-posture","i-lucide-bed",{"title":271,"path":272,"stem":273,"icon":274},"Mood Switch on Your Face","/health/mood-face","07.health/05.mood-face","i-lucide-smile",{"title":276,"path":277,"stem":278,"icon":279},"Baby Gas Relief","/health/baby-gas-relief","07.health/06.baby-gas-relief","i-lucide-baby",{"title":281,"path":282,"stem":283,"icon":284},"Fast Acting Wound Sealer","/health/wound-sealer","07.health/07.wound-sealer","i-lucide-bandage",{"title":286,"path":287,"stem":288,"icon":289},"Water Flosser","/health/waterpick","07.health/08.waterpick","i-lucide-droplets",{"title":291,"path":292,"stem":293},"Meal Timing & Sleep","/health/meal-timing","07.health/09.meal-timing",false,{"title":296,"icon":297,"path":298,"stem":299,"children":300,"page":294},"Strategy","i-lucide-target","/strategy","08.strategy",[301,305,310],{"title":302,"path":303,"stem":304,"icon":297},"Jobs to Be Done","/strategy/jobs-to-be-done","08.strategy/02.jobs-to-be-done",{"title":306,"path":307,"stem":308,"icon":309},"Pillars of Money","/strategy/pillars-of-money","08.strategy/03.pillars-of-money","i-lucide-landmark",{"title":311,"path":312,"stem":313,"icon":314},"Marketing","/strategy/marketing","08.strategy/04.marketing","i-lucide-megaphone",{"title":316,"icon":317,"path":318,"stem":319,"children":320,"page":294},"Artificial Intelligence","i-lucide-brain","/ai","09.ai",[321,325,330,334,338,342,347,352,357,362,366],{"title":322,"path":323,"stem":324},"Linear + Cursor + Codex Workflow Integration","/ai/workflow-integration","09.ai/01.workflow-integration",{"title":326,"path":327,"stem":328,"icon":329},"Fabric","/ai/fabric","09.ai/02.fabric","i-lucide-cpu",{"title":331,"path":332,"stem":333},"OpenCode: Open Source AI Coding Agent","/ai/opencode-agent","09.ai/02.opencode-agent",{"title":335,"path":336,"stem":337},"Kimi K2.5 + Fireworks AI + OpenCode: Cost-Effective Daily Driver","/ai/kimi-k25-fireworks-opencode","09.ai/03.kimi-k25-fireworks-opencode",{"title":339,"path":340,"stem":341,"icon":259},"Looping Agents at Night","/ai/looping-agents","09.ai/03.looping-agents",{"title":343,"path":344,"stem":345,"icon":346},"Real ML Systems","/ai/real-ml-systems","09.ai/04.real-ml-systems","i-lucide-factory",{"title":348,"path":349,"stem":350,"icon":351},"AI Ralph","/ai/ai-ralph","09.ai/05.ai-ralph","i-lucide-bot",{"title":353,"path":354,"stem":355,"icon":356},"ChatGPT Prompt Techniques","/ai/chatgpt-prompts","09.ai/06.chatgpt-prompts","i-lucide-message-square-text",{"title":358,"path":359,"stem":360,"icon":361},"AI Courses","/ai/ai-courses","09.ai/07.ai-courses","i-lucide-graduation-cap",{"title":363,"path":364,"stem":365,"icon":208},"Claude & Codex Skills","/ai/claude-codex-skills","09.ai/08.claude-codex-skills",{"title":367,"path":368,"stem":369,"icon":370},"OpenDataLoader PDF","/ai/opendataloader-pdf","09.ai/09.opendataloader-pdf","i-lucide-file-text",{"title":372,"icon":329,"path":373,"stem":374,"children":375,"page":294},"Engineering","/engineering","10.engineering",[376,381,386,391,396,401,406,411,416,421,426,431],{"title":377,"path":378,"stem":379,"icon":380},"Aircraft Wing Design","/engineering/aircraft-wing-design","10.engineering/02.aircraft-wing-design","i-lucide-plane",{"title":382,"path":383,"stem":384,"icon":385},"Machinery's Handbook","/engineering/machinery-handbook","10.engineering/03.machinery-handbook","i-lucide-wrench",{"title":387,"path":388,"stem":389,"icon":390},"KiCAD Circuit Snips","/engineering/kicad-circuit-snips","10.engineering/04.kicad-circuit-snips","i-lucide-copy",{"title":392,"path":393,"stem":394,"icon":395},"Enamel Wire for Rework","/engineering/enamel-wire-rework","10.engineering/05.enamel-wire-rework","i-lucide-cable",{"title":397,"path":398,"stem":399,"icon":400},"Treating Steel","/engineering/treating-steel","10.engineering/06.treating-steel","i-lucide-flame",{"title":402,"path":403,"stem":404,"icon":405},"Knipex vs Lindstrom","/engineering/knipex-vs-lindstrom","10.engineering/07.knipex-vs-lindstrom","i-lucide-scissors",{"title":407,"path":408,"stem":409,"icon":410},"Gel-Pak Tack Levels","/engineering/gel-pack-tack","10.engineering/08.gel-pack-tack","i-lucide-grip",{"title":412,"path":413,"stem":414,"icon":415},"Antenna Radiation Patterns","/engineering/antenna-patterns","10.engineering/09.antenna-patterns","i-lucide-radio",{"title":417,"path":418,"stem":419,"icon":420},"Codesign Hardware and Software","/engineering/codesign-hw-sw","10.engineering/10.codesign-hw-sw","i-lucide-circuit-board",{"title":422,"path":423,"stem":424,"icon":425},"Plasticity CAD","/engineering/plasticity-cad","10.engineering/11.plasticity-cad","i-lucide-box",{"title":427,"path":428,"stem":429,"icon":430},"Mission Assurance","/engineering/mission-assurance","10.engineering/12.mission-assurance","i-lucide-shield-check",{"title":432,"path":433,"stem":434},"Google Search Operators","/engineering/google-search-operators","10.engineering/13.google-search-operators",{"title":436,"icon":437,"path":438,"stem":439,"children":440,"page":294},"Learning","i-lucide-book-open","/learning","11.learning",[441,445],{"title":442,"path":443,"stem":444,"icon":74},"Art of Problem Solving","/learning/art-of-problem-solving","11.learning/02.art-of-problem-solving",{"title":446,"path":447,"stem":448,"icon":400},"Do the Work","/learning/do-the-work","11.learning/03.do-the-work",{"title":450,"icon":26,"path":451,"stem":452,"children":453,"page":294},"Node Tools & CLI","/node-tools","12.node-tools",[454],{"title":455,"path":456,"stem":457},"OpenCode: AI Coding Agent for Terminal & CLI","/node-tools/opencode-cli","12.node-tools/01.opencode-cli",{"id":459,"title":331,"body":460,"description":1854,"extension":1855,"links":1856,"meta":1857,"navigation":1365,"path":332,"seo":1858,"stem":333,"__hash__":1859},"docs/09.ai/02.opencode-agent.md",{"type":461,"value":462,"toc":1802},"minimark",[463,467,475,489,492,497,504,526,532,534,538,543,546,550,553,557,560,564,567,599,603,606,610,613,615,619,623,780,784,789,827,832,852,854,857,861,894,898,904,920,925,962,967,981,986,1000,1005,1023,1028,1050,1054,1062,1064,1068,1072,1075,1090,1093,1124,1128,1151,1158,1162,1165,1173,1175,1179,1183,1189,1195,1201,1207,1210,1216,1222,1228,1234,1241,1246,1252,1255,1257,1261,1334,1336,1340,1349,1476,1479,1481,1485,1489,1516,1520,1537,1541,1552,1554,1558,1562,1571,1574,1578,1585,1589,1595,1599,1602,1604,1608,1612,1634,1637,1643,1647,1650,1661,1663,1667,1671,1688,1692,1706,1710,1724,1726,1730,1781,1783,1787,1792,1795,1798],[464,465,331],"h1",{"id":466},"opencode-open-source-ai-coding-agent",[468,469,470,474],"p",{},[471,472,473],"strong",{},"OpenCode"," is a community-driven, open source AI coding agent that works in your terminal, IDE, or desktop. With 120K+ GitHub stars, 800+ contributors, and 5M+ monthly developers, it's one of the most widely-used AI coding tools.",[468,476,477,480,481,484,485,488],{},[471,478,479],{},"Key distinction from Cursor/Codex",": OpenCode is ",[471,482,483],{},"fully open source"," and ",[471,486,487],{},"privacy-first"," by design. Your code and context never leave your machine unless you explicitly share it.",[490,491],"hr",{},[493,494,496],"h2",{"id":495},"what-opencode-does","What OpenCode Does",[468,498,499,500,503],{},"Think of OpenCode as an ",[471,501,502],{},"AI pair programmer you run locally"," that can:",[505,506,507,511,514,517,520,523],"ul",{},[508,509,510],"li",{},"✅ Explain code and architecture",[508,512,513],{},"✅ Add new features with planning and iteration",[508,515,516],{},"✅ Refactor and optimize code",[508,518,519],{},"✅ Review and suggest changes",[508,521,522],{},"✅ Undo/redo changes if needed",[508,524,525],{},"✅ Share conversation links for collaboration",[468,527,528,531],{},[471,529,530],{},"Availability",": Terminal TUI, desktop app, IDE extension (VS Code, JetBrains)",[490,533],{},[493,535,537],{"id":536},"key-features","Key Features",[539,540,542],"h3",{"id":541},"lsp-enabled-smart-language-support","LSP Enabled (Smart Language Support)",[468,544,545],{},"Automatically loads the right Language Server Protocols for the code you're working on. No manual setup needed.",[539,547,549],{"id":548},"multi-session-support","Multi-Session Support",[468,551,552],{},"Start multiple agents in parallel on the same project. Useful for exploring different approaches simultaneously.",[539,554,556],{"id":555},"share-links","Share Links",[468,558,559],{},"Share a link to any session for reference, debugging, or collaboration. Great for code review or mentoring.",[539,561,563],{"id":562},"flexible-llm-integration","Flexible LLM Integration",[468,565,566],{},"Connect any model from any provider:",[505,568,569,575,581,587,593],{},[508,570,571,574],{},[471,572,573],{},"Claude"," (Anthropic)",[508,576,577,580],{},[471,578,579],{},"GPT-4"," (OpenAI, including ChatGPT Plus/Pro)",[508,582,583,586],{},[471,584,585],{},"Gemini"," (Google)",[508,588,589,592],{},[471,590,591],{},"75+ providers"," through Models.dev",[508,594,595,598],{},[471,596,597],{},"Local models"," (Ollama, etc.)",[539,600,602],{"id":601},"github-copilot-support","GitHub Copilot Support",[468,604,605],{},"Log in with GitHub to use your Copilot account directly.",[539,607,609],{"id":608},"privacy-first-design","Privacy-First Design",[468,611,612],{},"OpenCode does not store any code or context data. It operates in privacy-sensitive environments (compliance, finance, security teams) where data residency is critical.",[490,614],{},[493,616,618],{"id":617},"how-it-fits-in-your-workflow","How It Fits in Your Workflow",[539,620,622],{"id":621},"comparison-to-cursorcodexchatgpt","Comparison to Cursor/Codex/ChatGPT",[624,625,626,647],"table",{},[627,628,629],"thead",{},[630,631,632,636,638,641,644],"tr",{},[633,634,635],"th",{},"Feature",[633,637,473],{},[633,639,640],{},"Cursor",[633,642,643],{},"Codex",[633,645,646],{},"ChatGPT",[648,649,650,668,686,701,717,732,747,761],"tbody",{},[630,651,652,658,661,664,666],{},[653,654,655],"td",{},[471,656,657],{},"Open Source",[653,659,660],{},"✅",[653,662,663],{},"❌",[653,665,663],{},[653,667,663],{},[630,669,670,675,678,681,684],{},[653,671,672],{},[471,673,674],{},"Privacy First",[653,676,677],{},"✅ (local-only)",[653,679,680],{},"⚠️ (cloud sync)",[653,682,683],{},"⚠️",[653,685,663],{},[630,687,688,693,695,697,699],{},[653,689,690],{},[471,691,692],{},"Terminal TUI",[653,694,660],{},[653,696,663],{},[653,698,660],{},[653,700,663],{},[630,702,703,708,710,712,714],{},[653,704,705],{},[471,706,707],{},"IDE Extension",[653,709,660],{},[653,711,660],{},[653,713,663],{},[653,715,716],{},"✅ (plugin)",[630,718,719,724,726,728,730],{},[653,720,721],{},[471,722,723],{},"Plan Mode",[653,725,660],{},[653,727,660],{},[653,729,660],{},[653,731,660],{},[630,733,734,739,741,743,745],{},[653,735,736],{},[471,737,738],{},"Local Models",[653,740,660],{},[653,742,683],{},[653,744,660],{},[653,746,663],{},[630,748,749,753,755,757,759],{},[653,750,751],{},[471,752,556],{},[653,754,660],{},[653,756,660],{},[653,758,660],{},[653,760,660],{},[630,762,763,768,771,774,777],{},[653,764,765],{},[471,766,767],{},"Cost",[653,769,770],{},"Free + provider fees",[653,772,773],{},"$$ (subscription)",[653,775,776],{},"$$",[653,778,779],{},"Free/Plus",[539,781,783],{"id":782},"where-to-use-opencode","Where to Use OpenCode",[468,785,786],{},[471,787,788],{},"Best for:",[505,790,791,797,803,809,815,821],{},[508,792,793,796],{},[471,794,795],{},"Privacy-sensitive work"," (healthcare, finance, security)",[508,798,799,802],{},[471,800,801],{},"Local development"," (no cloud sync wanted)",[508,804,805,808],{},[471,806,807],{},"Terminal-first developers"," (hardcore CLI users)",[508,810,811,814],{},[471,812,813],{},"Open source projects"," (community values)",[508,816,817,820],{},[471,818,819],{},"Custom LLM setups"," (self-hosted or fine-tuned models)",[508,822,823,826],{},[471,824,825],{},"Air-gapped environments"," (can work offline)",[468,828,829],{},[471,830,831],{},"Complementary to:",[505,833,834,840,846],{},[508,835,836,839],{},[471,837,838],{},"Linear",": Still use Linear for planning and status tracking",[508,841,842,845],{},[471,843,844],{},"GitHub",": OpenCode creates commits; GitHub is still your merge point",[508,847,848,851],{},[471,849,850],{},"Your editor",": Use OpenCode terminal TUI alongside VS Code/JetBrains",[490,853],{},[493,855,97],{"id":856},"installation",[539,858,860],{"id":859},"quick-install","Quick Install",[862,863,868],"pre",{"className":864,"code":865,"language":866,"meta":867,"style":867},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -fsSL https://opencode.ai/install | bash\n","bash","",[869,870,871],"code",{"__ignoreMap":867},[872,873,876,880,884,887,891],"span",{"class":874,"line":875},"line",1,[872,877,879],{"class":878},"sBMFI","curl",[872,881,883],{"class":882},"sfazB"," -fsSL",[872,885,886],{"class":882}," https://opencode.ai/install",[872,888,890],{"class":889},"sMK4o"," |",[872,892,893],{"class":878}," bash\n",[539,895,897],{"id":896},"via-package-manager","Via Package Manager",[468,899,900,903],{},[471,901,902],{},"macOS (Homebrew)",":",[862,905,907],{"className":864,"code":906,"language":866,"meta":867,"style":867},"brew install anomalyco/tap/opencode\n",[869,908,909],{"__ignoreMap":867},[872,910,911,914,917],{"class":874,"line":875},[872,912,913],{"class":878},"brew",[872,915,916],{"class":882}," install",[872,918,919],{"class":882}," anomalyco/tap/opencode\n",[468,921,922,903],{},[471,923,924],{},"Linux (Arch)",[862,926,928],{"className":864,"code":927,"language":866,"meta":867,"style":867},"sudo pacman -S opencode\n# or latest from AUR\nparu -S opencode-bin\n",[869,929,930,944,951],{"__ignoreMap":867},[872,931,932,935,938,941],{"class":874,"line":875},[872,933,934],{"class":878},"sudo",[872,936,937],{"class":882}," pacman",[872,939,940],{"class":882}," -S",[872,942,943],{"class":882}," opencode\n",[872,945,947],{"class":874,"line":946},2,[872,948,950],{"class":949},"sHwdD","# or latest from AUR\n",[872,952,954,957,959],{"class":874,"line":953},3,[872,955,956],{"class":878},"paru",[872,958,940],{"class":882},[872,960,961],{"class":882}," opencode-bin\n",[468,963,964,903],{},[471,965,966],{},"Windows (Chocolatey)",[862,968,970],{"className":864,"code":969,"language":866,"meta":867,"style":867},"choco install opencode\n",[869,971,972],{"__ignoreMap":867},[872,973,974,977,979],{"class":874,"line":875},[872,975,976],{"class":878},"choco",[872,978,916],{"class":882},[872,980,943],{"class":882},[468,982,983,903],{},[471,984,985],{},"Windows (Scoop)",[862,987,989],{"className":864,"code":988,"language":866,"meta":867,"style":867},"scoop install opencode\n",[869,990,991],{"__ignoreMap":867},[872,992,993,996,998],{"class":874,"line":875},[872,994,995],{"class":878},"scoop",[872,997,916],{"class":882},[872,999,943],{"class":882},[468,1001,1002,903],{},[471,1003,1004],{},"npm (Any platform)",[862,1006,1008],{"className":864,"code":1007,"language":866,"meta":867,"style":867},"npm install -g opencode-ai\n",[869,1009,1010],{"__ignoreMap":867},[872,1011,1012,1015,1017,1020],{"class":874,"line":875},[872,1013,1014],{"class":878},"npm",[872,1016,916],{"class":882},[872,1018,1019],{"class":882}," -g",[872,1021,1022],{"class":882}," opencode-ai\n",[468,1024,1025,903],{},[471,1026,1027],{},"Docker",[862,1029,1031],{"className":864,"code":1030,"language":866,"meta":867,"style":867},"docker run -it --rm ghcr.io/anomalyco/opencode\n",[869,1032,1033],{"__ignoreMap":867},[872,1034,1035,1038,1041,1044,1047],{"class":874,"line":875},[872,1036,1037],{"class":878},"docker",[872,1039,1040],{"class":882}," run",[872,1042,1043],{"class":882}," -it",[872,1045,1046],{"class":882}," --rm",[872,1048,1049],{"class":882}," ghcr.io/anomalyco/opencode\n",[539,1051,1053],{"id":1052},"prerequisites","Prerequisites",[505,1055,1056,1059],{},[508,1057,1058],{},"Modern terminal emulator: WezTerm, Alacritty, Ghostty, Kitty, or similar",[508,1060,1061],{},"API key for at least one LLM provider (or use OpenCode Zen for curated models)",[490,1063],{},[493,1065,1067],{"id":1066},"getting-started","Getting Started",[539,1069,1071],{"id":1070},"_1-configure-llm-provider","1. Configure LLM Provider",[468,1073,1074],{},"Run OpenCode and connect your LLM:",[862,1076,1078],{"className":864,"code":1077,"language":866,"meta":867,"style":867},"opencode\n/connect\n",[869,1079,1080,1085],{"__ignoreMap":867},[872,1081,1082],{"class":874,"line":875},[872,1083,1084],{"class":878},"opencode\n",[872,1086,1087],{"class":874,"line":946},[872,1088,1089],{"class":878},"/connect\n",[468,1091,1092],{},"Options:",[505,1094,1095,1101,1106,1112,1118],{},[508,1096,1097,1100],{},[471,1098,1099],{},"OpenCode Zen",": Pre-tested, curated models (recommended for new users)",[508,1102,1103,1105],{},[471,1104,573],{}," (Anthropic API)",[508,1107,1108,1111],{},[471,1109,1110],{},"OpenAI"," (ChatGPT Plus/Pro or API key)",[508,1113,1114,1117],{},[471,1115,1116],{},"GitHub Copilot"," (sign in with GitHub)",[508,1119,1120,1123],{},[471,1121,1122],{},"Any of 75+ providers"," via Models.dev",[539,1125,1127],{"id":1126},"_2-initialize-your-project","2. Initialize Your Project",[862,1129,1131],{"className":864,"code":1130,"language":866,"meta":867,"style":867},"cd /path/to/project\nopencode\n/init\n",[869,1132,1133,1142,1146],{"__ignoreMap":867},[872,1134,1135,1139],{"class":874,"line":875},[872,1136,1138],{"class":1137},"s2Zo4","cd",[872,1140,1141],{"class":882}," /path/to/project\n",[872,1143,1144],{"class":874,"line":946},[872,1145,1084],{"class":878},[872,1147,1148],{"class":874,"line":953},[872,1149,1150],{"class":878},"/init\n",[468,1152,1153,1154,1157],{},"This creates an ",[869,1155,1156],{},"AGENTS.md"," file in your project root that helps OpenCode understand your codebase structure and coding patterns.",[539,1159,1161],{"id":1160},"_3-start-using-it","3. Start Using It",[468,1163,1164],{},"Ask OpenCode anything:",[862,1166,1171],{"className":1167,"code":1169,"language":1170},[1168],"language-text","How is authentication handled in @packages/functions/src/api/index.ts?\n","text",[869,1172,1169],{"__ignoreMap":867},[490,1174],{},[493,1176,1178],{"id":1177},"workflow-ask-plan-build-verify","Workflow: Ask → Plan → Build → Verify",[539,1180,1182],{"id":1181},"example-add-a-feature","Example: Add a Feature",[468,1184,1185,1188],{},[471,1186,1187],{},"1. Ask in Plan Mode"," (Tab key to toggle)",[862,1190,1193],{"className":1191,"code":1192,"language":1170},[1168],"When a user deletes a note, we'd like to flag it as deleted in the database.\nThen create a screen that shows all the recently deleted notes.\nFrom this screen, the user can undelete a note or permanently delete it.\n",[869,1194,1192],{"__ignoreMap":867},[468,1196,1197,1200],{},[471,1198,1199],{},"2. Review the Plan","\nOpenCode suggests an implementation approach. Ask follow-up questions:",[862,1202,1205],{"className":1203,"code":1204,"language":1170},[1168],"Take a look at this design image and use it as a reference for the UI.\n",[869,1206,1204],{"__ignoreMap":867},[468,1208,1209],{},"(Drag/drop images directly into the terminal)",[468,1211,1212,1215],{},[471,1213,1214],{},"3. Build It"," (Switch back to Build mode)",[862,1217,1220],{"className":1218,"code":1219,"language":1170},[1168],"Sounds good! Go ahead and make the changes.\n",[869,1221,1219],{"__ignoreMap":867},[468,1223,1224,1227],{},[471,1225,1226],{},"4. Review & Iterate","\nIf something's not right:",[862,1229,1232],{"className":1230,"code":1231,"language":1170},[1168],"/undo\n",[869,1233,1231],{"__ignoreMap":867},[468,1235,1236,1237,1240],{},"Then ask again with feedback. Use ",[869,1238,1239],{},"/redo"," to restore the previous attempt.",[468,1242,1243],{},[471,1244,1245],{},"5. Share for Collaboration",[862,1247,1250],{"className":1248,"code":1249,"language":1170},[1168],"/share\n",[869,1251,1249],{"__ignoreMap":867},[468,1253,1254],{},"Creates a shareable link to your conversation.",[490,1256],{},[493,1258,1260],{"id":1259},"key-commands","Key Commands",[624,1262,1263,1273],{},[627,1264,1265],{},[630,1266,1267,1270],{},[633,1268,1269],{},"Command",[633,1271,1272],{},"Purpose",[648,1274,1275,1285,1295,1304,1314,1324],{},[630,1276,1277,1282],{},[653,1278,1279],{},[869,1280,1281],{},"/init",[653,1283,1284],{},"Initialize project (create AGENTS.md)",[630,1286,1287,1292],{},[653,1288,1289],{},[869,1290,1291],{},"/undo",[653,1293,1294],{},"Revert the last set of changes",[630,1296,1297,1301],{},[653,1298,1299],{},[869,1300,1239],{},[653,1302,1303],{},"Restore undone changes",[630,1305,1306,1311],{},[653,1307,1308],{},[869,1309,1310],{},"/share",[653,1312,1313],{},"Generate shareable link to conversation",[630,1315,1316,1321],{},[653,1317,1318],{},[869,1319,1320],{},"/connect",[653,1322,1323],{},"Set up LLM provider",[630,1325,1326,1331],{},[653,1327,1328],{},[869,1329,1330],{},"Tab",[653,1332,1333],{},"Toggle between Plan Mode and Build Mode",[490,1335],{},[493,1337,1339],{"id":1338},"agentsmd-pattern","AGENTS.md Pattern",[468,1341,1342,1343,1345,1346,1348],{},"When you run ",[869,1344,1281],{},", OpenCode creates an ",[869,1347,1156],{}," file like this:",[862,1350,1354],{"className":1351,"code":1352,"language":1353,"meta":867,"style":867},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# OpenCode Agent Config\n\n## Project Overview\n[Auto-generated summary of your codebase]\n\n## Coding Standards\n- TypeScript with strict mode\n- Functional components with hooks\n- Error handling with try/catch\n\n## Dependencies\n- React 18+\n- Next.js 13+\n- Prisma for ORM\n\n## Testing\nRun `npm test` to verify changes\n\n## Build & Deploy\n- `npm run build` to compile\n- `npm run deploy` to production\n","markdown",[869,1355,1356,1361,1367,1372,1378,1383,1389,1395,1401,1407,1412,1418,1424,1430,1436,1441,1447,1453,1458,1464,1470],{"__ignoreMap":867},[872,1357,1358],{"class":874,"line":875},[872,1359,1360],{},"# OpenCode Agent Config\n",[872,1362,1363],{"class":874,"line":946},[872,1364,1366],{"emptyLinePlaceholder":1365},true,"\n",[872,1368,1369],{"class":874,"line":953},[872,1370,1371],{},"## Project Overview\n",[872,1373,1375],{"class":874,"line":1374},4,[872,1376,1377],{},"[Auto-generated summary of your codebase]\n",[872,1379,1381],{"class":874,"line":1380},5,[872,1382,1366],{"emptyLinePlaceholder":1365},[872,1384,1386],{"class":874,"line":1385},6,[872,1387,1388],{},"## Coding Standards\n",[872,1390,1392],{"class":874,"line":1391},7,[872,1393,1394],{},"- TypeScript with strict mode\n",[872,1396,1398],{"class":874,"line":1397},8,[872,1399,1400],{},"- Functional components with hooks\n",[872,1402,1404],{"class":874,"line":1403},9,[872,1405,1406],{},"- Error handling with try/catch\n",[872,1408,1410],{"class":874,"line":1409},10,[872,1411,1366],{"emptyLinePlaceholder":1365},[872,1413,1415],{"class":874,"line":1414},11,[872,1416,1417],{},"## Dependencies\n",[872,1419,1421],{"class":874,"line":1420},12,[872,1422,1423],{},"- React 18+\n",[872,1425,1427],{"class":874,"line":1426},13,[872,1428,1429],{},"- Next.js 13+\n",[872,1431,1433],{"class":874,"line":1432},14,[872,1434,1435],{},"- Prisma for ORM\n",[872,1437,1439],{"class":874,"line":1438},15,[872,1440,1366],{"emptyLinePlaceholder":1365},[872,1442,1444],{"class":874,"line":1443},16,[872,1445,1446],{},"## Testing\n",[872,1448,1450],{"class":874,"line":1449},17,[872,1451,1452],{},"Run `npm test` to verify changes\n",[872,1454,1456],{"class":874,"line":1455},18,[872,1457,1366],{"emptyLinePlaceholder":1365},[872,1459,1461],{"class":874,"line":1460},19,[872,1462,1463],{},"## Build & Deploy\n",[872,1465,1467],{"class":874,"line":1466},20,[872,1468,1469],{},"- `npm run build` to compile\n",[872,1471,1473],{"class":874,"line":1472},21,[872,1474,1475],{},"- `npm run deploy` to production\n",[468,1477,1478],{},"OpenCode reads this every conversation, so it always understands your project context.",[490,1480],{},[493,1482,1484],{"id":1483},"privacy-security","Privacy & Security",[539,1486,1488],{"id":1487},"why-opencode-is-privacy-first","Why OpenCode is Privacy-First",[1490,1491,1492,1498,1504,1510],"ol",{},[508,1493,1494,1497],{},[471,1495,1496],{},"No cloud storage"," of code or conversation context",[508,1499,1500,1503],{},[471,1501,1502],{},"Local-only operation"," possible with self-hosted LLMs",[508,1505,1506,1509],{},[471,1507,1508],{},"Audit trail"," is your git history, not a third-party log",[508,1511,1512,1515],{},[471,1513,1514],{},"HIPAA/FedRAMP/SOC 2 compatible"," workflows",[539,1517,1519],{"id":1518},"suitable-for","Suitable For",[505,1521,1522,1525,1528,1531,1534],{},[508,1523,1524],{},"Financial/trading teams",[508,1526,1527],{},"Healthcare applications",[508,1529,1530],{},"Government/defense contractors",[508,1532,1533],{},"Compliance-heavy industries",[508,1535,1536],{},"Air-gapped deployments",[539,1538,1540],{"id":1539},"limitations","Limitations",[505,1542,1543,1546,1549],{},[508,1544,1545],{},"No conversation history sync across machines (by design)",[508,1547,1548],{},"Terminal-only (no cloud IDE integration)",[508,1550,1551],{},"Depends on your LLM provider's privacy policy",[490,1553],{},[493,1555,1557],{"id":1556},"customization","Customization",[539,1559,1561],{"id":1560},"themes","Themes",[862,1563,1565],{"className":864,"code":1564,"language":866,"meta":867,"style":867},"/theme\n",[869,1566,1567],{"__ignoreMap":867},[872,1568,1569],{"class":874,"line":875},[872,1570,1564],{"class":878},[468,1572,1573],{},"Pick from built-in themes or create your own.",[539,1575,1577],{"id":1576},"keybinds","Keybinds",[468,1579,1580,1581,1584],{},"Create a custom ",[869,1582,1583],{},".opencoderc"," file to remap keys (vim, emacs, etc.)",[539,1586,1588],{"id":1587},"code-formatters","Code Formatters",[468,1590,1591,1592,1594],{},"Configure Prettier, rustfmt, go fmt, etc. in your ",[869,1593,1156],{},".",[539,1596,1598],{"id":1597},"custom-commands","Custom Commands",[468,1600,1601],{},"Add project-specific commands in config.",[490,1603],{},[493,1605,1607],{"id":1606},"integration-with-your-workflow","Integration with Your Workflow",[539,1609,1611],{"id":1610},"linear-opencode","Linear + OpenCode",[1490,1613,1614,1619,1624,1629],{},[508,1615,1616,1618],{},[471,1617,838],{},": Decide what to build (issue with acceptance criteria)",[508,1620,1621,1623],{},[471,1622,473],{},": Ask it to implement the issue",[508,1625,1626,1628],{},[471,1627,844],{},": Open PR, merge after review",[508,1630,1631,1633],{},[471,1632,838],{},": GitHub integration auto-updates issue status",[468,1635,1636],{},"Example OpenCode prompt:",[862,1638,1641],{"className":1639,"code":1640,"language":1170},[1168],"Implement RFX-40: Phase 2 multi-tenancy account scoping\nContext:\n- accounts table has an id field\n- All queries should filter by account_id\n- See the Linear issue for acceptance criteria\n",[869,1642,1640],{"__ignoreMap":867},[539,1644,1646],{"id":1645},"github-opencode","GitHub + OpenCode",[468,1648,1649],{},"OpenCode naturally integrates with Git:",[505,1651,1652,1655,1658],{},[508,1653,1654],{},"Commits are your audit trail",[508,1656,1657],{},"PR descriptions can reference OpenCode share links",[508,1659,1660],{},"Code review happens in GitHub (human verifies before merge)",[490,1662],{},[493,1664,1666],{"id":1665},"when-to-use-opencode-vs-cursor-vs-codex","When to Use OpenCode vs Cursor vs Codex",[539,1668,1670],{"id":1669},"use-opencode-when","Use OpenCode When:",[505,1672,1673,1676,1679,1682,1685],{},[508,1674,1675],{},"✅ Privacy/compliance is non-negotiable",[508,1677,1678],{},"✅ You prefer terminal-first development",[508,1680,1681],{},"✅ You want open source tooling",[508,1683,1684],{},"✅ You need to self-host your LLM",[508,1686,1687],{},"✅ You're working in air-gapped environments",[539,1689,1691],{"id":1690},"use-cursor-when","Use Cursor When:",[505,1693,1694,1697,1700,1703],{},[508,1695,1696],{},"✅ You want interactive editor integration",[508,1698,1699],{},"✅ You prefer GUI over terminal",[508,1701,1702],{},"✅ You want tight IDE coupling (VS Code-like)",[508,1704,1705],{},"✅ You're comfortable with cloud sync",[539,1707,1709],{"id":1708},"use-codex-when","Use Codex When:",[505,1711,1712,1715,1718,1721],{},[508,1713,1714],{},"✅ You need explicit agent workflows across IDE/CLI/cloud",[508,1716,1717],{},"✅ You want standardized prompts with AGENTS.md",[508,1719,1720],{},"✅ You want tight OpenClaw/MCP integration",[508,1722,1723],{},"✅ You're building sophisticated agent automation",[490,1725],{},[493,1727,1729],{"id":1728},"resources","Resources",[505,1731,1732,1744,1752,1762,1772],{},[508,1733,1734,1737,1738],{},[471,1735,1736],{},"Official Docs",": ",[1739,1740,1741],"a",{"href":1741,"rel":1742},"https://opencode.ai/docs",[1743],"nofollow",[508,1745,1746,1737,1748],{},[471,1747,844],{},[1739,1749,1750],{"href":1750,"rel":1751},"https://github.com/anomalyco/opencode",[1743],[508,1753,1754,1737,1757,1761],{},[471,1755,1756],{},"Models.dev",[1739,1758,1759],{"href":1759,"rel":1760},"https://models.dev/",[1743]," (75+ LLM provider directory)",[508,1763,1764,1737,1767,1771],{},[471,1765,1766],{},"Zen",[1739,1768,1769],{"href":1769,"rel":1770},"https://opencode.ai/zen",[1743]," (curated models for coding)",[508,1773,1774,1737,1777],{},[471,1775,1776],{},"Example Conversation",[1739,1778,1779],{"href":1779,"rel":1780},"https://opencode.ai/s/4XP1fce5",[1743],[490,1782],{},[493,1784,1786],{"id":1785},"takeaway","Takeaway",[468,1788,1789],{},[471,1790,1791],{},"OpenCode = Open source, privacy-first, terminal-native AI coding agent",[468,1793,1794],{},"It's perfect if you value open source software, need privacy guarantees, or prefer command-line workflows. Pair it with Linear for planning and GitHub for code review, and you have a complete AI-assisted development workflow.",[468,1796,1797],{},"Unlike proprietary tools, OpenCode's code is public, its community is large, and you're never locked in to a platform's architecture decisions.",[1799,1800,1801],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":867,"searchDepth":946,"depth":946,"links":1803},[1804,1805,1813,1817,1822,1827,1830,1831,1832,1837,1843,1847,1852,1853],{"id":495,"depth":946,"text":496},{"id":536,"depth":946,"text":537,"children":1806},[1807,1808,1809,1810,1811,1812],{"id":541,"depth":953,"text":542},{"id":548,"depth":953,"text":549},{"id":555,"depth":953,"text":556},{"id":562,"depth":953,"text":563},{"id":601,"depth":953,"text":602},{"id":608,"depth":953,"text":609},{"id":617,"depth":946,"text":618,"children":1814},[1815,1816],{"id":621,"depth":953,"text":622},{"id":782,"depth":953,"text":783},{"id":856,"depth":946,"text":97,"children":1818},[1819,1820,1821],{"id":859,"depth":953,"text":860},{"id":896,"depth":953,"text":897},{"id":1052,"depth":953,"text":1053},{"id":1066,"depth":946,"text":1067,"children":1823},[1824,1825,1826],{"id":1070,"depth":953,"text":1071},{"id":1126,"depth":953,"text":1127},{"id":1160,"depth":953,"text":1161},{"id":1177,"depth":946,"text":1178,"children":1828},[1829],{"id":1181,"depth":953,"text":1182},{"id":1259,"depth":946,"text":1260},{"id":1338,"depth":946,"text":1339},{"id":1483,"depth":946,"text":1484,"children":1833},[1834,1835,1836],{"id":1487,"depth":953,"text":1488},{"id":1518,"depth":953,"text":1519},{"id":1539,"depth":953,"text":1540},{"id":1556,"depth":946,"text":1557,"children":1838},[1839,1840,1841,1842],{"id":1560,"depth":953,"text":1561},{"id":1576,"depth":953,"text":1577},{"id":1587,"depth":953,"text":1588},{"id":1597,"depth":953,"text":1598},{"id":1606,"depth":946,"text":1607,"children":1844},[1845,1846],{"id":1610,"depth":953,"text":1611},{"id":1645,"depth":953,"text":1646},{"id":1665,"depth":946,"text":1666,"children":1848},[1849,1850,1851],{"id":1669,"depth":953,"text":1670},{"id":1690,"depth":953,"text":1691},{"id":1708,"depth":953,"text":1709},{"id":1728,"depth":946,"text":1729},{"id":1785,"depth":946,"text":1786},"OpenCode is a community-driven, open source AI coding agent that works in your terminal, IDE, or desktop. With 120K+ GitHub stars, 800+ contributors, and 5M+ monthly developers, it's one of the most widely-used AI coding tools.","md",null,{},{"title":331,"description":1854},"OAVNlLBOdxGtpnCevsR9CNKwZj4kKU5G8cPu3GRTg7Y",[1861,1863],{"title":326,"path":327,"stem":328,"description":1862,"icon":329,"children":-1},"Open-source framework for AI prompt patterns",{"title":335,"path":336,"stem":337,"description":1864,"children":-1},"The Pattern: Use Kimi K2.5 (Moonshot AI) through Fireworks AI at 200 tokens/sec within OpenCode for fast, cheap everyday coding tasks. Save Claude/GPT-4 for complex work that needs PhD-level reasoning.",1775772883800]