Ga naar hoofdinhoud

Wat is OpenCode? De open-source AI-codeagent uitgelegd

Een gids voor OpenCodes workflow, modelopties, architectuur en de verschillen met Claude Code, Cursor en Cline.
Bijgewerkt 28 jul 2026  · 14 min lezen

Verkennen met AI

Openen in ChatGPTOpenen in ClaudeOpenen in Perplexity

OpenCode is gebouwd om een taak uit te voeren. Het is een open-source agent die een AI-model koppelt aan je repository, terminal en ontwikkelingstools. Vraag hem een bug te fixen en hij kan de relevante bestanden vinden, een plan opstellen, de code bewerken, tests draaien en op fouten reageren. Autocomplete kan dat niet zelfstandig.

Die bredere rol trok aandacht. Op het moment van schrijven had de actieve OpenCode-repository zo'n 189.000 GitHub-sterren. Ik zou sterren niet zien als bewijs van codekwaliteit, maar ze laten wel zien hoeveel interesse het project heeft gewekt.

De realiteit is minder netjes. OpenCode geeft je keuze uit modellen en vraagt je die keuze vervolgens te beheren. Een wijziging in het beleidsplan van een provider in januari 2026 liet zien hoe snel die opties kunnen verschuiven. Ik bespreek dat samen met hoe OpenCode werkt en waar het past.

Nog een korte opmerking over de naam voordat we verdergaan: als je op OpenCode zoekt, kom je misschien de gearchiveerde, op Go gebaseerde opencode-ai/opencode-repository tegen. Dat project wordt sinds september 2025 niet meer onderhouden. We focussen op het actieve project op github.com/anomalyco/opencode, gebouwd door het team achter het Serverless Stack (SST)-framework.

Wat is OpenCode?

OpenCode is een open-source AI-codeagent uitgebracht onder de MIT-licentie. Het is model-agnostisch, wat betekent dat het niet aan één modelprovider vastzit. Gebruikers kunnen de broncode lezen en aanpassen. Ze kunnen de tool ook zelf hosten. De software is gratis. De modelkosten staan los daarvan, zoals ik bij de features zal toelichten.

OpenCode is geen large language model (LLM). Het gekozen model leest prompts en produceert antwoorden. OpenCode levert de bestandstools, shell-toegang, sessiegeschiedenis, toestemmingsregels en interface rondom dat model. Ik vind dit onderscheid nuttig, omdat je het model kunt wisselen zonder de rest van de tool te veranderen.

Het is gebouwd door Anomaly, voorheen SST, en draait primair op TypeScript en Bun.

Gearchiveerde oorspronkelijke OpenCode-repository naast de huidige actieve repository

Gearchiveerde en huidige OpenCode-repository vergeleken. Afbeelding door auteur.

OpenCode zit niet vast aan één modelfamilie. Via het Models.dev-register maakt het verbinding met meer dan 75 providers, waaronder Anthropic, OpenAI, Google, DeepSeek, Groq en lokale modellen via Ollama. Sommige bestaande abonnementaccounts kunnen ook worden gekoppeld, zoals ik in de features-sectie zal behandelen.

OpenCode-terminalinterface met een codingsessie en een bestandsdiff

OpenCode-terminalsessie met bestandswijzigingen. Afbeelding door auteur.

Hoewel OpenCode in de terminal begon, wordt het nu geleverd als terminalinterface (TUI), een bètadesktopapp voor macOS, Windows en Linux, en extensies voor editors zoals VS Code. De laatste stabiele release op het moment van schrijven is v1.18.8.

Waarom OpenCode is gemaakt

Zoals ik eerder noemde, ondersteunt OpenCode modellen van veel providers. Het is zo gebouwd omdat modelkwaliteit en -prijzen veranderen, en een tool die vastzit aan één provider geeft gebruikers minder opties.

In de documentatie staat dat OpenCode niet is gekoppeld aan een provider. Het hierboven genoemde Models.dev-register levert de modeldetails en prijzen die OpenCode gebruikt.

Die keuze raakt meer dan facturatie. Verschillende modellen hebben verschillende contextlimieten, toolcall-formaten en invoertypes. OpenCode gebruikt één interface voor die verschillen. Een ontwikkelaar kan in hetzelfde project het geselecteerde model wisselen zonder de sessie naar een andere codingtool te verplaatsen.

