Kommandoen opencode serve kjører en hodeløs HTTP-server som avslører et OpenAPI-endepunkt som en opencode-klient kan bruge.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Flagg Beskrivelse Standard --portPort at lytte på 4096--hostnameVertsnavn at lytte på 127.0.0.1--mdnsAktiver mDNS-oppdagelse false--mdns-domainEgendefinert domenenavn for mDNS-tjeneste opencode.local--corsYtterligere nettleseropprinnelse for at tillate []
--cors kan passeres flere ganger:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Sett OPENCODE_SERVER_PASSWORD for at beskytte serveren med HTTP grunntilføjende autentisering. Brugernavnet er standard til opencode, eller sett OPENCODE_SERVER_USERNAME for at 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 bruges også til at 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 at 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 . Brug deretter denne til at koble til serveren.
/tui endepunktet kan bruges til at kjøre TUI gjennom serveren. Du kan for eksempel forhåndsutfylle eller kjøre en forespørsel. Dette oppsettet bruges 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. Brug spesifikasjonen til at 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 Prosjekt[]GET/project/currentFå det nåværende prosjektet Prosjekt
Metode Sti Beskrivelse Svar GET/pathFå nuværende bane PathGET/vcsFå VCS info for nuværende prosjekt VcsInfo
Metode Sti Beskrivelse Svar POST/instance/disposeKast nuværende forekomst boolean
Metode Sti Beskrivelse Svar GET/configFå konfigurasjonsinformasjon ConfigPATCH/configOpdater 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 at bruge OAuth ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackHåndtere OAuth-callback for en leverandør 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/:idSlett en session og alle dens data Returnerer boolean PATCH/session/:idOpdater sessionegenskaper body: { title? }, returnerer Session GET/session/:id/childrenFå en sessions barnesessioner Returnerer Session[] GET/session/:id/todoFå to-doslisten for en session Returnerer Todo[] POST/session/:id/initAnalyser appen og lag AGENTS.md body: { messageID, providerID, modelID }, returnerer boolean POST/session/:id/forkFork en eksisterende session ved en melding body: { messageID? }, returnerer Session POST/session/:id/abortAvbryt en løpesession Returnerer boolean POST/session/:id/shareDel en session Returnerer Session DELETE/session/:id/shareSlutt at dele en session Returnerer Session GET/session/:id/diffFå diff for denne sessionen spørring: messageID?, returnerer FileDiff[] POST/session/:id/summarizeOppsummer sessionen body: { providerID, modelID }, returnerer boolean POST/session/:id/revertTilbakestill en melding body: { messageID, partID? }, returnerer boolean POST/session/:id/unrevertGjenopret alle nulstillete meldinger Returnerer boolean POST/session/:id/permissions/:permissionIDSvar på en tillatelsesforespørsel body: { response, remember? }, returnerer boolean
Metode Sti Beskrivelse Noter GET/session/:id/messageListe meldinger i en session 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 Kommando[]
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 FilNode[]GET/file/content?path=<p>Les en fil FilinnholdGET/file/statusFå status for sporede filer Fil[]
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 tilgængelige 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 sessionvelgeren booleanPOST/tui/open-themesÅpne temavelgeren booleanPOST/tui/open-modelsÅpne modellvelgeren booleanPOST/tui/submit-promptSend inn nuværende 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