Kommandoen opencode serve kjører en hodeløs HTTP-server som avslører et OpenAPI-endepunkt som en OpenCode-klient kan bruke.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Flagg Beskrivelse Standard --portPort å lytte på 4096--hostnameVertsnavn å lytte på 127.0.0.1--mdnsAktiver mDNS-oppdagelse false--mdns-domainEgendefinert domenenavn for mDNS-tjeneste opencode.local--corsYtterligere nettleseropprinnelse for å tillate []
--cors kan passeres flere ganger:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Sett OPENCODE_SERVER_PASSWORD for å beskytte serveren med HTTP grunnleggende autentisering. Brukernavnet er standard til opencode, eller sett OPENCODE_SERVER_USERNAME for å overstyre det. Dette gjelder både opencode serve og opencode web.
OPENCODE_SERVER_PASSWORD = your-password opencode serve
Når du kjører opencode starter den en TUI og en server. Der TUI er
klient som snakker med serveren. Serveren viser en OpenAPI 3.1-spesifikasjon
endepunkt. Dette endepunktet brukes også til å generere en SDK .
Denne arkitekturen lar OpenCode støtte flere klienter og lar deg samhandle med OpenCode programmatisk.
Du kan kjøre opencode serve for å starte en frittstående server. Hvis du har
OpenCode TUI kjører, vil opencode serve starte en ny server.
Når du starter TUI, tildeler den tilfeldig en port og vertsnavn. Du kan i stedet sende inn --hostname og --port flagg . Bruk deretter denne til å koble til serveren.
/tui endepunktet kan brukes til å kjøre TUI gjennom serveren. Du kan for eksempel forhåndsutfylle eller kjøre en forespørsel. Dette oppsettet brukes av OpenCode IDE plugins.
Serveren publiserer en OpenAPI 3.1-spesifikasjon som kan vises på:
http://<hostname>:<port>/doc
For eksempel http://localhost:4096/doc. Bruk spesifikasjonen til å generere klienter eller inspisere forespørsels- og svartyper. Eller se den i en Swagger-utforsker.
opencode-serveren viser følgende APIer.
Metode Sti Beskrivelse Svar GET/global/healthFå serverhelse og versjon { healthy: true, version: string }GET/global/eventFå globale hendelser (SSE strøm) Eventstrøm
Metode Sti Beskrivelse Svar GET/projectListe over alle prosjekter Project[]GET/project/currentFå det nåværende prosjektet Project
Metode Sti Beskrivelse Svar GET/pathFå gjeldende bane PathGET/vcsFå VCS info for gjeldende prosjekt VcsInfo
Metode Sti Beskrivelse Svar POST/instance/disposeKast gjeldende forekomst boolean
Metode Sti Beskrivelse Svar GET/configFå konfigurasjonsinformasjon ConfigPATCH/configOppdater konfigurasjon ConfigGET/config/providersListe leverandører og standardmodeller { providers: Provider[] , default: { [key: string]: string } }
Metode Sti Beskrivelse Svar GET/providerListe alle leverandører { all: Provider[] , default: {...}, connected: string[] }GET/provider/authFå leverandørautentiseringsmetoder { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeAutoriser en leverandør ved å bruke OAuth ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackHåndtere OAuth-tilbakeringing for en leverandør boolean
Metode Sti Beskrivelse Merknader GET/sessionListe alle økter Returnerer Session[] POST/sessionOpprett en ny økt body: { parentID?, title? }, returnerer Session GET/session/statusFå øktstatus for alle økter Returnerer { [sessionID: string]: SessionStatus } GET/session/:idFå øktdetaljer Returnerer Session DELETE/session/:idSlett en økt og alle dens data Returnerer boolean PATCH/session/:idOppdater øktegenskaper body: { title? }, returnerer Session GET/session/:id/childrenFå en økts barneøkter Returnerer Session[] GET/session/:id/todoFå gjøremålslisten for en økt Returnerer Todo[] POST/session/:id/initAnalyser appen og lag AGENTS.md body: { messageID, providerID, modelID }, returnerer boolean POST/session/:id/forkFork en eksisterende økt ved en melding body: { messageID? }, returnerer Session POST/session/:id/abortAvbryt en løpeøkt Returnerer boolean POST/session/:id/shareDel en økt Returnerer Session DELETE/session/:id/shareSlutt å dele en økt Returnerer Session GET/session/:id/diffFå diff for denne økten spørring: messageID?, returnerer FileDiff[] POST/session/:id/summarizeOppsummer økten body: { providerID, modelID }, returnerer boolean POST/session/:id/revertTilbakestill en melding body: { messageID, partID? }, returnerer boolean POST/session/:id/unrevertGjenopprett alle tilbakestilte meldinger Returnerer boolean POST/session/:id/permissions/:permissionIDSvar på en tillatelsesforespørsel body: { response, remember? }, returnerer boolean
Metode Sti Beskrivelse Merknader GET/session/:id/messageListe meldinger i en økt spørring: limit?, returnerer { info: Message , parts: Part[] }[] POST/session/:id/messageSend en melding og vent på svar body: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, returnerer { info: Message , parts: Part[] } GET/session/:id/message/:messageIDFå meldingsdetaljer Returnerer { info: Message , parts: Part[] } POST/session/:id/prompt_asyncSend en melding asynkront (ingen vent) body: samme som /session/:id/message, returnerer 204 No Content POST/session/:id/commandUtfør en skråstrek-kommando body: { messageID?, agent?, model?, command, arguments }, returnerer { info: Message , parts: Part[] } POST/session/:id/shellKjø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øk etter tekst i filer En rekke matchobjekter med path, lines, line_number, absolute_offset, submatches GET/find/file?query=<q>Finn filer og kataloger etter navn string[] (baner)GET/find/symbol?query=<q>Finn arbeidsområdesymboler Symbol[]GET/file?path=<path>Liste filer og kataloger FileNode[]GET/file/content?path=<p>Les en fil FileContentGET/file/statusFå status for sporede filer File[]
query (obligatorisk) - søkestreng (uklar samsvar)
type (valgfritt) - begrense resultatene til "file" eller "directory"
directory (valgfritt) — overstyr prosjektroten for søket
limit (valgfritt) - maks. resultater (1–200)
dirs (valgfritt) - eldre flagg ("false" returnerer kun filer)
Metode Sti Beskrivelse Svar GET/experimental/tool/idsVis alle verktøy-ID-er ToolIDsGET/experimental/tool?provider=<p>&model=<m>List verktøy med JSON-skjemaer for en modell ToolList
Metode Sti Beskrivelse Svar GET/lspFå LSP serverstatus LSPStatus[]GET/formatterFå formateringsstatus FormatterStatus[]GET/mcpFå MCP serverstatus { [name: string]: MCPStatus }POST/mcpLegg til MCP server dynamisk body: { name, config }, returnerer MCP statusobjekt
Metode Sti Beskrivelse Svar GET/agentListe alle tilgjengelige agenter Agent[]
Metode Sti Beskrivelse Svar POST/logSkriv loggoppføring. Brødtekst: { service, level, message, extra? } boolean
Metode Sti Beskrivelse Svar POST/tui/append-promptLegg til tekst i ledeteksten booleanPOST/tui/open-helpÅpne hjelpedialogen booleanPOST/tui/open-sessionsÅpne øktvelgeren booleanPOST/tui/open-themesÅpne temavelgeren booleanPOST/tui/open-modelsÅpne modellvelgeren booleanPOST/tui/submit-promptSend inn gjeldende ledetekst booleanPOST/tui/clear-promptFjern ledeteksten booleanPOST/tui/execute-commandUtfør en kommando ({ command }) booleanPOST/tui/show-toastVis toast ({ title?, message, variant }) booleanGET/tui/control/nextVent på neste kontrollforespørsel Kontrollforespørselsobjekt POST/tui/control/responseSvar på en kontrollforespørsel ({ body }) boolean
Metode Sti Beskrivelse Svar PUT/auth/:idAngi autentiseringslegitimasjon. Brødtekst må samsvare med leverandørskjema boolean
Metode Sti Beskrivelse Svar GET/eventServer-sendte hendelsesstrøm. Første arrangement er server.connected, deretter bussarrangementer Server-sendte hendelser stream
Metode Sti Beskrivelse Svar GET/docOpenAPI 3.1-spesifikasjon HTML side med OpenAPI-spesifikasjon