Het team geeft ook de voorkeur aan terminal-first tools die gebruikers kunnen inspecteren. Projectinstructies staan in een gewoon bestand genaamd AGENTS.md. Ik leg later uit hoe OpenCode dit bestand maakt en gebruikt.

Het officiële project noemt drie ontwerpkeuzes. De eerste is de hierboven besproken providerondersteuning. De tweede houdt de hoofdknoppen in de terminal. De derde scheidt de client en de server. Die splitsing komt zo.

In januari 2026 blokkeerde Anthropic tools van derden om consumentenabonnementen op Claude via onofficiële kanalen te gebruiken. OpenCode voegde daarna andere abonnementsopties toe en gebruikte een eigen gateway. Gebruikers konden nog steeds via andere providers verbinden.

Die episode verklaart waarom providerkeuze zoveel aandacht krijgt in OpenCode. Om te zien wat gebruikers met die keuze doen, kijken we nu naar een sessie.

Hoe OpenCode werkt

OpenCode draait als een client en een lokale server. De TUI, desktopapp, IDE-extensies en SDK praten allemaal via HTTP met die server. Dezelfde server ondersteunt remote attachment met opencode attach <url> en headless gebruik met opencode serve.

Binnen een sessie leest de agent relevante bestanden, kan een plan opstellen, bewerkt code en voert wanneer nodig commando's uit. De integratie met het Language Server Protocol (LSP) stuurt vervolgens compiler- en linterdiagnostiek terug naar het model zodat het op type- en syntaxisfouten kan reageren.

Een taak kan bijvoorbeeld beginnen met glob of grep om bestanden te lokaliseren. De agent kan read gebruiken om ze te inspecteren en edit om geselecteerde regels te wijzigen. Daarna kan hij bash gebruiken om een test- of buildcommando te draaien. De uitvoer wordt onderdeel van het volgende modelverzoek.

Ik vind de scheiding Build en Plan het makkelijkst te begrijpen als een permissieschakelaar. Build is de standaard en kan lezen, schrijven en commando's uitvoeren. Plan vraagt eerst toestemming voordat bestanden worden bewerkt of bash-commando's worden uitgevoerd. Met Tab wissel je ertussen.

Toestemmingscontroles gelden wanneer een tool wordt aangeroepen. Een project kan een tool toestaan, blokkeren of de gebruiker elke keer vragen. Regels kunnen ook per commandopatronen verschillen. Een team kan routinetests toestaan maar bij andere shellcommando's om toestemming vragen.

Sessies worden lokaal op schijf opgeslagen in de datamap van OpenCode. OpenCode comprimeert lange gesprekken automatisch. Met de commando's /undo en /redo navigeer je door Git-gebaseerde bestandsmomentopnames.

Belangrijkste features van OpenCode

OpenCode groepeert zijn belangrijkste functies in modeltoegang, projectcontext, taakuitvoering en lokaal gebruik. De secties hieronder leggen uit wat elke groep verandert tijdens een codingsessie.

Ondersteuning voor meerdere modellen

Zoals eerder genoemd, haalt OpenCode zijn providerlijst via Models.dev. In de praktijk kunnen gebruikers een hosted service, een cloudplatform of een OpenAI-compatibel endpoint koppelen. GitHub Copilot- en ChatGPT Plus/Pro-logins bieden alternatieven voor het beheren van een aparte API-sleutel.

Providerkeuze betekent niet dat elk model zich hetzelfde gedraagt. Toolgebruik, contextlimieten, responstijd en prijs hangen nog steeds af van het geselecteerde model en de provider. Oproepen naar gehoste modellen sturen ook de vereiste codecontext naar die provider onder diens eigen gegevensregels.

OpenCode biedt ook twee optionele manieren om toegang te krijgen tot modellen. OpenCode Zen is een pay-as-you-go gateway met een geselecteerde modellenlijst. OpenCode Go is een abonnement dat $5 kost voor de eerste maand, daarna $10 per maand, voor geselecteerde open-weight modellen. Gebruikers kunnen nog steeds hun eigen API-sleutels aanleveren. Prijzen kunnen wijzigen.

