OpenCode Quickstart: installeren, configureren en gebruiken van de Terminal AI Coding Agent

Hoe u OpenCode installeert, configureert en gebruikt

Inhoud

OpenCode is een open source AI-coding agent die je in de terminal kunt uitvoeren (TUI + CLI) met optionele desktop- en IDE-interfaces. Dit is de OpenCode Snelstartgids: installeren, verifiëren, een model/aanbieder koppelen en echte workflows uitvoeren (CLI + API).

Versie-opmerking: OpenCode komt snel uit met updates. De “laatste” commando’s hier zijn stabiel, maar output en standaarden kunnen veranderen – controleer altijd de officiële CLI-documentatie en het changelog (hieronder gelinkt).

Dit artikel maakt deel uit van AI Developer Tools: De Complete Gids voor AI-aangedreven Development.

Wat OpenCode is (en waar het past)

OpenCode is ontworpen voor terminal-first, agentisch coderen, terwijl het flexibel blijft qua aanbieder en model. In de praktijk is het een workflow-laag die het volgende kan doen:

  • een terminal-UI starten wanneer je opencode uitvoert
  • niet-interactieve “one-shot” prompts uitvoeren via opencode run (scripts/automatisering)
  • een headless HTTP-server blootstellen via opencode serve (en een web-UI via opencode web)
  • programmatiek beheerd worden via de officiële JS/TS SDK @opencode-ai/sdk

Als je het wilt vergelijken met een andere open source agentische assistent die meervoudige stappenplannen kan uitvoeren in een geïsoleerde omgeving, bekijk dan OpenHands Coding Assistant Snelstart.

opencode met self-hosted qwen3.5 27b LLM

Als je een /ai-devtools/ cluster aan het bouwen bent, is OpenCode een sterke kandidaat voor een subcluster, omdat het natuurlijk uitbreidt naar:

  • CLI diepte
  • model/aanbieder gedrag en kosten (LLM-vergelijking binnen OpenCode)
  • configuratie & agents
  • integraties (GitHub/GitLab/Copilot)
  • cheat sheet
  • Oh My Opencode — een multi-agent orchestratielaag gebouwd bovenop OpenCode

Vereisten

Je hebt het volgende nodig:

  • Een moderne terminal-emulator (belangrijk voor de TUI-ervaring).
  • Toegang tot minimaal één model/aanbieder (API-sleutels of abonnementsauthenticatie, afhankelijk van de aanbieder). Lokale opties zoals Ollama of llama.cpp werken zonder API-sleutels als je lokaal een compatibele server draait.

OpenCode installeren (kopieer-plak)

Officiële installatiescript (Linux/macOS/WSL):

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

Opties voor pakketbeheer (officiële voorbeelden):

# Node.js globale installatie
npm install -g opencode-ai

# Homebrew (aanbevolen door OpenCode voor de meest actuele releases)
brew install anomalyco/tap/opencode

# Arch Linux (stabiel)
sudo pacman -S opencode

# Arch Linux (nieuwste van AUR)
paru -S opencode-bin

Windows-opmerkingen (officiële richtlijn adviseert vaak WSL voor de beste compatibiliteit). Alternatieven zijn Scoop/Chocolatey of npm.

# chocoloatey (Windows)
choco install opencode

# scoop (Windows)
scoop install opencode

Docker (handig voor een snelle test):

docker run -it --rm ghcr.io/anomalyco/opencode

Installatie verifiëren

opencode --version
opencode --help

Verwachte output (zal variëren per versie):

# Voorbeeld:
# <print een versienummer, bijv. vX.Y.Z>
# <print hulp met beschikbare commando's/subcommando's>

Een aanbieder koppelen (twee praktische paden)

Pad A: TUI /connect (interactief)

Start OpenCode:

opencode

Voer vervolgens uit:

/connect

Volg de UI-stappen om een aanbieder te selecteren en te authenticeren (sommige flows openen een browser/apparaat-login).

Pad B: CLI opencode auth login (aanbieder-sleutels)

OpenCode ondersteunt het configureren van aanbieders via:

opencode auth login

Opmerkingen:

  • Inloggegevens worden opgeslagen in ~/.local/share/opencode/auth.json.
  • OpenCode kan ook sleutels laden van omgevingsvariabelen of een .env bestand in je project.

Lokale LLM-hosting (Ollama, llama.cpp)

