हिन्दी
दस्तावेज़
सर्वर

Server

HTTP के माध्यम से opencode सर्वर के साथ इंटरैक्ट करें।

opencode serve कमांड एक headless HTTP सर्वर चलाती है जो एक OpenAPI एंडपॉइंट को उजागर करता है जिसका उपयोग एक opencode क्लाइंट कर सकता है।


उपयोग

opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]

विकल्प

फ़्लैगविवरणडिफ़ॉल्ट
--portसुनने के लिए पोर्ट4096
--hostnameसुनने के लिए होस्टनेम127.0.0.1
--mdnsmDNS डिस्कवरी सक्षम करेंfalse
--mdns-domainmDNS सेवा के लिए कस्टम डोमेन नामopencode.local
--corsअनुमति देने के लिए अतिरिक्त ब्राउज़र origin[]

--cors को कई बार पास किया जा सकता है:

opencode serve --cors http://localhost:5173 --cors https://app.example.com

प्रमाणीकरण

सर्वर को HTTP basic auth से सुरक्षित करने के लिए OPENCODE_SERVER_PASSWORD सेट करें। यूज़रनेम opencode पर डिफ़ॉल्ट होता है, या इसे ओवरराइड करने के लिए OPENCODE_SERVER_USERNAME सेट करें। यह opencode serve और opencode web दोनों पर लागू होता है।

OPENCODE_SERVER_PASSWORD=your-password opencode serve

यह कैसे काम करता है

जब आप opencode चलाते हैं तो यह एक TUI और एक सर्वर शुरू करता है। जहाँ TUI वह क्लाइंट है जो सर्वर से बात करता है। सर्वर एक OpenAPI 3.1 spec एंडपॉइंट को उजागर करता है। इस एंडपॉइंट का उपयोग एक SDK उत्पन्न करने के लिए भी किया जाता है।

Tip: opencode के साथ प्रोग्रामेटिक रूप से इंटरैक्ट करने के लिए opencode सर्वर का उपयोग करें।

यह आर्किटेक्चर opencode को कई क्लाइंट को सपोर्ट करने देता है और आपको opencode के साथ प्रोग्रामेटिक रूप से इंटरैक्ट करने देता है।

आप एक स्टैंडअलोन सर्वर शुरू करने के लिए opencode serve चला सकते हैं। यदि आपके पास opencode TUI चल रहा है, तो opencode serve एक नया सर्वर शुरू करेगा।


किसी मौजूदा सर्वर से कनेक्ट करना

जब आप TUI शुरू करते हैं तो यह यादृच्छिक रूप से एक पोर्ट और होस्टनेम असाइन करता है। आप इसके बजाय --hostname और --port flags पास कर सकते हैं। फिर इसका उपयोग इसके सर्वर से कनेक्ट करने के लिए करें।

/tui एंडपॉइंट का उपयोग सर्वर के माध्यम से TUI को संचालित करने के लिए किया जा सकता है। उदाहरण के लिए, आप एक प्रॉम्प्ट को पूर्व-भर सकते हैं या चला सकते हैं। यह सेटअप OpenCode IDE प्लगइन द्वारा उपयोग किया जाता है।


Spec

सर्वर एक OpenAPI 3.1 spec प्रकाशित करता है जिसे यहाँ देखा जा सकता है:

http://<hostname>:<port>/doc

उदाहरण के लिए, http://localhost:4096/doc। क्लाइंट उत्पन्न करने या अनुरोध और प्रतिक्रिया प्रकारों का निरीक्षण करने के लिए spec का उपयोग करें। या इसे एक Swagger explorer में देखें।


APIs

opencode सर्वर निम्नलिखित APIs को उजागर करता है।


Global

MethodPathविवरणResponse
GET/global/healthसर्वर स्वास्थ्य और संस्करण प्राप्त करें{ healthy: true, version: string }
GET/global/eventग्लोबल घटनाएँ प्राप्त करें (SSE stream)Event stream

Project

MethodPathविवरणResponse
GET/projectसभी प्रोजेक्ट सूचीबद्ध करेंProject[] (opens in a new tab)
GET/project/currentवर्तमान प्रोजेक्ट प्राप्त करेंProject (opens in a new tab)

Path & VCS

MethodPathविवरणResponse
GET/pathवर्तमान पथ प्राप्त करेंPath (opens in a new tab)
GET/vcsवर्तमान प्रोजेक्ट के लिए VCS जानकारी प्राप्त करेंVcsInfo (opens in a new tab)

Instance