Dit is het lastige deel: een gratis tool kan nog steeds een rekening bij de provider opleveren.

Werken met repositorycontext

Voer /init uit en OpenCode genereert een AGENTS.md -samenvatting van de structuur en conventies van het project. Teams kunnen dat bestand committen zodat sessies starten met gedeelde instructies.

Het bestand kan testcommando's, mapnamen, naamgevingsregels en opmerkingen over het project bevatten. Een globale AGENTS.md kan instructies bevatten die projectoverschrijdend worden gebruikt. Het projectbestand bevat regels voor één repository.

De eerder beschreven LSP-checks draaien na bewerkingen. Repositorycontext omvat ook bestandsverwijzingen: het @ -symbool haalt een geselecteerd bestand in een prompt.

Codetaken uitvoeren

Naast de eerder beschreven Build- en Plan-agents bevat OpenCode subagents voor meerstapszoektochten, codebase-scans en externe documentatie. Aangepaste agents kunnen een eigen model, prompt en toolrechten hebben.

Elke subagent werkt in een childsessie, zodat de berichten niet op dezelfde manier de hoofdsessie vullen. Een aangepaste agent kan worden beperkt tot lezen, een goedkoper model krijgen of instructies krijgen voor één type taak.

Model Context Protocol (MCP)-servers voegen externe services toe. Ze worden gedefinieerd in opencode.json, en de eerder besproken toestemmingscontroles gelden ook voor de tools die ze toevoegen.

Van plannen naar codewijzigingen. Video door auteur.

Local-first development (en de grenzen daarvan)

De term "local-first" behoeft nuance. Ik zou het niet lezen als de belofte dat er nooit iets de machine verlaat. Zoals in de providersectie vermeld, kan OpenCode verbinden met Ollama. Die setup houdt code en prompts op lokale infrastructuur. Gehoste modellen, /share en OpenCode Zen sturen data buiten de lokale machine.

Lokaal gebruik hangt nog steeds van het model af. Kleine modellen kunnen ongeldige toolcalls teruggeven of verbanden tussen bestanden missen. Een lokale server heeft ook genoeg geheugen nodig voor het geselecteerde model en voldoende contextruimte voor de bestanden die met elk verzoek worden meegestuurd.

Het permissiesysteem is een workflowbeveiliging, geen security sandbox. Modus als netwerkserver moet OPENCODE_SERVER_PASSWORD gebruiken en aan localhost binden. Een eerder probleem met ongeauthenticeerde blootstelling is gepatcht, maar servermodus moet nog steeds niet publiek worden blootgesteld zonder authenticatie.

OpenCode-architectuur

Zoals ik eerder noemde, scheidt OpenCode zijn clients van zijn lokale server. Die splitsing raakt configuratie en opgeslagen status. De API voegt nog een manier toe om de server te gebruiken.

Als je alleen de TUI van plan bent te gebruiken, kun je de API-details overslaan. De configuratieparagraaf aan het eind is het deel dat je gebruikt.

De TypeScript- en Bun-server praat met modelproviders en voert tools uit. Hij beheert ook de status. De OpenAPI 3.1-specificatie genereert de officiële @opencode-ai/sdk. Scripts en aangepaste clients kunnen deze gedocumenteerde API gebruiken.

De API omvat sessies, berichten, bestanden, providers, tools, agents en configuratie. Dit is dezelfde server die door de eigen clients van OpenCode wordt gebruikt. Een script kan een sessie maken of een bericht sturen zonder te proberen de TUI te besturen.

Diagram van OpenCodes client-serverarchitectuur die de TUI, desktopapp en IDE-extensie met een gedeelde server verbindt

OpenCode-clients die verbinden met één server. Afbeelding door auteur.

De eerder genoemde interfaces fungeren als clients: de TUI, desktopapp, IDE-extensie en opencode web. Elke client praat met hetzelfde serverproces. Een apart apparaat kan via dat proces aan een bestaande sessie koppelen.

Met opencode serve start je de server zonder de normale TUI. Met opencode web voeg je een browserclient toe. Beide commando's hebben authenticatie nodig als de server vanaf een ander apparaat bereikbaar is.

