opencode serve komutu, opencode istemcisinin kullanabileceği bir OpenAPI endpoint’i açan headless bir HTTP sunucusu çalıştırır.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Bayrak Açıklama Varsayılan --portDinlenecek bağlantı noktası 4096--hostnameDinlenecek ana bilgisayar adı 127.0.0.1--mdnsmDNS keşfini etkinleştir false--mdns-domainmDNS hizmeti için özel alan adı opencode.local--corsİzin verilecek ek tarayıcı kaynakları (origin) []
--cors birden fazla kez geçilebilir:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Sunucuyu HTTP temel kimlik doğrulama (basic auth) ile korumak için OPENCODE_SERVER_PASSWORD ayarlayın. Kullanıcı adı varsayılan olarak opencode değeridir; değiştirmek isterseniz OPENCODE_SERVER_USERNAME ayarlayabilirsiniz. Bu ayar hem opencode serve hem de opencode web için geçerlidir.
OPENCODE_SERVER_PASSWORD = your-password opencode serve
opencode çalıştırdığınızda hem TUI hem de sunucu başlar. TUI, sunucuyla konuşan istemci tarafıdır.
Sunucu bir OpenAPI 3.1 spesifikasyon uç noktası açar. Bu uç nokta SDK üretiminde de kullanılır.
Bu mimari, opencode’un birden fazla istemciyi desteklemesini ve programatik kullanımları mümkün kılmasını sağlar.
opencode serve ile bağımsız bir sunucu başlatabilirsiniz. opencode TUI açıksa, opencode serve yeni bir sunucu başlatır.
TUI başlarken rastgele bir port ve hostname atanır. Bunun yerine --hostname ve --port bayraklarını verebilirsiniz.
/tui uç noktası sunucu üzerinden TUI’yi sürmek için kullanılabilir. Örneğin bir istemi önceden doldurabilir veya çalıştırabilirsiniz. Bu kurulum opencode IDE eklentileri tarafından kullanılır.
Sunucu, şu adreste görülebilen bir OpenAPI 3.1 spesifikasyonu yayınlar:
http://<hostname>:<port>/doc
Örneğin http://localhost:4096/doc. İstemci oluşturmak, istek/yanit tiplerini incelemek veya Swagger gezgininde açmak için bu spec’i kullanın.
opencode sunucusu aşağıdaki API’leri sunar.
Yöntem Yol Açıklama Yanıt GET/global/healthSunucu sağlığını ve sürümünü al { healthy: true, version: string }GET/global/eventKüresel olayları al (SSE akışı) Olay akışı
Yöntem Yol Açıklama Yanıt GET/projectTüm projeleri listele Project[]GET/project/currentMevcut projeyi al Project
Yöntem Yol Açıklama Yanıt GET/pathMevcut yolu al PathGET/vcsMevcut proje için VCS bilgisini al VcsInfo
Yöntem Yol Açıklama Yanıt POST/instance/disposeMevcut örneği (instance) kapat boolean
Yöntem Yol Açıklama Yanıt GET/configYapılandırma bilgisini al ConfigPATCH/configYapılandırmayı güncelle ConfigGET/config/providersSağlayıcıları ve varsayılan modelleri listele { providers: Provider[] , default: { [key: string]: string } }
Yöntem Yol Açıklama Yanıt GET/providerTüm sağlayıcıları listele { all: Provider[] , default: {...}, connected: string[] }GET/provider/authSağlayıcı kimlik doğrulama yöntemlerini al { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeOAuth kullanarak bir sağlayıcıyı yetkilendir ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackBir sağlayıcı için OAuth geri çağrısını işle boolean
Yöntem Yol Açıklama Notlar GET/sessionTüm oturumları listele Session[] döndürürPOST/sessionYeni bir oturum oluştur gövde: { parentID?, title? }, Session döndürür GET/session/statusTüm oturumlar için durumu al { [sessionID: string]: SessionStatus } döndürürGET/session/:idOturum ayrıntılarını al Session döndürürDELETE/session/:idBir oturumu ve tüm verilerini sil boolean döndürürPATCH/session/:idOturum özelliklerini güncelle gövde: { title? }, Session döndürür GET/session/:id/childrenBir oturumun alt oturumlarını al Session[] döndürürGET/session/:id/todoBir oturum için yapılacaklar listesini al Todo[] döndürürPOST/session/:id/initUygulamayı analiz et ve AGENTS.md oluştur gövde: { messageID, providerID, modelID }, boolean döndürür POST/session/:id/forkMevcut bir oturumu bir mesajda çatalla gövde: { messageID? }, Session döndürür POST/session/:id/abortÇalışan bir oturumu iptal et boolean döndürürPOST/session/:id/shareBir oturumu paylaş Session döndürürDELETE/session/:id/shareBir oturumun paylaşımını kaldır Session döndürürGET/session/:id/diffBu oturum için farkı (diff) al sorgu: messageID?, FileDiff[] döndürür POST/session/:id/summarizeOturumu özetle gövde: { providerID, modelID }, boolean döndürür POST/session/:id/revertBir mesajı geri al gövde: { messageID, partID? }, boolean döndürür POST/session/:id/unrevertGeri alınan tüm mesajları geri yükle boolean döndürürPOST/session/:id/permissions/:permissionIDBir izin isteğine yanıt ver gövde: { response, remember? }, boolean döndürür
Yöntem Yol Açıklama Notlar GET/session/:id/messageBir oturumdaki mesajları listele sorgu: limit?, { info: Message , parts: Part[] }[] döndürür POST/session/:id/messageBir mesaj gönder ve yanıt bekle gövde: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, { info: Message , parts: Part[] } döndürür GET/session/:id/message/:messageIDMesaj ayrıntılarını al { info: Message , parts: Part[] } döndürürPOST/session/:id/prompt_asyncEşzamansız bir mesaj gönder (bekleme yok) gövde: /session/:id/message ile aynı, 204 No Content döndürür POST/session/:id/commandBir eğik çizgi (slash) komutu çalıştır gövde: { messageID?, agent?, model?, command, arguments }, { info: Message , parts: Part[] } döndürür POST/session/:id/shellBir kabuk komutu çalıştır gövde: { agent, model?, command }, { info: Message , parts: Part[] } döndürür
Yöntem Yol Açıklama Yanıt GET/commandTüm komutları listele Command[]
Yöntem Yol Açıklama Yanıt GET/find?pattern=<pat>Dosyalarda metin ara path, lines, line_number, absolute_offset, submatches içeren eşleşme nesneleri dizisiGET/find/file?query=<q>Dosya ve dizinleri isme göre bul string[] (yollar)GET/find/symbol?query=<q>Çalışma alanı sembollerini bul Symbol[]GET/file?path=<path>Dosya ve dizinleri listele FileNode[]GET/file/content?path=<p>Bir dosyayı oku FileContentGET/file/statusİzlenen dosyalar için durumu al File[]
query (gerekli) - arama metni (bulanık eşleşme)
type (isteğe bağlı) - sonuçları "file" veya "directory" ile sınırlama
directory (isteğe bağlı) - arama için proje kökünü geçersiz kılma
limit (isteğe bağlı) - en fazla sonuç (1-200)
dirs (isteğe bağlı) - eski bayrak ("false" sadece dosyaları döndürür)
Yöntem Yol Açıklama Yanıt GET/experimental/tool/idsTüm araç kimliklerini listele ToolIDsGET/experimental/tool?provider=<p>&model=<m>Bir model için araçları JSON şemalarıyla listele ToolList
Yöntem Yol Açıklama Yanıt GET/lspLSP sunucu durumunu al LSPStatus[]GET/formatterBiçimlendirici durumunu al FormatterStatus[]GET/mcpMCP sunucu durumunu al { [name: string]: MCPStatus }POST/mcpDinamik olarak MCP sunucusu ekle gövde: { name, config }, MCP durum nesnesi döndürür
Yöntem Yol Açıklama Yanıt GET/agentTüm mevcut agent’ları listele Agent[]
Yöntem Yol Açıklama Yanıt POST/logGünlük girdisi yaz. Gövde: { service, level, message, extra? } boolean
Yöntem Yol Açıklama Yanıt POST/tui/append-promptİsteme metin ekle booleanPOST/tui/open-helpYardım iletişim kutusunu aç booleanPOST/tui/open-sessionsOturum seçiciyi aç booleanPOST/tui/open-themesTema seçiciyi aç booleanPOST/tui/open-modelsModel seçiciyi aç booleanPOST/tui/submit-promptMevcut istemi gönder booleanPOST/tui/clear-promptİstemi temizle booleanPOST/tui/execute-commandBir komut çalıştır ({ command }) booleanPOST/tui/show-toastToast bildirimi göster ({ title?, message, variant }) booleanGET/tui/control/nextBir sonraki kontrol isteğini bekle Kontrol isteği nesnesi POST/tui/control/responseBir kontrol isteğine yanıt ver ({ body }) boolean
Yöntem Yol Açıklama Yanıt PUT/auth/:idKimlik bilgilerini ayarla. Gövde sağlayıcı şemasıyla eşleşmelidir boolean
Yöntem Yol Açıklama Yanıt GET/eventSunucu tarafından gönderilen olay akışı (SSE). İlk olay server.connected, ardından veriyolu olayları Sunucu tarafından gönderilen olay akışı
Yöntem Yol Açıklama Yanıt GET/docOpenAPI 3.1 spesifikasyonu OpenAPI spec içeren HTML sayfası