OpenCode werkt met elke OpenAI-compatibele API. Voor lokaal development draaien veel gebruikers Ollama en wijzen OpenCode daarop. Onlangs heb ik zeer goede ervaringen gehad met het configureren en uitvoeren van OpenCode met llama.cpp in plaats daarvan—llama-server exposeert OpenAI-compatibele endpoints, dus je kunt GGUF-modellen gebruiken met dezelfde workflow. Als je voorkeur geeft aan fijne controle over geheugen en runtime, of een lichtere stack wilt zonder Python (overigens is ollama geïmplementeerd in Go), is llama.cpp het proberen waard. Ik heb veel plezier gehad met het configureren van offgeladen lagen, het gebruiksgemak van modellen in GGUF-formaat, en de veel betere/snelder geïmplementeerde compatibiliteit met nieuwe modellen, zoals Qwen3.5. Als je wilt weten welke modellen daadwerkelijk goed presteren binnen OpenCode — voor coding-taken en structuur-output nauwkeurigheid — bekijk dan mijn hands-on LLM-vergelijking voor OpenCode.

Een project correct starten (aanbevolen eerste run)

Vanaf je repo:

cd /path/to/your/repo
opencode

Vervolgens initialiseren:

/init

Dit analyseert je project en maakt een AGENTS.md bestand in de projectroot. Het is doorgaans de moeite waard om dit bestand in je commit te zetten, zodat OpenCode (en teamleden) consistente projectcontext delen.

Kern CLI-workflows (kopieer-plak voorbeelden)

OpenCode ondersteunt niet-interactieve runs:

opencode run "Leg uit hoe closures werken in JavaScript"

Workflow: code genereren (CLI)

Doel: een kleine, testbare functie genereren met minimale context.

opencode run "Schrijf een Go-functie ParsePort(envVar string, defaultPort int) (int, error). Het moet de omgevingsvariabele lezen, een int parsen, valideren 1-65535, en defaultPort teruggeven als leeg. Inclusief 3 tabel-gedreven tests."

Verwachte output:

  • Een uitleg plus code-blokken (functie + tests). De exacte code varieert per model/aanbieder en prompt.

Workflow: een bestand veilig refactoren (CLI + Plan-agent)

Doel: refactoren zonder onbedoelde bewerkingen door een restrictievere agent te gebruiken.

opencode run --agent plan --file ./src/auth.ts \
  "Refactor dit bestand om complexiteit te verminderen. Output: (1) een kort plan, (2) een unified diff patch, (3) risico's/edge-cases om te testen. Voer geen commando's uit."

Verwachte output:

  • Een plan-sectie + een diff --git ... patch-blok + een test-checklist.
  • Inhoud varieert. Als het geen diff produceert, prompt opnieuw: “Geef alleen een unified diff terug” of “Gebruik diff --git formaat.”

Workflow: repo-vragen stellen (CLI)

Doel: implementatiedetails snel vinden.

opencode run --agent explore \
  "In deze repository, waar wordt authenticatie gevalideerd voor API-aanvragen? Lijst waarschijnlijke bestanden en leg de flow uit. Als je onzeker bent, zeg dan wat je hebt gecontroleerd."

Verwachte output:

  • Een korte kaart van bestandslocaties + flow-beschrijving.
  • Output hangt af van repo-grootte en model/aanbieder context-tools.

Workflow: herhaalde CLI-runs versnellen met een persistente server

Als je scripts maakt of meerdere opencode run calls uitvoert, kun je een headless server één keer starten:

Terminal 1:

opencode serve --port 4096 --hostname 127.0.0.1

Terminal 2:

opencode run --attach http://localhost:4096 "Samenvatten van de repo-structuur en hoofdingangen."
opencode run --attach http://localhost:4096 "Stel nu 3 high-impact refactoringen voor en waarom."

Verwachte output:

  • Dezelfde als opencode run, maar meestal met minder herhaalde startup-overhead.

Programmatiek gebruik (officiële JS/TS SDK)

OpenCode exposeert een HTTP-server (OpenAPI) en biedt een typeveilige JS/TS client.

Installeren:

npm install @opencode-ai/sdk

Voorbeeld: server + client starten, dan prompten

Maak scripts/opencode-sdk-demo.mjs:

import { createOpencode } from "@opencode-ai/sdk";

const opencode = await createOpencode({
  hostname: "127.0.0.1",
  port: 4096,
  config: {
    // Model string formaat is provider/model (alleen voorbeeld)
    // model: "anthropic/claude-3-5-sonnet-20241022",
  },
});

console.log(`Server draait op: ${opencode.server.url}`);

// Basis gezondheids-/versiecontrole
const health = await opencode.client.global.health();
console.log("Gezond:", health.data.healthy, "Versie:", health.data.version);

// Een sessie maken en prompten
const session = await opencode.client.session.create({ body: { title: "SDK snelstart demo" } });

const result = await opencode.client.session.prompt({
  path: { id: session.data.id },
  body: {
    parts: [{ type: "text", text: "Genereer een klein README-sectie die deze repo beschrijft." }],
  },
});

console.log(result.data);

// Sluit server af wanneer klaar
opencode.server.close();

Uitvoeren:

node scripts/opencode-sdk-demo.mjs