MethodPathविवरणResponse
POST/instance/disposeवर्तमान इंस्टेंस को dispose करेंboolean

Config

MethodPathविवरणResponse
GET/configकॉन्फ़िग जानकारी प्राप्त करेंConfig (opens in a new tab)
PATCH/configकॉन्फ़िग अपडेट करेंConfig (opens in a new tab)
GET/config/providersप्रदाता और डिफ़ॉल्ट मॉडल सूचीबद्ध करें{ providers: Provider[] (opens in a new tab), default: { [key: string]: string } }

Provider

MethodPathविवरणResponse
GET/providerसभी प्रदाता सूचीबद्ध करें{ all: Provider[] (opens in a new tab), default: {...}, connected: string[] }
GET/provider/authप्रदाता प्रमाणीकरण विधियाँ प्राप्त करें{ [providerID: string]: ProviderAuthMethod[] (opens in a new tab) }
POST/provider/{id}/oauth/authorizeOAuth का उपयोग करके एक प्रदाता को अधिकृत करेंProviderAuthAuthorization (opens in a new tab)
POST/provider/{id}/oauth/callbackकिसी प्रदाता के लिए OAuth callback संभालेंboolean

Sessions

MethodPathविवरणनोट्स
GET/sessionसभी सत्र सूचीबद्ध करेंSession[] (opens in a new tab) लौटाता है
POST/sessionएक नया सत्र बनाएँbody: { parentID?, title? }, Session (opens in a new tab) लौटाता है
GET/session/statusसभी सत्रों के लिए सत्र स्थिति प्राप्त करें{ [sessionID: string]: SessionStatus (opens in a new tab) } लौटाता है
GET/session/:idसत्र विवरण प्राप्त करेंSession (opens in a new tab) लौटाता है
DELETE/session/:idएक सत्र और उसका सारा डेटा हटाएँboolean लौटाता है
PATCH/session/:idसत्र गुण अपडेट करेंbody: { title? }, Session (opens in a new tab) लौटाता है
GET/session/:id/childrenकिसी सत्र के चाइल्ड सत्र प्राप्त करेंSession[] (opens in a new tab) लौटाता है
GET/session/:id/todoकिसी सत्र के लिए todo सूची प्राप्त करेंTodo[] (opens in a new tab) लौटाता है
POST/session/:id/initऐप का विश्लेषण करें और AGENTS.md बनाएँbody: { messageID, providerID, modelID }, boolean लौटाता है
POST/session/:id/forkकिसी संदेश पर एक मौजूदा सत्र को fork करेंbody: { messageID? }, Session (opens in a new tab) लौटाता है
POST/session/:id/abortएक चल रहे सत्र को abort करेंboolean लौटाता है
POST/session/:id/shareएक सत्र साझा करेंSession (opens in a new tab) लौटाता है
DELETE/session/:id/shareएक सत्र को अनशेयर करेंSession (opens in a new tab) लौटाता है
GET/session/:id/diffइस सत्र के लिए diff प्राप्त करेंquery: messageID?, FileDiff[] (opens in a new tab) लौटाता है
POST/session/:id/summarizeसत्र का सारांश बनाएँbody: { providerID, modelID }, boolean लौटाता है
POST/session/:id/revertएक संदेश को revert करेंbody: { messageID, partID? }, boolean लौटाता है
POST/session/:id/unrevertसभी reverted संदेशों को पुनर्स्थापित करेंboolean लौटाता है
POST/session/:id/permissions/:permissionIDकिसी अनुमति अनुरोध का उत्तर देंbody: { response, remember? }, boolean लौटाता है

Messages

MethodPathविवरणनोट्स
GET/session/:id/messageकिसी सत्र में संदेश सूचीबद्ध करेंquery: limit?, { info: Message (opens in a new tab), parts: Part[] (opens in a new tab)}[] लौटाता है
POST/session/:id/messageएक संदेश भेजें और प्रतिक्रिया की प्रतीक्षा करेंbody: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, { info: Message (opens in a new tab), parts: Part[] (opens in a new tab)} लौटाता है
GET/session/:id/message/:messageIDसंदेश विवरण प्राप्त करें{ info: Message (opens in a new tab), parts: Part[] (opens in a new tab)} लौटाता है
POST/session/:id/prompt_asyncएक संदेश अतुल्यकालिक रूप से भेजें (no wait)body: /session/:id/message के समान, 204 No Content लौटाता है
POST/session/:id/commandएक स्लैश कमांड निष्पादित करेंbody: { messageID?, agent?, model?, command, arguments }, { info: Message (opens in a new tab), parts: Part[] (opens in a new tab)} लौटाता है
POST/session/:id/shellएक शेल कमांड चलाएँbody: { agent, model?, command }, { info: Message (opens in a new tab), parts: Part[] (opens in a new tab)} लौटाता है