Configuratie staat in projectniveau-opencode.json of opencode.jsonc, met een globale fallback op ~/.config/opencode/opencode.json. Het beheert modellen, permissies, MCP-servers en aangepaste agents. Zoals in de workflowsectie besproken, blijven sessiegeschiedenis en toollogs in lokale bestanden tenzij de gebruiker ze deelt.

Veelvoorkomende OpenCode-workflows

Dezelfde onderdelen van OpenCode kun je gebruiken voor meerdere gangbare softwaretaken. De voorbeelden hieronder laten zien waar menselijk review nog steeds belangrijk is.

Nieuwe features bouwen

Met het eerder beschreven Plan-naar-Build-proces kan een ontwikkelaar een feature aanvragen en de voorgestelde stappen beoordelen vóór elke wijziging. Met Tab schakel je daarna naar Build-modus voor codewijzigingen en tests.

Het plan kan worden bijgesteld voordat er bestanden worden gewijzigd. Ik zou die review gebruiken om de scope te corrigeren, bestanden te noemen die niet mogen veranderen of testvereisten toe te voegen.

Bestaande code refactoren

Hetzelfde Plan-naar-Build-proces werkt voor refactoren. Plan-modus kan afhankelijkheden en aanroepplaatsen identificeren voordat Build-modus de wijzigingen toepast. Als het resultaat niet klopt, herstelt /undo de eerdere snapshot. De gebruiker moet de diff nog steeds reviewen, want slagen van tests bevestigt niet dat elke publieke interface hetzelfde is gebleven.

Applicaties debuggen

Voor debuggen kan OpenCode een stacktrace combineren met type-informatie van de language server. Het kan een wijziging voorstellen, de stappen herhalen die de fout veroorzaakten en het resultaat controleren. Zonder duidelijke reproductiestappen kan het alleen bevestigen dat de code buildt of dat bestaande tests slagen.

Tests schrijven

Zoals eerder besproken kan Build-modus bestanden bewerken en commando's draaien. Voor testschrijven betekent dat dat het een test kan maken, het resultaat kan lezen en nog een wijziging kan doen. Een volledige testset geeft meer feedback maar kost meer tijd.

Testkwaliteit vraagt nog steeds om menselijke review. Een gegenereerde test kan de implementatie herhalen in plaats van het gedrag te controleren waar gebruikers op vertrouwen.

Grote codebases begrijpen

De repositorysectie legde uit hoe /init projectnotities maakt. Na die stap kan een vraag als "Hoe werkt authenticatie hier?" de zoekactie sturen. De @general -subagent kan meerdere delen van de repository doorzoeken.

Specifieke vragen leveren meestal duidelijkere resultaten op dan verzoeken om de hele repository uit te leggen. Bestandsverwijzingen met @ kunnen de zoekactie verder beperken.

OpenCode vs. andere AI-codeagents

Deze tools verschillen in licentie, modelondersteuning, interface en facturatie. Ik vergelijk ze op die punten in plaats van één tool als standaardkeuze te behandelen.

OpenCode vs. Claude Code

We hebben een apart artikel over OpenCode versus Claude Code met meer detail. Claude Code is proprietair en gebruikt het model en accountsysteem van Anthropic. OpenCode gebruikt de MIT-licentie en vraagt de gebruiker een provider te kiezen. Het geeft gebruikers ook toegang tot de broncode en configuratie. Zoals in de geschiedenissectie genoemd, werken consumentenabonnementen op Claude niet meer via OpenCode, dus gebruik van Claude vereist een verbruik-gebaseerde Anthropic API-sleutel.

Beide tools kunnen bestanden lezen, wijzigingen aanbrengen, commando's uitvoeren en MCP-servers gebruiken. Modeltoegang is het belangrijkste verschil: Claude Code blijft bij de hierboven beschreven Anthropic-setup, terwijl OpenCode andere providers of een lokaal endpoint kan koppelen.

OpenCode vs. Cursor

