OpenCode Quickstart: Installeer, configureer en gebruik de Terminal AI-codeagent

Hoe te installeren, configureren en gebruiken van OpenCode

Inhoud

OpenCode is een open source AI-coderingsagent die je kunt uitvoeren in de terminal (TUI + CLI) met optionele desktop- en IDE-oppervlakken. Dit is de OpenCode Quickstart: installeer, controleer, verbind met een model/leverancier en voer werkelijke workflows uit (CLI + API).

Versieopmerking: OpenCode komt snel uit. De opdrachten “latest” hier zijn stabiel, maar de uitvoer en standaardwaarden kunnen veranderen — controleer altijd de officiële CLI-documentatie en changelog (onderaan vermeld).

Dit artikel is onderdeel van AI Developer Tools: The Complete Guide to AI-Powered Development.

Wat OpenCode is (en waar het past)

OpenCode is ontworpen voor terminal-first, agente codering, terwijl het zich flexibel houdt op leverancier/model. In de praktijk is het een workflow-laag die kan:

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

opencode met zelfgehoste qwen3.5 27b LLM

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

  • CLI diepgang
  • model/leverancier gedrag en kosten (LLM-vergelijking binnen OpenCode)
  • configuratie & agents
  • integraties (GitHub/GitLab/Copilot)
  • cheatheet

Voorwaarden

Je zal willen hebben:

  • Een moderne terminal-emulator (belangrijk voor de TUI-ervaring).
  • Toegang tot ten minste één model/leverancier (API-sleutels of abonnementsauthenticatie, afhankelijk van de leverancier).

Installeer OpenCode (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 (aangeraden door OpenCode voor de meest up-to-date releases)
brew install anomalyco/tap/opencode

# Arch Linux (stabiel)
sudo pacman -S opencode

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

Windows-opmerkingen (officiële richtlijnen adviseren 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

Controleer de installatie

opencode --version
opencode --help

Verwachte uitvoer (varieert per versie):

# Voorbeeld:
# <print een versienummer, bijvoorbeeld vX.Y.Z>
# <print hulp met beschikbare opdrachten/subopdrachten>

Verbind een leverancier (twee praktische paden)

Pad A: TUI /connect (interactief)

Start OpenCode:

opencode

Dan voer je uit:

/connect

Volg de UI-stappen om een leverancier te selecteren en te authenticeren (sommige flows openen een browser/apparaatlogin).

Pad B: CLI opencode auth login (leverancierssleutels)

OpenCode ondersteunt het configureren van leveranciers via:

opencode auth login

Opmerkingen:

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

Start een project correct (aangeraden eerste uitvoering)

Vanuit je repo:

cd /pad/naar/je/repo
opencode

Dan initialiseren:

/init

Dit analyseert je project en maakt een AGENTS.md-bestand in de projectroot. Het is meestal waard om dit bestand te committeren zodat OpenCode (en collega’s) een consistente projectcontext delen.

Kern CLI workflows (kopieer-plakvoorbeelden)

OpenCode ondersteunt niet-interactive uitvoeringen:

opencode run "Leg uit hoe closures werken in JavaScript"

Workflow: code genereren (CLI)

Doel: genereer een kleine, testbare functie 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 op 1-65535 en defaultPort retourneren als leeg. Voeg 3 tabelgedreven tests toe."

Verwachte uitvoer:

  • Een uitleg plus codeblokken (functie + tests). Exacte code varieert per model/leverancier 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. Uitvoer: (1) een korte plan, (2) een gecombineerde diff-patch, (3) risico's/edge-cases om te testen. Voer geen opdrachten uit."

Verwachte uitvoer:

  • Een plansectie + een diff --git ... patchblok + een testchecklist.
  • Inhoud varieert. Als het geen diff produceert, herprompt: “Retourneer alleen een gecombineerde diff” of “Gebruik diff --git formaat.”

Workflow: vragen stellen over een repo (CLI)

Doel: snel implementatiedetails lokaliseren.

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

Verwachte uitvoer:

  • Een korte kaart van bestandspaden + stroombeschrijving.
  • Uitvoer hangt af van repo-grootte en model/leverancier contexttools.

Workflow: versneld herhaalde CLI-uitvoeringen met een aanhoudende server

Als je scripts of meerdere opencode run-aanroepen 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 "Samenvat de repostructuur en hoofdentrypoints."
opencode run --attach http://localhost:4096 "Stel nu drie hoge-impact refactoren voor en waarom."

Verwachte uitvoer:

  • Dezelfde als opencode run, maar meestal met minder herhaalde opstartoverhead.

Programmatieke gebruik (officiële JS/TS SDK)

OpenCode blootst een HTTP-server (OpenAPI) en biedt een typesafe JS/TS-client.

Installeer:

npm install @opencode-ai/sdk

Voorbeeld: start server + client, dan prompt

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 (voorbeeld alleen)
    // model: "anthropic/claude-3-5-sonnet-20241022",
  },
});

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

// Basisgezondheid/versiecheck
const health = await opencode.client.global.health();
console.log("Gezond:", health.data.healthy, "Versie:", health.data.version);

// Maak een sessie en prompt
const session = await opencode.client.session.create({ body: { title: "SDK quickstart demo" } });

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

