OpenClaw kan lokale AI-CLI’s uitvoeren als een tekst-only fallback wanneer API-providers niet beschikbaar zijn, rate-limited zijn of tijdelijk verkeerd reageren. Dit is bewust conservatief:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- OpenClaw-tools worden niet rechtstreeks geïnjecteerd, maar backends met
bundleMcp: truekunnen Gateway-tools ontvangen via een loopback-MCP-bridge. - JSONL-streaming voor CLI’s die dit ondersteunen.
- Sessies worden ondersteund (zodat vervolgrundes coherent blijven).
- Afbeeldingen kunnen worden doorgegeven als de CLI afbeeldingspaden accepteert.
Beginnersvriendelijke snelstart
Je kunt Codex CLI zonder configuratie gebruiken (de meegeleverde OpenAI-plugin registreert een standaardbackend):agents.defaults.cliBackends.
Gebruiken als fallback
Voeg een CLI-backend toe aan je fallbacklijst zodat deze alleen draait wanneer primaire modellen falen:- Als je
agents.defaults.modelsgebruikt (allowlist), moet je je CLI-backendmodellen daar ook opnemen. - Als de primaire provider faalt (auth, rate limits, time-outs), probeert OpenClaw daarna de CLI-backend.
Configuratieoverzicht
Alle CLI-backends staan onder:codex-cli, my-cli).
De provider-id wordt de linkerkant van je modelreferentie:
Voorbeeldconfiguratie
Hoe het werkt
- Selecteert een backend op basis van het providerprefix (
codex-cli/...). - Bouwt een systeemprompt met dezelfde OpenClaw-prompt + workspace-context.
- Voert de CLI uit met een sessie-id (indien ondersteund), zodat geschiedenis consistent blijft.
De meegeleverde
claude-cli-backend houdt per OpenClaw-sessie een Claude-stdio-proces actief en stuurt vervolgrondes via stream-json-stdin. - Parset output (JSON of platte tekst) en retourneert de uiteindelijke tekst.
- Persisteert sessie-id’s per backend, zodat vervolgrondes dezelfde CLI-sessie hergebruiken.
De meegeleverde Anthropic
claude-cli-backend wordt weer ondersteund. Anthropic-medewerkers
hebben ons verteld dat OpenClaw-achtig Claude CLI-gebruik weer is toegestaan, dus OpenClaw behandelt
claude -p-gebruik als goedgekeurd voor deze integratie, tenzij Anthropic
een nieuw beleid publiceert.codex-cli-backend geeft de systeemprompt van OpenClaw door via
Codex’ model_instructions_file-configuratie-override (-c model_instructions_file="..."). Codex biedt geen Claude-achtige
--append-system-prompt-flag, dus OpenClaw schrijft de samengestelde prompt naar een
tijdelijk bestand voor elke nieuwe Codex CLI-sessie.
De meegeleverde Anthropic claude-cli-backend ontvangt de OpenClaw-Skills-snapshot
op twee manieren: de compacte OpenClaw-Skills-catalogus in de toegevoegde systeemprompt, en
een tijdelijke Claude Code-plugin die wordt meegegeven met --plugin-dir. De plugin bevat
alleen de geschikte Skills voor die agent/sessie, zodat Claude Code’s native skill-resolver
dezelfde gefilterde set ziet die OpenClaw anders in
de prompt zou adverteren. Skill-env-/API-key-overrides worden nog steeds door OpenClaw toegepast op
de childprocess-omgeving voor de run.
Claude CLI heeft ook een eigen niet-interactieve permissiemodus. OpenClaw mapt die
naar het bestaande exec-beleid in plaats van Claude-specifieke configuratie toe te voegen: wanneer het
effectieve gevraagde exec-beleid YOLO is (tools.exec.security: "full" en
tools.exec.ask: "off"), voegt OpenClaw --permission-mode bypassPermissions toe.
Per-agent-instellingen voor agents.list[].tools.exec overschrijven globale tools.exec voor
die agent. Om een andere Claude-modus af te dwingen, stel je expliciete ruwe backend-args in
zoals --permission-mode default of --permission-mode acceptEdits onder
agents.defaults.cliBackends.claude-cli.args en bijpassende resumeArgs.
Voordat OpenClaw de meegeleverde claude-cli-backend kan gebruiken, moet Claude Code zelf
al zijn ingelogd op dezelfde host:
agents.defaults.cliBackends.claude-cli.command alleen wanneer de claude-
binary nog niet op PATH staat.
Sessies
- Als de CLI sessies ondersteunt, stel dan
sessionArg(bijv.--session-id) ofsessionArgs(placeholder{sessionId}) in wanneer de ID in meerdere flags moet worden ingevoegd. - Als de CLI een resume-subcommand met andere flags gebruikt, stel dan
resumeArgsin (vervangtargsbij hervatten) en optioneelresumeOutput(voor niet-JSON-resumes). sessionMode:always: stuur altijd een sessie-id (nieuwe UUID als er geen is opgeslagen).existing: stuur alleen een sessie-id als er eerder een was opgeslagen.none: stuur nooit een sessie-id.
claude-clistaat standaard opliveSession: "claude-stdio",output: "jsonl", eninput: "stdin", zodat vervolgrondes het live Claude-proces hergebruiken zolang het actief is. Warme stdio is nu de standaard, ook voor aangepaste configuraties die transportvelden weglaten. Als de Gateway herstart of het idle proces afsluit, hervat OpenClaw vanaf de opgeslagen Claude-sessie-id. Opgeslagen sessie- id’s worden vóór hervatten geverifieerd tegen een bestaand leesbaar projecttranscript, zodat spookbindingen worden gewist metreason=transcript-missingin plaats van stilzwijgend een nieuwe Claude CLI-sessie te starten onder--resume.- Opgeslagen CLI-sessies zijn provider-eigen continuïteit. De impliciete dagelijkse sessie-
reset kapt ze niet af;
/reseten explicietesession.reset-beleidsregels doen dat nog steeds.
serialize: truehoudt runs op dezelfde lane geordend.- De meeste CLI’s serialiseren op één provider-lane.
- OpenClaw laat hergebruik van opgeslagen CLI-sessies vallen wanneer de geselecteerde auth-identiteit verandert, inclusief een gewijzigde auth-profiel-id, statische API-sleutel, statisch token of OAuth- accountidentiteit wanneer de CLI er een exposeert. Rotatie van OAuth-access- en refresh-tokens kapt de opgeslagen CLI-sessie niet af. Als een CLI geen stabiele OAuth-account-id exposeert, laat OpenClaw die CLI de hervatpermissies afdwingen.
Fallback-prelude uit claude-cli-sessies
Wanneer eenclaude-cli-poging faalt naar een niet-CLI-kandidaat in
agents.defaults.model.fallbacks, seedt OpenClaw
de volgende poging met een contextprelude die wordt geoogst uit Claude Code’s lokale
JSONL-transcript op ~/.claude/projects/. Zonder deze seed zou de fallback-
provider koud starten omdat OpenClaw’s eigen sessietranscript leeg is
voor claude-cli-runs.
- De prelude geeft de voorkeur aan de nieuwste
/compact-samenvatting ofcompact_boundary- marker, en voegt daarna de meest recente post-boundary-rondes toe tot een teken- budget. Pre-boundary-rondes worden weggelaten omdat de samenvatting ze al vertegenwoordigt. - Toolblokken worden samengevoegd tot compacte
(tool call: name)- en(tool result: …)-hints om het promptbudget eerlijk te houden. De samenvatting wordt gelabeld als(truncated)als deze overloopt. - Same-provider-
claude-cli-naar-claude-cli-fallbacks vertrouwen op Claude’s eigen--resumeen slaan de prelude over. - De seed hergebruikt de bestaande validatie van het Claude-sessiebestandspad, zodat willekeurige paden niet kunnen worden gelezen.
Afbeeldingen (pass-through)
Als je CLI afbeeldingspaden accepteert, stel danimageArg in:
imageArg is ingesteld, worden die
paden doorgegeven als CLI-args. Als imageArg ontbreekt, voegt OpenClaw de
bestandspaden toe aan de prompt (padinjectie), wat genoeg is voor CLI’s die lokale bestanden automatisch
laden vanuit platte paden.
Invoer / uitvoer
output: "json"(standaard) probeert JSON te parsen en tekst + sessie-id te extraheren.- Voor Gemini CLI JSON-output leest OpenClaw antwoordtekst uit
responseen gebruik uitstatswanneerusageontbreekt of leeg is. output: "jsonl"parset JSONL-streams (bijvoorbeeld Codex CLI--json) en extraheert het uiteindelijke agentbericht plus sessie- identifiers wanneer aanwezig.output: "text"behandelt stdout als het uiteindelijke antwoord.
input: "arg"(standaard) geeft de prompt door als de laatste CLI-arg.input: "stdin"stuurt de prompt via stdin.- Als de prompt erg lang is en
maxPromptArgCharsis ingesteld, wordt stdin gebruikt.
Standaardwaarden (plugin-eigen)
De meegeleverde OpenAI-plugin registreert ook een standaard voorcodex-cli:
command: "codex"args: ["exec","--json","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]resumeArgs: ["exec","resume","{sessionId}","-c","sandbox_mode=\"workspace-write\"","--skip-git-repo-check"]output: "jsonl"resumeOutput: "text"modelArg: "--model"imageArg: "--image"sessionMode: "existing"
google-gemini-cli:
command: "gemini"args: ["--output-format", "json", "--prompt", "{prompt}"]resumeArgs: ["--resume", "{sessionId}", "--output-format", "json", "--prompt", "{prompt}"]imageArg: "@"imagePathScope: "workspace"modelArg: "--model"sessionMode: "existing"sessionIdFields: ["session_id", "sessionId"]
gemini op PATH (brew install gemini-cli of
npm install -g @google/gemini-cli).
Gemini CLI JSON-opmerkingen:
- Antwoordtekst wordt gelezen uit het JSON-veld
response. - Gebruik valt terug op
statswanneerusageafwezig of leeg is. stats.cachedwordt genormaliseerd naar OpenClawcacheRead.- Als
stats.inputontbreekt, leidt OpenClaw invoertokens af uitstats.input_tokens - stats.cached.
command-pad).
Plugin-eigen standaardwaarden
Standaardwaarden voor CLI-backends maken nu deel uit van het plugin-oppervlak:- Plugins registreren ze met
api.registerCliBackend(...). - De backend-
idwordt het providerprefix in modelreferenties. - Gebruikersconfiguratie in
agents.defaults.cliBackends.<id>overschrijft nog steeds de plugin-standaard. - Backend-specifieke configuratieopschoning blijft plugin-eigen via de optionele
normalizeConfig-hook.
input herschrijft de systeemprompt en gebruikersprompt die aan de CLI worden doorgegeven. output
herschrijft gestreamde assistant-delta’s en geparseerde definitieve tekst voordat OpenClaw
zijn eigen controlemarkeringen en kanaallevering verwerkt.
Voor CLI’s die Claude Code stream-json-compatibele JSONL uitvoeren, stel
jsonlDialect: "claude-stream-json" in op de config van die backend.
MCP-overlays bundelen
CLI-backends ontvangen OpenClaw-toolaanroepen niet rechtstreeks, maar een backend kan zich aanmelden voor een gegenereerde MCP-config-overlay metbundleMcp: true.
Huidig gebundeld gedrag:
claude-cli: gegenereerd strikt MCP-configbestandcodex-cli: inline config-overschrijvingen voormcp_servers; de gegenereerde OpenClaw-loopbackserver wordt gemarkeerd met Codex’ goedkeuringsmodus per server zodat MCP-aanroepen niet kunnen blijven hangen op lokale goedkeuringspromptsgoogle-gemini-cli: gegenereerd Gemini-systeeminstellingenbestand
- start een loopback HTTP-MCP-server die gateway-tools aan het CLI-proces blootstelt
- verifieert de bridge met een token per sessie (
OPENCLAW_MCP_TOKEN) - beperkt tooltoegang tot de huidige sessie, account- en kanaalcontext
- laadt ingeschakelde bundle-MCP-servers voor de huidige workspace
- voegt ze samen met elke bestaande MCP-config-/instellingenvorm van de backend
- herschrijft de startconfig met de integratiemodus van de backend uit de eigenaarsextensie
mcp.sessionIdleTtlMs milliseconden inactiviteit (standaard 10
minuten; stel 0 in om uit te schakelen). Eenmalige ingesloten runs zoals auth-probes,
slug-generatie en active-memory recall ruimen verzoeken op aan het einde van de run, zodat stdio-
childprocessen en Streamable HTTP/SSE-streams niet langer blijven bestaan dan de run.
Beperkingen
- Geen rechtstreekse OpenClaw-toolaanroepen. OpenClaw injecteert geen toolaanroepen in
het CLI-backendprotocol. Backends zien gateway-tools alleen wanneer ze zich aanmelden voor
bundleMcp: true. - Streaming is backend-specifiek. Sommige backends streamen JSONL; andere bufferen tot afsluiting.
- Gestructureerde uitvoer hangt af van de JSON-indeling van de CLI.
- Codex CLI-sessies worden hervat via tekstuitvoer (geen JSONL), wat minder
gestructureerd is dan de initiële
--json-run. OpenClaw-sessies werken nog steeds normaal.
Probleemoplossing
- CLI niet gevonden: stel
commandin op een volledig pad. - Verkeerde modelnaam: gebruik
modelAliasesomprovider/model→ CLI-model te koppelen. - Geen sessiecontinuïteit: zorg dat
sessionArgis ingesteld en datsessionModenietnoneis (Codex CLI kan momenteel niet hervatten met JSON-uitvoer). - Afbeeldingen genegeerd: stel
imageArgin (en controleer of de CLI bestandspaden ondersteunt).