Server
HTTP के माध्यम से opencode सर्वर के साथ इंटरैक्ट करें।
opencode serve कमांड एक headless HTTP सर्वर चलाती है जो एक OpenAPI एंडपॉइंट को उजागर करता है जिसका उपयोग एक opencode क्लाइंट कर सकता है।
उपयोग
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]विकल्प
| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
--port | सुनने के लिए पोर्ट | 4096 |
--hostname | सुनने के लिए होस्टनेम | 127.0.0.1 |
--mdns | mDNS डिस्कवरी सक्षम करें | false |
--mdns-domain | mDNS सेवा के लिए कस्टम डोमेन नाम | 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
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /global/health | सर्वर स्वास्थ्य और संस्करण प्राप्त करें | { healthy: true, version: string } |
GET | /global/event | ग्लोबल घटनाएँ प्राप्त करें (SSE stream) | Event stream |
Project
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /project | सभी प्रोजेक्ट सूचीबद्ध करें | Project[] (opens in a new tab) |
GET | /project/current | वर्तमान प्रोजेक्ट प्राप्त करें | Project (opens in a new tab) |
Path & VCS
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /path | वर्तमान पथ प्राप्त करें | Path (opens in a new tab) |
GET | /vcs | वर्तमान प्रोजेक्ट के लिए VCS जानकारी प्राप्त करें | VcsInfo (opens in a new tab) |
Instance
| Method | Path | विवरण | Response |
|---|---|---|---|
POST | /instance/dispose | वर्तमान इंस्टेंस को dispose करें | boolean |
Config
| Method | Path | विवरण | 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
| Method | Path | विवरण | 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/authorize | OAuth का उपयोग करके एक प्रदाता को अधिकृत करें | ProviderAuthAuthorization (opens in a new tab) |
POST | /provider/{id}/oauth/callback | किसी प्रदाता के लिए OAuth callback संभालें | boolean |
Sessions
| Method | Path | विवरण | नोट्स |
|---|---|---|---|
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
| Method | Path | विवरण | नोट्स |
|---|---|---|---|
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
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /command | सभी कमांड सूचीबद्ध करें | Command[] (opens in a new tab) |
Files
| Method | Path | विवरण | 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 (प्रायोगिक)
| Method | Path | विवरण | 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
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /lsp | LSP सर्वर स्थिति प्राप्त करें | LSPStatus[] (opens in a new tab) |
GET | /formatter | फॉर्मेटर स्थिति प्राप्त करें | FormatterStatus[] (opens in a new tab) |
GET | /mcp | MCP सर्वर स्थिति प्राप्त करें | { [name: string]: MCPStatus (opens in a new tab) } |
POST | /mcp | MCP सर्वर को गतिशील रूप से जोड़ें | body: { name, config }, MCP स्थिति ऑब्जेक्ट लौटाता है |
Agents
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /agent | सभी उपलब्ध एजेंट सूचीबद्ध करें | Agent[] (opens in a new tab) |
Logging
| Method | Path | विवरण | Response |
|---|---|---|---|
POST | /log | लॉग प्रविष्टि लिखें। Body: { service, level, message, extra? } | boolean |
TUI
| Method | Path | विवरण | Response |
|---|---|---|---|
POST | /tui/append-prompt | प्रॉम्प्ट में टेक्स्ट जोड़ें | boolean |
POST | /tui/open-help | 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 | toast दिखाएँ ({ title?, message, variant }) | boolean |
GET | /tui/control/next | अगले नियंत्रण अनुरोध की प्रतीक्षा करें | Control request ऑब्जेक्ट |
POST | /tui/control/response | किसी नियंत्रण अनुरोध का उत्तर दें ({ body }) | boolean |
Auth
| Method | Path | विवरण | Response |
|---|---|---|---|
PUT | /auth/:id | प्रमाणीकरण क्रेडेंशियल सेट करें। Body प्रदाता schema से मेल खाना चाहिए | boolean |
Events
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /event | Server-sent events stream. पहली घटना server.connected है, फिर bus घटनाएँ | Server-sent events stream |
Docs
| Method | Path | विवरण | Response |
|---|---|---|---|
GET | /doc | OpenAPI 3.1 specification | OpenAPI spec वाला HTML पेज |