Commands

MethodPathविवरणResponse
GET/commandसभी कमांड सूचीबद्ध करेंCommand[] (opens in a new tab)

Files

MethodPathविवरणResponse
GET/find?pattern=<pat>फ़ाइलों में टेक्स्ट खोजेंpath, lines, line_number, absolute_offset, submatches वाले match ऑब्जेक्ट की Array
GET/find/file?query=<q>नाम से फ़ाइलें और डायरेक्टरी खोजेंstring[] (पथ)
GET/find/symbol?query=<q>वर्कस्पेस symbols खोजेंSymbol[] (opens in a new tab)
GET/file?path=<path>फ़ाइलें और डायरेक्टरी सूचीबद्ध करेंFileNode[] (opens in a new tab)
GET/file/content?path=<p>एक फ़ाइल पढ़ेंFileContent (opens in a new tab)
GET/file/statusट्रैक की गई फ़ाइलों के लिए स्थिति प्राप्त करेंFile[] (opens in a new tab)

/find/file query पैरामीटर

  • query (आवश्यक) — खोज स्ट्रिंग (fuzzy match)
  • type (वैकल्पिक) — परिणामों को "file" या "directory" तक सीमित करें
  • directory (वैकल्पिक) — खोज के लिए प्रोजेक्ट रूट को ओवरराइड करें
  • limit (वैकल्पिक) — अधिकतम परिणाम (1-200)
  • dirs (वैकल्पिक) — लीगेसी फ़्लैग ("false" केवल फ़ाइलें लौटाता है)

Tools (प्रायोगिक)

MethodPathविवरणResponse
GET/experimental/tool/idsसभी tool ID सूचीबद्ध करेंToolIDs (opens in a new tab)
GET/experimental/tool?provider=<p>&model=<m>किसी मॉडल के लिए JSON schemas वाले टूल सूचीबद्ध करेंToolList (opens in a new tab)

LSP, Formatters & MCP

MethodPathविवरणResponse
GET/lspLSP सर्वर स्थिति प्राप्त करेंLSPStatus[] (opens in a new tab)
GET/formatterफॉर्मेटर स्थिति प्राप्त करेंFormatterStatus[] (opens in a new tab)
GET/mcpMCP सर्वर स्थिति प्राप्त करें{ [name: string]: MCPStatus (opens in a new tab) }
POST/mcpMCP सर्वर को गतिशील रूप से जोड़ेंbody: { name, config }, MCP स्थिति ऑब्जेक्ट लौटाता है

Agents

MethodPathविवरणResponse
GET/agentसभी उपलब्ध एजेंट सूचीबद्ध करेंAgent[] (opens in a new tab)

Logging

MethodPathविवरणResponse
POST/logलॉग प्रविष्टि लिखें। Body: { service, level, message, extra? }boolean

TUI

MethodPathविवरणResponse
POST/tui/append-promptप्रॉम्प्ट में टेक्स्ट जोड़ेंboolean
POST/tui/open-helphelp डायलॉग खोलेंboolean
POST/tui/open-sessionsसत्र सेलेक्टर खोलेंboolean
POST/tui/open-themesथीम सेलेक्टर खोलेंboolean
POST/tui/open-modelsमॉडल सेलेक्टर खोलेंboolean
POST/tui/submit-promptवर्तमान प्रॉम्प्ट सबमिट करेंboolean
POST/tui/clear-promptप्रॉम्प्ट साफ़ करेंboolean
POST/tui/execute-commandएक कमांड निष्पादित करें ({ command })boolean
POST/tui/show-toasttoast दिखाएँ ({ title?, message, variant })boolean
GET/tui/control/nextअगले नियंत्रण अनुरोध की प्रतीक्षा करेंControl request ऑब्जेक्ट
POST/tui/control/responseकिसी नियंत्रण अनुरोध का उत्तर दें ({ body })boolean

Auth

MethodPathविवरणResponse
PUT/auth/:idप्रमाणीकरण क्रेडेंशियल सेट करें। Body प्रदाता schema से मेल खाना चाहिएboolean

Events

MethodPathविवरणResponse
GET/eventServer-sent events stream. पहली घटना server.connected है, फिर bus घटनाएँServer-sent events stream

Docs

MethodPathविवरणResponse
GET/docOpenAPI 3.1 specificationOpenAPI spec वाला HTML पेज