Cursor is een op VS Code gebaseerde IDE die ook CLI- en cloudagents biedt. De hoofdworkflow houdt suggesties, bestandswijzigingen en agentacties binnen de editor. OpenCode gebruikt de eerder genoemde terminal-, desktop- en editorinterfaces. Cursor gebruikt betaalde abonnementsplannen. De software van OpenCode is gratis, maar gebruikers kunnen een modelprovider voor tokens betalen. De belangrijkste verschillen zijn de werkinterface, modelkeuze en betaalmethode.

Cursor bevat ook inline completion terwijl de ontwikkelaar typt. OpenCode richt zich op taken die aan een agent worden gegeven en vervangt die vorm van completion niet. Sommige ontwikkelaars gebruiken beide typen tool voor verschillend werk.

OpenCode vs. Cline

Cline’s kernproject is een open-source, BYOK-agent met VS Code- en CLI-interfaces. Het heeft ook een JetBrains-client, al is die client op het moment van schrijven niet open source. Zowel Cline als OpenCode ondersteunen MCP en laten gebruikers goedkeuringsregels instellen. Cline plaatst zijn editorbesturingselementen in een zijbalk. OpenCode gebruikt terminalsessies die los van een editor kunnen draaien. De keuze hangt vooral af van waar een ontwikkelaar wijzigingen wil beoordelen en goedkeuren.

Cline gebruikt de Apache 2.0-licentie. OpenCode gebruikt de eerder genoemde MIT-licentie. Beide staan bronreview en wijzigingen toe, maar hun interfaces en projectbestanden verschillen.

Aider en Codex CLI zijn ook terminalgebaseerde codeagents. OpenCode dekt terminal-, desktop- en IDE-gebruik in hetzelfde project en ondersteunt modellen van meerdere providers.

OpenCode installeren en aan de slag

Het officiële installatiescript werkt op de meeste Unix-achtige systemen. Het biedt één manier om de commandoregeltool te installeren:

Het commando downloadt de OpenCode-binary en voegt die toe aan de omgeving van de gebruiker. Een pakketmanager kan beter passen wanneer updates samen met de rest van het systeem worden beheerd.

curl -fsSL https://opencode.ai/install | bash

Opties via pakketmanagers zijn onder andere npm i -g opencode-ai@latest, brew install anomalyco/tap/opencode op macOS en Linux, en scoop install opencode of choco install opencode op Windows. Er is een desktopapp voor macOS, Windows en Linux. Op Windows raadt de OpenCode-documentatie WSL aan omdat sommige bestandssysteem- en shellfuncties daar beter werken.

Installatie omvat geen modeltoegang. De eerste sessie heeft nog steeds een van de toegangsopties nodig die in de sectie over meerdere modellen zijn behandeld.

OpenCode installeren voordat je projectinstructies maakt. Video door auteur.

Eenmaal geïnstalleerd is de eerste run kort. Die behandelt de providerkoppeling en de eerste projectsetup:

  • Voer opencode uit in je projectmap om de TUI te starten.
  • Voer /connect uit om een modelprovider toe te voegen, of dat nu een directe API-sleutel is, een Copilot- of ChatGPT-login, of een OpenCode Zen- of Go-verbinding.
  • Voer /init uit om het eerder beschreven AGENTS.md-bestand te maken en commit het als het team die instructies moet delen.
  • Gebruik Tab om te wisselen tussen de hierboven besproken Plan- en Build-modi.

Deze stappen dekken de eerste setup. De OpenCode-documentatie bevat alle provider- en configuratieopties.

Voor wie is OpenCode?

Of OpenCode past, hangt af van de voorkeur voor interface, modelsetup en mate van controle. Op basis van de hierboven behandelde features kan het geschikt zijn voor de volgende gebruikers en teams:

Past mogelijk:

  • Ontwikkelaars die niet vast willen zitten aan één modelprovider en willen wisselen op basis van kosten of mogelijkheden
  • Teams in gereguleerde of privacygevoelige omgevingen die code op lokale infrastructuur willen houden
  • Terminal-first ontwikkelaars die zich prettig voelen bij CLI-workflows en configuratiebestanden
  • Open-source bijdragers die de tool zelf willen inspecteren, forken of uitbreiden
  • Ontwikkelaars die liever per token betalen dan een vast softwareabonnement nemen

