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

सर्वर

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

opencode serve कमांड एक हेडलेस 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अनुमत अतिरिक्त ब्राउज़र ऑरिजिन[]

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

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

प्रमाणीकरण

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

OPENCODE_SERVER_PASSWORD=your-password opencode serve

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

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

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

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

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


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

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

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


स्पेसिफिकेशन

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

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

उदाहरण के लिए, http://localhost:4096/doc। क्लाइंट जनरेट करने या रिक्वेस्ट और रिस्पॉन्स टाइप्स का निरीक्षण करने के लिए स्पेक का उपयोग करें। या इसे Swagger एक्सप्लोरर में देखें।


APIs

opencode सर्वर निम्नलिखित APIs एक्सपोज़ करता है।


ग्लोबल

मेथडपाथविवरणरिस्पॉन्स
GET/global/healthसर्वर हेल्थ और वर्शन प्राप्त करें{ healthy: true, version: string }
GET/global/eventग्लोबल इवेंट्स प्राप्त करें (SSE स्ट्रीम)इवेंट स्ट्रीम

प्रोजेक्ट

मेथडपाथविवरणरिस्पॉन्स
GET/projectसभी प्रोजेक्ट्स की सूचीProject[]
GET/project/currentवर्तमान प्रोजेक्ट प्राप्त करेंProject

पाथ और VCS

मेथडपाथविवरणरिस्पॉन्स
GET/pathवर्तमान पाथ प्राप्त करेंPath
GET/vcsवर्तमान प्रोजेक्ट के लिए VCS जानकारी प्राप्त करेंVcsInfo

इंस्टेंस

मेथडपाथविवरणरिस्पॉन्स
POST/instance/disposeवर्तमान इंस्टेंस को डिस्पोज़ करेंboolean

कॉन्फ़िग

मेथडपाथविवरणरिस्पॉन्स
GET/configकॉन्फ़िग जानकारी प्राप्त करेंConfig
PATCH/configकॉन्फ़िग अपडेट करेंConfig
GET/config/providersप्रोवाइडर्स और डिफ़ॉल्ट मॉडल्स की सूची{ providers: Provider[], default: { [key: string]: string } }

प्रोवाइडर

मेथडपाथविवरणरिस्पॉन्स
GET/providerसभी प्रोवाइडर्स की सूची{ all: Provider[], default: {...}, connected: string[] }
GET/provider/authप्रोवाइडर ऑथेंटिकेशन मेथड्स प्राप्त करें{ [providerID: string]: ProviderAuthMethod[] }
POST/provider/{id}/oauth/authorizeOAuth का उपयोग करके प्रोवाइडर को ऑथराइज़ करेंProviderAuthAuthorization
POST/provider/{id}/oauth/callbackप्रोवाइडर के लिए OAuth कॉलबैक हैंडल करेंboolean

सेशन्स

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

मैसेजेस

मेथडपाथविवरणनोट्स
GET/session/:id/messageसेशन में मैसेजेस की सूचीquery: limit?, { info: Message, parts: Part[] }[] रिटर्न करता है
POST/session/:id/messageमैसेज भेजें और रिस्पॉन्स का इंतज़ार करेंbody: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, { info: Message, parts: Part[] } रिटर्न करता है
GET/session/:id/message/:messageIDमैसेज विवरण प्राप्त करें{ info: Message, parts: Part[] } रिटर्न करता है
POST/session/:id/prompt_asyncमैसेज एसिंक्रोनसली भेजें (इंतज़ार नहीं)body: /session/:id/message जैसा ही, 204 No Content रिटर्न करता है
POST/session/:id/commandस्लैश कमांड एक्ज़ीक्यूट करेंbody: { messageID?, agent?, model?, command, arguments }, { info: Message, parts: Part[] } रिटर्न करता है
POST/session/:id/shellशेल कमांड चलाएंbody: { agent, model?, command }, { info: Message, parts: Part[] } रिटर्न करता है

कमांड्स

मेथडपाथविवरणरिस्पॉन्स
GET/commandसभी कमांड्स की सूचीCommand[]

फाइल्स

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

/find/file क्वेरी पैरामीटर्स

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

टूल्स (प्रयोगात्मक)

मेथडपाथविवरणरिस्पॉन्स
GET/experimental/tool/idsसभी टूल IDs की सूचीToolIDs
GET/experimental/tool?provider=<p>&model=<m>मॉडल के लिए JSON स्कीमा के साथ टूल्स की सूचीToolList

LSP, फॉर्मेटर्स और MCP

मेथडपाथविवरणरिस्पॉन्स
GET/lspLSP सर्वर स्टेटस प्राप्त करेंLSPStatus[]
GET/formatterफॉर्मेटर स्टेटस प्राप्त करेंFormatterStatus[]
GET/mcpMCP सर्वर स्टेटस प्राप्त करें{ [name: string]: MCPStatus }
POST/mcpडायनामिकली MCP सर्वर जोड़ेंbody: { name, config }, MCP स्टेटस ऑब्जेक्ट रिटर्न करता है

एजेंट्स

मेथडपाथविवरणरिस्पॉन्स
GET/agentसभी उपलब्ध एजेंट्स की सूचीAgent[]

लॉगिंग

मेथडपाथविवरणरिस्पॉन्स
POST/logलॉग एंट्री लिखें। Body: { service, level, message, extra? }boolean

TUI

मेथडपाथविवरणरिस्पॉन्स
POST/tui/append-promptप्रॉम्प्ट में टेक्स्ट जोड़ेंboolean
POST/tui/open-helpहेल्प डायलॉग खोलें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-toastटोस्ट दिखाएं ({ title?, message, variant })boolean
GET/tui/control/nextअगले कंट्रोल रिक्वेस्ट का इंतज़ार करेंकंट्रोल रिक्वेस्ट ऑब्जेक्ट
POST/tui/control/responseकंट्रोल रिक्वेस्ट का जवाब दें ({ body })boolean

Auth

मेथडपाथविवरणरिस्पॉन्स
PUT/auth/:idऑथेंटिकेशन क्रेडेंशियल्स सेट करें। Body प्रोवाइडर स्कीमा से मैच होना चाहिएboolean

इवेंट्स

मेथडपाथविवरणरिस्पॉन्स
GET/eventसर्वर-सेंट इवेंट्स स्ट्रीम। पहला इवेंट server.connected है, फिर बस इवेंट्ससर्वर-सेंट इवेंट्स स्ट्रीम

Docs

मेथडपाथविवरणरिस्पॉन्स
GET/docOpenAPI 3.1 स्पेसिफिकेशनOpenAPI स्पेक के साथ HTML पेज