Komenda opencode serve uruchamia bezgłowy serwer HTTP, który udostępnia punkt końcowy OpenAPI, z którego może korzystać klient opencode.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Flaga Opis Domyślne --portPort nasłuchiwania 4096--hostnameNazwa hosta do nasłuchiwania 127.0.0.1--mdnsWłącz wykrywanie mDNS false--mdns-domainNiestandardowa nazwa domeny dla usługi mDNS opencode.local--corsDodatkowe originy przeglądarki do dozwolenia []
--cors można przekazać wiele razy:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Ustaw OPENCODE_SERVER_PASSWORD, aby chronić serwer za pomocą podstawowego uwierzytelniania HTTP. Domyślną nazwą użytkownika jest opencode lub ustaw OPENCODE_SERVER_USERNAME, aby ją zastąpić. Dotyczy to zarówno opencode serve, jak i opencode web.
OPENCODE_SERVER_PASSWORD = your-password opencode serve
Kiedy uruchomisz opencode, uruchomi się TUI i serwer. Gdzie jest TUI
klient komunikujący się z serwerem. Serwer udostępnia specyfikację OpenAPI 3.1
punkt końcowy. Ten punkt końcowy jest również używany do generowania SDK .
Ta architektura umożliwia obsługę wielu klientów przez opencode i programową interakcję z kodem otwartym.
Możesz uruchomić opencode serve, aby uruchomić samodzielny serwer. Jeśli masz
opencode TUI działa, opencode serve uruchomi nowy serwer.
Po uruchomieniu TUI losowo przypisuje port i nazwę hosta. Zamiast tego możesz przekazać --hostname i --port flagi . Następnie użyj tego, aby połączyć się z serwerem.
Punktu końcowego /tui można użyć do sterowania TUI przez serwer. Można na przykład wstępnie wypełnić lub uruchomić monit. Ta konfiguracja jest używana przez wtyczki opencode IDE .
Serwer publikuje specyfikację OpenAPI 3.1, którą można obejrzeć pod adresem:
http://<hostname>:<port>/doc
Na przykład http://localhost:4096/doc. Użyj specyfikacji, aby wygenerować klientów lub sprawdzić typy żądań i odpowiedzi. Możesz też wyświetlić go w eksploratorze Swagger.
Serwer opencode udostępnia następujące interfejsy API.
Method Path Description Response GET/global/healthUzyskaj stan i wersję serwera { healthy: true, version: string }GET/global/eventGet global events (SSE stream) Event stream
Method Path Description Response GET/projectLista wszystkich projektów Project[]GET/project/currentPobierz bieżący projekt Project
Method Path Description Response GET/pathPobierz bieżącą ścieżkę PathGET/vcsUzyskaj informacje VCS dla bieżącego projektu VcsInfo
Method Path Description Response POST/instance/disposeUsuń bieżącą instancję boolean
Method Path Description Response GET/configGet config info ConfigPATCH/configUpdate config ConfigGET/config/providersLista dostawców i modeli domyślnych { providers: Dostawca[] , default: { [key: string]: string } }
Method Path Description Response GET/providerLista wszystkich dostawców { all: Dostawca[] , default: {...}, connected: string[] }GET/provider/authUzyskaj metody uwierzytelniania dostawcy { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeAutoryzuj dostawcę za pomocą protokołu OAuth ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackObsługa wywołania zwrotnego OAuth dla dostawcy boolean
Method Path Description Notes GET/sessionLista wszystkich sesji Zwraca Session[] POST/sessionUtwórz nową sesję treść: { parentID?, title? }, zwraca Session GET/session/statusUzyskaj status sesji dla wszystkich sesji Zwraca { [sessionID: string]: Status sesji } GET/session/:idUzyskaj szczegóły sesji Zwraca Session DELETE/session/:idUsuń sesję i wszystkie jej dane Zwraca boolean PATCH/session/:idAktualizuj właściwości sesji treść: { title? }, zwraca Session GET/session/:id/childrenPobierz sesje podrzędne sesji Zwraca Session[] GET/session/:id/todoPobierz listę rzeczy do zrobienia dla sesji Zwraca Todo[] POST/session/:id/initPrzeanalizuj aplikację i utwórz AGENTS.md treść: { messageID, providerID, modelID }, zwraca boolean POST/session/:id/forkRozwiń istniejącą sesję w wiadomości treść: { messageID? }, zwraca Session POST/session/:id/abortPrzerwij trwającą sesję Zwraca boolean POST/session/:id/shareUdostępnij sesję Zwraca Session DELETE/session/:id/shareAnuluj udostępnianie sesji Zwraca Session GET/session/:id/diffPobierz różnicę dla tej sesji zapytanie: messageID?, zwraca FileDiff[] POST/session/:id/summarizePodsumuj sesję treść: { providerID, modelID }, zwraca boolean POST/session/:id/revertPrzywróć wiadomość treść: { messageID, partID? }, zwraca boolean POST/session/:id/unrevertPrzywróć wszystkie przywrócone wiadomości Zwraca boolean POST/session/:id/permissions/:permissionIDOdpowiedz na prośbę o pozwolenie treść: { response, remember? }, zwraca boolean
Method Path Description Notes GET/session/:id/messageLista wiadomości w sesji zapytanie: limit?, zwraca { info: Wiadomość , parts: Część[] }[] POST/session/:id/messageWyślij wiadomość i poczekaj na odpowiedź treść: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, zwraca { info: Wiadomość , parts: Część[] } GET/session/:id/message/:messageIDUzyskaj szczegóły wiadomości Zwraca { info: Wiadomość , parts: Część[] } POST/session/:id/prompt_asyncWyślij wiadomość asynchronicznie (bez czekania) treść: taka sama jak /session/:id/message, zwraca 204 No Content POST/session/:id/commandWykonaj slash command treść: { messageID?, agent?, model?, command, arguments }, zwraca { info: Wiadomość , parts: Część[] } POST/session/:id/shellUruchom polecenie shell treść: { agent, model?, command }, zwraca { info: Wiadomość , parts: Część[] }
Metoda Ścieżka Opis Odpowiedź GET/commandLista wszystkich poleceń Command[]
Method Path Description Response GET/find?pattern=<pat>Szukaj tekstu w plikach Tablica obiektów dopasowania z path, lines, line_number, absolute_offset, submatches GET/find/file?query=<q>Znajdź pliki i katalogi według nazwy string[] (ścieżki)GET/find/symbol?query=<q>Find workspace symbols Symbol[]GET/file?path=<path>Lista plików i katalogów FileNode[]GET/file/content?path=<p>Read a file FileContentGET/file/statusUzyskaj status śledzonych plików File[]
query (required) — search string (fuzzy match)
type (optional) — limit results to "file" or "directory"
directory (opcjonalnie) — zastąp katalog główny projektu dla wyszukiwania
limit (optional) — max results (1–200)
dirs (optional) — legacy flag ("false" returns only files)
Method Path Description Response GET/experimental/tool/idsLista wszystkich identyfikatorów narzędzi ToolIDsGET/experimental/tool?provider=<p>&model=<m>Lista narzędzi ze schematami JSON dla modelu ToolList
Method Path Description Response GET/lspUzyskaj status serwera LSP LSPStatus[]GET/formatterGet formatter status FormatterStatus[]GET/mcpUzyskaj status serwera MCP { [name: string]: MCPStatus }POST/mcpDodaj dynamicznie serwer MCP treść: { name, config }, zwraca obiekt stanu MCP
Method Path Description Response GET/agentLista wszystkich dostępnych agentów Agent[]
Method Path Description Response POST/logWrite log entry. Body: { service, level, message, extra? } boolean
Method Path Description Response POST/tui/append-promptDołącz tekst do promptu booleanPOST/tui/open-helpOtwórz okno pomocy booleanPOST/tui/open-sessionsOtwórz selektor sesji booleanPOST/tui/open-themesOtwórz selektor motywów booleanPOST/tui/open-modelsOtwórz selektor modelu booleanPOST/tui/submit-promptPrześlij bieżący prompt booleanPOST/tui/clear-promptWyczyść prompt booleanPOST/tui/execute-commandWykonaj polecenie ({ command }) booleanPOST/tui/show-toastPokaż toast ({ title?, message, variant }) booleanGET/tui/control/nextPoczekaj na następne żądanie kontroli Obiekt żądania kontroli POST/tui/control/responseRespond to a control request ({ body }) boolean
Method Path Description Response PUT/auth/:idUstaw dane uwierzytelniające. Treść musi pasować do schematu dostawcy boolean
Method Path Description Response GET/eventStrumień zdarzeń wysyłanych przez serwer. Pierwsze wydarzenie to server.connected, następnie wydarzenia autobusowe Strumień zdarzeń wysłanych przez serwer
Method Path Description Response GET/docSpecyfikacja OpenAPI 3.1 Strona HTML ze specyfikacją OpenAPI