Past mogelijk niet:

  • Mensen die een beheerd product willen met weinig of geen setup
  • Ontwikkelaars die vooral inline autocomplete willen in plaats van een autonome agent
  • Mensen die alleen Claude willen gebruiken en abonnementfacturatie verkiezen boven verbruiksgebaseerde API-facturatie
  • Mensen die liever helemaal niet met een terminal werken, al verkleint de desktopapp dit gat enigszins

Dit zijn workflowverschillen, geen maatstaven voor codekwaliteit. Meer controle over modellen en permissies betekent ook meer setup.

De toekomst van OpenCode

Ik wilde deze sectie bijna schrappen omdat roadmaps snel verouderen. Afgeleverde wijzigingen laten nog steeds zien waar het werk van het team heen gaat.

OpenCode bracht in het eerste jaar meer dan 800 versies uit. Recente releases voegden desktop-tabs en experimentele achtergrondagents toe. Dat aantal releases toont activiteit, maar ik zou het niet zien als een belofte van stabiliteit of een toekomstige feature.

De eerder besproken Zen- en Go-opties voegden betaalmethoden toe naast BYOK. MCP-ondersteuning en subagents blijven ook actieve onderdelen van het project. Dezelfde gebieden veranderen bij andere codingtools.

Er is geen openbare roadmap die de volgende feature of releasedatum bevestigt. Claims over toekomstige releases blijven onzeker.

Conclusie

De scheiding agent-model uit de inleiding is het punt dat ik zou onthouden. Providerlijsten veranderen, prijzen bewegen, toegangsregels verschuiven en abonnementen verdwijnen; OpenCode kan blijven terwijl het geselecteerde model verandert. Die scheiding brengt werk met zich mee, want iemand moet nog steeds de setup, permissies en facturatie beheren.

Mijn kijk is simpel: kies op basis van hoeveel controle je wilt beheren. Geen enkele optie past bij elke ontwikkelaar of elk team.

Onze gerelateerde resources zijn onder meer de Claude Code-tutorial en de AI-Assisted Coding for Developers-cursus.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Ik ben een data-engineer en communitybouwer die werkt aan datapijplijnen, cloud en AI-tools, en tegelijkertijd praktische, impactvolle tutorials schrijft voor DataCamp en beginnende developers.

FAQs

Is OpenCode echt gratis te gebruiken?

Zoals eerder genoemd is de MIT-gelicentieerde software gratis. Kosten komen voort uit het gekozen modelpad: providertokens, Zen of Go, of de hardware die voor een lokaal model wordt gebruikt.

Kan ik Claude-modellen in OpenCode gebruiken?

Ja, via een standaard Anthropic API-sleutel. Zoals eerder besproken kunnen persoonlijke Claude Pro- en Max-abonnementen niet via OpenCode worden gerouteerd, dus Anthropic factureert dat gebruik tegen de API-tarieven.

Werkt OpenCode zonder internetverbinding?

Ja. De sectie over lokale modellen legde uit hoe OpenCode kan verbinden via Ollama of een ander OpenAI-compatibel endpoint. Kleinere lokale modellen kunnen meer fouten in toolcalls maken dan grotere gehoste modellen.

Is de gearchiveerde opencode-ai/opencode-repository hetzelfde project?

Nee. Zoals in de introductie vermeld, is dat op Go gebaseerde project in september 2025 gearchiveerd. Een extra controle is het configformaat: gidsen die de oude commando's of een .yml-bestand gebruiken, zijn niet van toepassing op het huidige project.

Hoe gaat OpenCode om met de privacy van mijn broncode?

Zoals in de sectie over lokaal gebruik besproken, verlaten verzoeken aan een gehost model de machine. OpenCode zelf bewaart de code niet. Het /share-commando is een andere uitzondering omdat het de sessie uploadt naar een openbare link totdat de gebruiker het delen ongedaan maakt.

Onderwerpen

Leren met DataCamp

Leerpad

Basisprincipes van AI-business

12 Hr
Geef je AI-reis een boost, leer ChatGPT kennen en werk aan een goede strategie voor kunstmatige intelligentie.
Bekijk detailsRight Arrow
Begin Met De Cursus
Meer zienRight Arrow