Verwachte output:

  • “Server draait op …”
  • Een gezondheidsrespons inclusief een versiestring
  • Een sessie prompt-respons object (exacte structuur hangt af van responseStyle en SDK-versie)

Minimale OpenCode configuratie die je kunt kopiëren

OpenCode ondersteunt JSON en JSONC configuratie. Dit is een redelijk startpunt voor een project-lokale configuratie.

Maak opencode.jsonc in je repo-root:

{
  "$schema": "https://opencode.ai/config.json",

  // Kies een standaard model (provider/model). Houd dit afgestemd op wat `opencode models` toont.
  "model": "provider/model",

  // Optioneel: een goedkoper "klein model" voor lichte taken (titels, enz.)
  "small_model": "provider/small-model",

  // Optioneel: OpenCode server standaarden (gebruikt door serve/web)
  "server": {
    "port": 4096,
    "hostname": "127.0.0.1"
  },

  // Optionele veiligheid: bevestiging vereisen voor bewerkingen/commando's
  "permission": {
    "edit": "ask",
    "bash": "ask"
  }
}

Korte cheat sheet (snelle naslag)

Commando’s die je dagelijks gebruikt

opencode                       # start TUI
opencode run "..."             # niet-interactieve run (automatisering)
opencode run --file path "..." # bestanden aan prompt toevoegen
opencode models --refresh      # modellenlijst vernieuwen
opencode auth login            # aanbieder-inloggegevens configureren
opencode serve                 # headless HTTP-server (OpenAPI)
opencode web                   # headless server + web-UI
opencode session list          # sessies lijsten
opencode stats                 # token/kost statistieken

TUI-commando’s om te onthouden

/connect   # een aanbieder koppelen
/init      # repo analyseren, AGENTS.md genereren
/share     # een sessie delen (als ingeschakeld)
/undo      # een wijziging ongedaan maken
/redo      # een wijziging opnieuw doen
/help      # hulp/sneltoetsen

Standaard “leader key” concept (TUI)

OpenCode gebruikt een configureerbare “leader” toets (vaak ctrl+x) om terminal-conflicten te vermijden. Veel sneltoetsen zijn “Leader + toets”.

Een pagina printbare OpenCode cheat sheet tabel

Deze versie is opzettelijk dicht en “printvriendelijk”. (Je kunt dit later plakken in een dedicated /ai-devtools/opencode/cheatsheet/ pagina.)

Taak Commando / sneltoets Opmerkingen
Start TUI opencode Standaardgedrag is de terminal-UI lanceren
Voer one-shot prompt uit opencode run "..." Niet-interactieve modus voor scripting/automatisering
Voeg bestand(en) toe aan prompt opencode run --file path/to/file "..." Gebruik meerdere --file vlaggen voor meerdere bestanden
Kies model voor een run opencode run --model provider/model "..." Model strings zijn provider/model
Kies agent opencode run --agent plan "..." Plan is ontworpen voor veiliger “geen wijzigingen” werk (permissie-gerestrict)
Lijst modellen opencode models [provider] Gebruik --refresh om de cached lijst bij te werken
Configureer aanbieder-inloggegevens opencode auth login Opslaan in ~/.local/share/opencode/auth.json
Lijst geauthenticeerde aanbieders opencode auth list / opencode auth ls Bevestigt wat OpenCode ziet
Start headless server opencode serve --port 4096 --hostname 127.0.0.1 OpenAPI spec op http://host:port/doc
Runs koppelen aan server opencode run --attach http://localhost:4096 "..." Handig om herhaalde koude starts te voorkomen
Basis auth inschakelen OPENCODE_SERVER_PASSWORD=... opencode serve Gebruikersnaam default is opencode tenzij overruled
Web-UI modus opencode web Start server + opent browser
Exporteer een sessie opencode export [sessionID] Handig voor archiveren of delen van context
Importeer een sessie opencode import session.json Kan ook importeren van een deel-URL
Bekijk globale CLI vlaggen opencode --help / opencode --version --print-logs + --log-level voor debugging
TUI leader key concept default leader toets vaak ctrl+x Aanpasbaar in tui.json

Oh My Opencode — neem OpenCode verder met multi-agent orchestration

Zodra OpenCode draait, is de natuurlijke volgende stap Oh My Opencode — een community plugin die OpenCode omhult in een multi-agent harnas. Het hoofdidee: typ ultrawork (of ulw) in een sessie en een orchestrator (Sisyphus) neemt het over, delegeert sub-taken aan specialist agents die parallel draaien, elk op de modelfamilie waarvoor hun prompts zijn getuned.

Drie artikelen behandelen dit diepgaand:


Bronnen (eerst officieel)

Officieel:

Autoritatieve integratie-referentie:

Gereputeerde vergelijkingen/tutorials: