Komanda opencode serve pokrece headless HTTP server koji izlaže OpenAPI endpoint koji opencode klijent moze koristiti.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Zastava Opis Default --portPort na kojem slusa 4096--hostnameHostname na kojem slusa 127.0.0.1--mdnsUkljuci mDNS otkrivanje false--mdns-domainPrilagodeni domen za mDNS servis opencode.local--corsDodatni browser origin-i koje dozv. []
--cors mozete navesti vise puta:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Postavite OPENCODE_SERVER_PASSWORD da zastitite server HTTP basic auth mehanizmom. Korisnicko ime je po defaultu opencode, ili postavite OPENCODE_SERVER_USERNAME za nadjacavanje. Ovo vazi i za opencode serve i za opencode web.
OPENCODE_SERVER_PASSWORD = your-password opencode serve
Kada pokrenete opencode, pokrecu se TUI i server. TUI je klijent koji komunicira sa serverom. Server izlaže OpenAPI 3.1 spec endpoint koji se koristi i za generisanje SDK-a .
Ova arhitektura omogucava opencode podrsku za vise klijenata i programsku interakciju.
Mozete pokrenuti opencode serve da startate standalone server. Ako je opencode TUI vec pokrenut, opencode serve ce pokrenuti novi server.
Kada pokrenete TUI, port i hostname se nasumicno dodijele. Umjesto toga, mozete zadati --hostname i --port zastave , pa se povezati na taj server.
Endpoint /tui mozete koristiti za upravljanje TUI-jem kroz server. Na primjer, mozete unaprijed popuniti ili pokrenuti prompt. Ovaj setup koriste OpenCode IDE pluginovi.
Server objavljuje OpenAPI 3.1 specifikaciju koju mozete vidjeti na:
http://<hostname>:<port>/doc
Na primjer, http://localhost:4096/doc. Koristite specifikaciju da generisete klijente ili pregledate tipove zahtjeva i odgovora. Mozete je otvoriti i u Swagger exploreru.
opencode server izlaže sljedece API-je.
Metoda Putanja Opis Odgovor GET/global/healthDohvati zdravlje i verziju servera { healthy: true, version: string }GET/global/eventDohvati globalne događaje (SSE tok) Event stream
Metoda Putanja Opis Odgovor GET/projectIzlistaj sve projekte Project[]GET/project/currentDohvati trenutni projekt Project
Metoda Putanja Opis Odgovor GET/pathDohvati trenutnu putanju PathGET/vcsDohvati VCS informacije za trenutni projekt VcsInfo
Metoda Putanja Opis Odgovor POST/instance/disposeUgasi trenutnu instancu boolean
Metoda Putanja Opis Odgovor GET/configDohvati informacije o konfiguraciji ConfigPATCH/configAžuriraj konfiguraciju ConfigGET/config/providersIzlistaj provajdere i zadane modele { providers: Provider[] , default: { [key: string]: string } }
Metoda Putanja Opis Odgovor GET/providerIzlistaj sve provajdere { all: Provider[] , default: {...}, connected: string[] }GET/provider/authDohvati metode autentifikacije provajdera { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeAutoriziraj provajdera koristeći OAuth ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackObradi OAuth povratni poziv za provajdera boolean
Metoda Putanja Opis Napomene GET/sessionIzlistaj sve sesije Returns Session[] POST/sessionKreiraj novu sesiju body: { parentID?, title? }, returns Session GET/session/statusDohvati status sesije za sve sesije Returns { [sessionID: string]: SessionStatus } GET/session/:idDohvati detalje sesije Returns Session DELETE/session/:idObriši sesiju i sve njene podatke Returns boolean PATCH/session/:idAžuriraj svojstva sesije body: { title? }, returns Session GET/session/:id/childrenDohvati pod-sesije sesije Returns Session[] GET/session/:id/todoDohvati listu zadataka za sesiju Returns Todo[] POST/session/:id/initAnaliziraj aplikaciju i kreiraj AGENTS.md body: { messageID, providerID, modelID }, returns boolean POST/session/:id/forkGranaj postojeću sesiju na poruci body: { messageID? }, returns Session POST/session/:id/abortPrekini sesiju u toku Returns boolean POST/session/:id/sharePodijeli sesiju Returns Session DELETE/session/:id/sharePrestani dijeliti sesiju Returns Session GET/session/:id/diffDohvati razlike za ovu sesiju query: messageID?, returns FileDiff[] POST/session/:id/summarizeRezimiraj sesiju body: { providerID, modelID }, returns boolean POST/session/:id/revertVrati poruku body: { messageID, partID? }, returns boolean POST/session/:id/unrevertVrati sve vraćene poruke Returns boolean POST/session/:id/permissions/:permissionIDOdgovori na zahtjev za dozvolu body: { response, remember? }, returns boolean
Metoda Putanja Opis Napomene GET/session/:id/messageIzlistaj poruke u sesiji query: limit?, returns { info: Message , parts: Part[] }[] POST/session/:id/messagePošalji poruku i čekaj odgovor body: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, returns { info: Message , parts: Part[] } GET/session/:id/message/:messageIDDohvati detalje poruke Returns { info: Message , parts: Part[] } POST/session/:id/prompt_asyncPošalji poruku asinkrono (bez čekanja) body: same as /session/:id/message, returns 204 No Content POST/session/:id/commandIzvrši slash naredbu body: { messageID?, agent?, model?, command, arguments }, returns { info: Message , parts: Part[] } POST/session/:id/shellPokreni shell naredbu body: { agent, model?, command }, returns { info: Message , parts: Part[] }
Metoda Putanja Opis Odgovor GET/commandIzlistaj sve naredbe Command[]
Metoda Putanja Opis Odgovor GET/find?pattern=<pat>Traži tekst u datotekama Array of match objects with path, lines, line_number, absolute_offset, submatches GET/find/file?query=<q>Pronađi datoteke i direktorije po imenu string[] (paths)GET/find/symbol?query=<q>Pronađi simbole radnog prostora Symbol[]GET/file?path=<path>Izlistaj datoteke i direktorije FileNode[]GET/file/content?path=<p>Pročitaj datoteku FileContentGET/file/statusDohvati status za praćene datoteke File[]
query (obavezno) — niz za pretragu (fuzzy podudaranje)
type (opcionalno) — ograniči rezultate na "file" ili "directory"
directory (opcionalno) — nadjačaj korijen projekta za pretragu
limit (opcionalno) — maksimalni rezultati (1–200)
dirs (opcionalno) — zastarjela zastavica ("false" vraća samo datoteke)
Metoda Putanja Opis Odgovor GET/experimental/tool/idsIzlistaj sve ID-ove alata ToolIDsGET/experimental/tool?provider=<p>&model=<m>Izlistaj alate sa JSON šemama za model ToolList
Metoda Putanja Opis Odgovor GET/lspDohvati status LSP servera LSPStatus[]GET/formatterDohvati status formatera FormatterStatus[]GET/mcpDohvati status MCP servera { [name: string]: MCPStatus }POST/mcpDodaj MCP server dinamički body: { name, config }, returns MCP status object
Metoda Putanja Opis Odgovor GET/agentIzlistaj sve dostupne agente Agent[]
Metoda Putanja Opis Odgovor POST/logUpiši zapis dnevnika. Tijelo: { service, level, message, extra? } boolean
Metoda Putanja Opis Odgovor POST/tui/append-promptDodaj tekst na prompt booleanPOST/tui/open-helpOtvori dijalog za pomoć booleanPOST/tui/open-sessionsOtvori selektor sesija booleanPOST/tui/open-themesOtvori selektor tema booleanPOST/tui/open-modelsOtvori selektor modela booleanPOST/tui/submit-promptPošalji trenutni prompt booleanPOST/tui/clear-promptOčisti prompt booleanPOST/tui/execute-commandIzvrši naredbu ({ command }) booleanPOST/tui/show-toastPrikaži toast obavijest ({ title?, message, variant }) booleanGET/tui/control/nextČekaj sljedeći kontrolni zahtjev Control request object POST/tui/control/responseOdgovori na kontrolni zahtjev ({ body }) boolean
Metoda Putanja Opis Odgovor PUT/auth/:idPostavi autentifikacijske vjerodajnice. Tijelo mora odgovarati shemi provajdera boolean
Metoda Putanja Opis Odgovor GET/eventTok događaja koje šalje server. Prvi događaj je server.connected, zatim bus događaji Server-sent events stream
Metoda Putanja Opis Odgovor GET/docOpenAPI 3.1 specifikacija HTML stranica sa OpenAPI specifikacijom