console.log(result.data);

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

Uitvoeren:

node scripts/opencode-sdk-demo.mjs

Verwachte uitvoer:

  • “Server draait op …”
  • Een gezondheidsreactie met een versienummer
  • Een sessiepromptreactieobject (exacte structuur hangt af van responseStyle en SDK-versie)

Minimal OpenCode configuratie die je kunt kopiëren

OpenCode ondersteunt JSON en JSONC configuratie. Dit is een redelijke startpunt voor een projectlokale configuratie.

Maak opencode.jsonc in je repo root:

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

  // Kies een standaardmodel (provider/model). Houd dit gelijk aan wat `opencode models` toont.
  "model": "provider/model",

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

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

  // Optionele veiligheid: vereist bevestiging voor bewerkingen/opdrachten
  "permission": {
    "edit": "ask",
    "bash": "ask"
  }
}

Korte cheatheet (snel overzicht)

Opdrachten die je dagelijks gebruikt

opencode                       # start TUI
opencode run "..."             # niet-interactieve uitvoering (automatisering)
opencode run --file path "..." # bestanden toevoegen aan prompt
opencode models --refresh      # vernieuw lijst met modellen
opencode auth login            # configureer leveranciersreferenties
opencode serve                 # headless HTTP-server (OpenAPI)
opencode web                   # headless server + web UI
opencode session list          # lijst met sessies
opencode stats                 # token/kostenstatistieken

TUI-opdrachten waardig om te onthouden

/connect   # verbind met een leverancier
/init      # analyseer repo, genereer AGENTS.md
/share     # deel een sessie (als ingeschakeld)
/undo      # ongedaan maken van een wijziging
/redo      # opnieuw doen van een wijziging
/help      # hulp/kortingen

Standaard “leader key” concept (TUI)

OpenCode gebruikt een aanpasbare “leader”-toets (meestal ctrl+x) om conflicten met de terminal te vermijden. Veel snelkoppelingen zijn “Leader + toets”.

FAQ (schema-klar)

Wat is OpenCode?

OpenCode is een open source AI-coderingsagent ontworpen om te werken in je terminal (TUI + CLI) met aanvullende desktop/IDE-oppervlakken.

Is OpenCode gratis?

Het gereedschap is open source. Gebruikskosten hangen af van het model/leverancier dat je verbindt. Sommige leveranciers kunnen abonnementgebonden authenticatie of gratis niveaus bieden.

Hoe voer ik OpenCode uit zonder de TUI te openen?

Gebruik opencode run "..." voor niet-interactieve modus (handig voor scripts/automatisering).

Waar slaat OpenCode leveranciersreferenties op?

opencode auth login slaat referenties op in ~/.local/share/opencode/auth.json.

Heeft OpenCode een API / SDK?

Ja. OpenCode kan een headless HTTP-server draaien (opencode serve) met een OpenAPI-spec op /doc, en biedt een officiële JS/TS SDK: @opencode-ai/sdk.

Kan ik GitHub Copilot gebruiken met OpenCode?

GitHub heeft aangekondigd dat Copilot ondersteuning biedt voor authenticatie met OpenCode via een formele integratie. De exacte beschikbaarheid hangt af van je Copilot-plan en de huidige leveranciersauthenticatiestroom.

Eénpagina-printbare OpenCode cheatheet-tabel

Deze versie is opzetten op dichtheid en “printvriendelijk.” (Je kunt het plakken in een specifieke /ai-devtools/opencode/cheatsheet/ pagina later.)

Taak Opdracht / sneltoets Opmerkingen
Start TUI opencode Standaardgedrag is het starten van de terminal UI
Een one-shot prompt uitvoeren opencode run "..." Niet-interactieve modus voor scripting/automatisering
Bestand(s) aan prompt koppelen opencode run --file pad/naar/bestand "..." Gebruik meerdere --file-vlaggen voor meerdere bestanden
Model kiezen voor een uitvoering opencode run --model provider/model "..." Modelstrings zijn provider/model
Agent kiezen opencode run --agent plan "..." Plan is ontworpen voor veiligere “geen wijzigingen” werk (toegangsbeperkt)
Modellenlijst tonen opencode models [provider] Gebruik --refresh om de gecachete lijst bij te werken
Leveranciersreferenties configureren opencode auth login Slaat referenties op in ~/.local/share/opencode/auth.json
Geverifieerde leverancierslijst tonen 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
Uitvoeringen koppelen aan server opencode run --attach http://localhost:4096 "..." Handig om herhaalde koudstarten te vermijden
Basisauth inschakelen OPENCODE_SERVER_PASSWORD=... opencode serve Gebruikersnaam is standaard opencode tenzij overschreven
Web UI-modus opencode web Start server + opent browser
Sessie exporteren opencode export [sessionID] Handig voor archivering of contextdeling
Sessie importeren opencode import session.json Kan ook worden geïmporteerd vanuit een delen-URL
Globale CLI-flags bekijken opencode --help / opencode --version --print-logs + --log-level voor debugging
TUI leader key concept standaard leader toets vaak ctrl+x Aanpasbaar in tui.json

Bronnen (officieel eerste)

Officieel:

Autoriteit integratieverwijzing:

Reputabel vergelijkingen/tutorials: