Kommandoen opencode serve kører en hovedløs HTTP-server, som afslører et OpenAPI-endpoint, som en opencode-klient kan bruge.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Flag Beskrivelse Standard --portPort at lytte på 4096--hostnameVærtsnavn at lytte på 127.0.0.1--mdnsAktiver mDNS-opdagelse false--mdns-domainBrugerdefineret domænenavn for mDNS-tjeneste opencode.local--corsYderligere browseroprindelse for at tillade []
--cors kan angives flere gange:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Indstil OPENCODE_SERVER_PASSWORD for at beskytte serveren med HTTP grundlæggende godkendelse. Brugernavnet er som standard opencode, eller indstil OPENCODE_SERVER_USERNAME for at tilsidesætte det. Dette gælder både opencode serve og opencode web.
OPENCODE_SERVER_PASSWORD = your-password opencode serve
Når du kører opencode starter den en TUI og en server. Hvor TUI er
klient som taler med serveren. Serveren viser en OpenAPI 3.1-specifikation
endpoint. Dette endpoint bruges også til at generere en SDK .
Denne arkitektur lader opencode understøtte flere klienter og lader dig interagere med opencode programmatisk.
Du kan køre opencode serve for at starte en selvstændig server. Hvis du har
opencode TUI kørende, vil opencode serve starte en ny server.
Når du starter TUI, tildeler den tilfældigt en port og et værtsnavn. Du kan i stedet sende --hostname og --port flagene . Brug derefter disse til at forbinde til serveren.
/tui endpointet kan bruges til at køre TUI gennem serveren. Du kan for eksempel forududfylde eller køre en forespørgsel. Denne opsætning bruges af OpenCode IDE plugins.
Serveren publicerer en OpenAPI 3.1-specifikation som kan vises på:
http://<hostname>:<port>/doc
For eksempel http://localhost:4096/doc. Brug specifikationen til at generere klienter eller inspicere forespørgsels- og svartyper. Eller se den i en Swagger-utforsker.
OpenCode-serveren viser følgende API’er.
Metode Sti Beskrivelse Svar GET/global/healthFå serverhelbred og version { healthy: true, version: string }GET/global/eventFå globale hændelser (SSE strøm) Eventstrøm
Metode Sti Beskrivelse Svar GET/projectListe over alle projekter Project[]GET/project/currentFå det nuværende projekt Project
Metode Sti Beskrivelse Svar GET/pathFå nuværende sti PathGET/vcsFå VCS info for nuværende projekt VcsInfo
Metode Sti Beskrivelse Svar POST/instance/disposeKassér nuværende instans boolean
Metode Sti Beskrivelse Svar GET/configFå konfigurationsinformation ConfigPATCH/configOpdater konfiguration ConfigGET/config/providersListe udbydere og standardmodeller { providers: Provider[] , default: { [key: string]: string } }
Metode Sti Beskrivelse Svar GET/providerListe alle udbydere { all: Provider[] , default: {...}, connected: string[] }GET/provider/authFå udbydergodkendelsesmetoder { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeAutoriser en udbyder ved at bruge OAuth ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackHåndter OAuth-callback for en udbyder boolean
Metode Sti Beskrivelse Noter GET/sessionListe alle sessioner Returnerer Session[] POST/sessionOpret en ny session body: { parentID?, title? }, returnerer Session GET/session/statusFå sessionstatus for alle sessioner Returnerer { [sessionID: string]: SessionStatus } GET/session/:idFå sessiondetaljer Returnerer Session DELETE/session/:idSlet en session og alle dens data Returnerer boolean PATCH/session/:idOpdater sessionegenskaber body: { title? }, returnerer Session GET/session/:id/childrenFå en sessions undersessioner Returnerer Session[] GET/session/:id/todoFå to-do-listen for en session Returnerer Todo[] POST/session/:id/initAnalyser appen og lav AGENTS.md body: { messageID, providerID, modelID }, returnerer boolean POST/session/:id/forkFork en eksisterende session ved en besked body: { messageID? }, returnerer Session POST/session/:id/abortAfbryd en kørende session Returnerer boolean POST/session/:id/shareDel en session Returnerer Session DELETE/session/:id/shareStop med at dele en session Returnerer Session GET/session/:id/diffFå diff for denne session query: messageID?, returnerer FileDiff[] POST/session/:id/summarizeOpsummér sessionen body: { providerID, modelID }, returnerer boolean POST/session/:id/revertTilbagestil en besked body: { messageID, partID? }, returnerer boolean POST/session/:id/unrevertGendan alle nulstillede beskeder Returnerer boolean POST/session/:id/permissions/:permissionIDSvar på en tilladelsesforespørgsel body: { response, remember? }, returnerer boolean
Metode Sti Beskrivelse Noter GET/session/:id/messageListe beskeder i en session query: limit?, returnerer { info: Message , parts: Part[] }[] POST/session/:id/messageSend en besked og vent på svar body: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, returnerer { info: Message , parts: Part[] } GET/session/:id/message/:messageIDFå beskeddetaljer Returnerer { info: Message , parts: Part[] } POST/session/:id/prompt_asyncSend en besked asynkront (ingen vent) body: samme som /session/:id/message, returnerer 204 No Content POST/session/:id/commandUdfør en skråstregskommando body: { messageID?, agent?, model?, command, arguments }, returnerer { info: Message , parts: Part[] } POST/session/:id/shellKør en shell-kommando body: { agent, model?, command }, returnerer { info: Message , parts: Part[] }
Metode Sti Beskrivelse Svar GET/commandListe alle kommandoer Command[]
Metode Sti Beskrivelse Svar GET/find?pattern=<pat>Søg efter tekst i filer En række matchobjekter med path, lines, line_number, absolute_offset, submatches GET/find/file?query=<q>Find filer og mapper efter navn string[] (stier)GET/find/symbol?query=<q>Find arbejdsområdesymboler Symbol[]GET/file?path=<path>Liste filer og mapper FileNode[]GET/file/content?path=<p>Læs en fil FileContentGET/file/statusFå status for sporede filer File[]
query (obligatorisk) - søgestreng (fuzzy match)
type (valgfrit) - begræns resultaterne til "file" eller "directory"
directory (valgfrit) — overstyr projektroden for søget
limit (valgfrit) - maks. resultater (1–200)
dirs (valgfrit) - ældre flag ("false" returnerer kun filer)
Metode Sti Beskrivelse Svar GET/experimental/tool/idsVis alle værktøjs-ID’er ToolIDsGET/experimental/tool?provider=<p>&model=<m>Liste værktøjer med JSON-skemaer for en model ToolList
Metode Sti Beskrivelse Svar GET/lspFå LSP serverstatus LSPStatus[]GET/formatterFå formateringsstatus FormatterStatus[]GET/mcpFå MCP serverstatus { [name: string]: MCPStatus }POST/mcpTilføj MCP server dynamisk body: { name, config }, returnerer MCP statusobjekt
Metode Sti Beskrivelse Svar GET/agentListe alle tilgængelige agenter Agent[]
Metode Sti Beskrivelse Svar POST/logSkriv logpost. Body: { service, level, message, extra? } boolean
Metode Sti Beskrivelse Svar POST/tui/append-promptTilføj tekst til prompten booleanPOST/tui/open-helpÅbn hjælp-dialogen booleanPOST/tui/open-sessionsÅbn sessionsvælgeren booleanPOST/tui/open-themesÅbn temavælgeren booleanPOST/tui/open-modelsÅbn modelvælgeren booleanPOST/tui/submit-promptIndsend nuværende prompt booleanPOST/tui/clear-promptRyd prompten booleanPOST/tui/execute-commandUdfør en kommando ({ command }) booleanPOST/tui/show-toastVis toast ({ title?, message, variant }) booleanGET/tui/control/nextVent på næste kontrolforespørgsel Kontrolforespørgselsobjekt POST/tui/control/responseSvar på en kontrolforespørgsel ({ body }) boolean
Metode Sti Beskrivelse Svar PUT/auth/:idAngiv godkendelsesoplysninger. Body skal matche udbyderskema boolean
Metode Sti Beskrivelse Svar GET/eventServer-sendt hændelsesstrøm. Første hændelse er server.connected, derefter bushændelser Server-sendt hændelsesstrøm
Metode Sti Beskrivelse Svar GET/docOpenAPI 3.1-specifikation HTML side med OpenAPI-specifikation