TUI
OpenCode टर्मिनल यूज़र इंटरफ़ेस का उपयोग करना।
OpenCode आपके प्रोजेक्ट्स पर LLM के साथ काम करने के लिए एक इंटरैक्टिव टर्मिनल इंटरफ़ेस यानी TUI प्रदान करता है।
OpenCode चलाने पर वर्तमान डायरेक्टरी के लिए TUI शुरू हो जाता है।
opencodeया आप इसे किसी विशिष्ट वर्किंग डायरेक्टरी के लिए शुरू कर सकते हैं।
opencode /path/to/projectजब आप TUI में आ जाएँ, तो आप इसे किसी संदेश के साथ प्रॉम्प्ट कर सकते हैं।
Give me a quick summary of the codebase.File references
आप अपने संदेशों में @ का उपयोग करके फ़ाइलों का रेफ़रेंस दे सकते हैं। यह वर्तमान वर्किंग डायरेक्टरी में एक fuzzy फ़ाइल खोज करता है।
Tip: आप अपने संदेशों में फ़ाइलों का रेफ़रेंस देने के लिए भी
@का उपयोग कर सकते हैं।
How is auth handled in @packages/functions/src/api/index.ts?फ़ाइल की सामग्री अपने आप बातचीत में जोड़ दी जाती है।
कॉन्फ़िगर किए गए रेफ़रेंस भी @ ऑटोकम्पलीट में दिखाई देते हैं। रेफ़रेंस रूट को संदर्भ (context) के रूप में जोड़ने के लिए @alias टाइप करें, या उस रेफ़रेंस के अंदर की फ़ाइलों को ऑटोकम्पलीट करने के लिए @alias/ टाइप करें।
Compare our setup with @docs/README.mdBash commands
शेल कमांड चलाने के लिए संदेश को ! से शुरू करें।
!ls -laकमांड का आउटपुट एक tool result के रूप में बातचीत में जोड़ दिया जाता है।
Commands
OpenCode TUI का उपयोग करते समय, आप क्रियाओं को जल्दी से निष्पादित करने के लिए / के बाद किसी कमांड का नाम टाइप कर सकते हैं। उदाहरण के लिए:
/helpअधिकांश कमांड में डिफ़ॉल्ट लीडर की के रूप में ctrl+x का उपयोग करके कीबोर्ड शॉर्टकट भी होते हैं। और जानें।
यहाँ सभी उपलब्ध स्लैश कमांड दिए गए हैं:
connect
OpenCode में एक प्रोवाइडर जोड़ें। यह आपको उपलब्ध प्रोवाइडरों में से चुनने और उनकी API keys जोड़ने की अनुमति देता है।
/connectcompact
वर्तमान सत्र को compact करें। Alias: /summarize
/compactKeybind: ctrl+x c
details
टूल निष्पादन विवरण को टॉगल करें।
/detailseditor
संदेश लिखने के लिए बाहरी एडिटर खोलें। यह आपके EDITOR एन्वायरनमेंट वैरिएबल में सेट किए गए एडिटर का उपयोग करता है। और जानें।
/editorKeybind: ctrl+x e
exit
OpenCode से बाहर निकलें। Aliases: /quit, /q
/exitKeybind: ctrl+x q
export
वर्तमान बातचीत को Markdown में निर्यात करें और अपने डिफ़ॉल्ट एडिटर में खोलें। यह आपके EDITOR एन्वायरनमेंट वैरिएबल में सेट किए गए एडिटर का उपयोग करता है। और जानें।
/exportKeybind: ctrl+x x
help
हेल्प डायलॉग दिखाएँ।
/helpinit
AGENTS.md बनाने या अपडेट करने के लिए गाइडेड सेटअप। और जानें।
/initmodels
उपलब्ध मॉडल सूचीबद्ध करें।
/modelsKeybind: ctrl+x m
new
एक नया सत्र शुरू करें। Alias: /clear
/newKeybind: ctrl+x n
redo
पहले undo किए गए किसी संदेश को redo करें। केवल /undo का उपयोग करने के बाद ही उपलब्ध।
Tip: किसी भी फ़ाइल परिवर्तन को भी पुनर्स्थापित कर दिया जाएगा।
आंतरिक रूप से, यह फ़ाइल परिवर्तनों को प्रबंधित करने के लिए Git का उपयोग करता है। इसलिए आपके प्रोजेक्ट का एक Git रिपॉज़िटरी होना आवश्यक है।
/redoKeybind: ctrl+x r
sessions
सत्रों को सूचीबद्ध करें और उनके बीच स्विच करें। Aliases: /resume, /continue
/sessionsKeybind: ctrl+x l
share
वर्तमान सत्र साझा करें। और जानें।
/sharethemes
उपलब्ध थीम सूचीबद्ध करें।
/themesKeybind: ctrl+x t
thinking
बातचीत में thinking/reasoning ब्लॉक की दृश्यता को टॉगल करें। सक्षम होने पर, आप उन मॉडलों के लिए मॉडल की reasoning प्रक्रिया देख सकते हैं जो extended thinking का समर्थन करते हैं।
Note: यह कमांड केवल यह नियंत्रित करता है कि thinking ब्लॉक प्रदर्शित हों या नहीं — यह मॉडल की reasoning क्षमताओं को सक्षम या अक्षम नहीं करता है। वास्तविक reasoning क्षमताओं को टॉगल करने के लिए, मॉडल वैरिएंट्स के बीच चक्रित करने हेतु
ctrl+tका उपयोग करें।
/thinkingundo
बातचीत में अंतिम संदेश को undo करें। यह सबसे हाल के उपयोगकर्ता संदेश, उसके बाद की सभी प्रतिक्रियाओं और किसी भी फ़ाइल परिवर्तन को हटा देता है।
Tip: किए गए किसी भी फ़ाइल परिवर्तन को भी वापस लौटा दिया जाएगा।
आंतरिक रूप से, यह फ़ाइल परिवर्तनों को प्रबंधित करने के लिए Git का उपयोग करता है। इसलिए आपके प्रोजेक्ट का एक Git रिपॉज़िटरी होना आवश्यक है।
/undoKeybind: ctrl+x u
unshare
वर्तमान सत्र को unshare करें। और जानें।
/unshareEditor setup
/editor और /export दोनों कमांड आपके EDITOR एन्वायरनमेंट वैरिएबल में निर्दिष्ट एडिटर का उपयोग करते हैं।
Linux/macOS
# Example for nano or vim
export EDITOR=nano
export EDITOR=vim
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
export EDITOR="code --wait"इसे स्थायी बनाने के लिए, इसे अपने शेल प्रोफ़ाइल में जोड़ें;
~/.bashrc, ~/.zshrc, आदि।
Windows (CMD)
set EDITOR=notepad
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
set EDITOR=code --waitइसे स्थायी बनाने के लिए, System Properties > Environment Variables का उपयोग करें।
Windows (PowerShell)
$env:EDITOR = "notepad"
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
$env:EDITOR = "code --wait"इसे स्थायी बनाने के लिए, इसे अपने PowerShell प्रोफ़ाइल में जोड़ें।
लोकप्रिय एडिटर विकल्पों में शामिल हैं:
code- Visual Studio Codecursor- Cursorwindsurf- Windsurfnvim- Neovim एडिटरvim- Vim एडिटरnano- Nano एडिटरnotepad- Windows Notepadsubl- Sublime Text
Note: VS Code जैसे कुछ एडिटर को
--waitफ़्लैग के साथ शुरू करना आवश्यक है।
कुछ एडिटर को ब्लॉकिंग मोड में चलाने के लिए कमांड-लाइन आर्गुमेंट की आवश्यकता होती है। --wait फ़्लैग एडिटर प्रोसेस को बंद होने तक ब्लॉक करता है।
Configure
आप tui.json (या tui.jsonc) के माध्यम से TUI के व्यवहार को कस्टमाइज़ कर सकते हैं।
{
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"leader_timeout": 2000,
"keybinds": {
"leader": "ctrl+x",
"command_list": "ctrl+p"
},
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": false
},
"diff_style": "auto",
"mouse": true,
"attention": {
"enabled": true,
"notifications": true,
"sound": true,
"volume": 0.4,
"sound_pack": "opencode.default",
"sounds": {
"error": "./sounds/error.mp3"
}
}
}यह opencode.json से अलग है, जो सर्वर/रनटाइम व्यवहार को कॉन्फ़िगर करता है।
keybinds को built-in डिफ़ॉल्ट के साथ मर्ज किया जाता है, इसलिए आपको केवल वही शॉर्टकट कॉन्फ़िगर करने की आवश्यकता है जिन्हें आप बदलना चाहते हैं।
Options
theme- आपकी UI थीम सेट करता है। और जानें।keybinds- कीबोर्ड शॉर्टकट को कस्टमाइज़ करता है। और जानें।leader_timeout- नियंत्रित करता है कि लीडर की के बाद OpenCode कितनी देर प्रतीक्षा करता है। डिफ़ॉल्ट2000है।scroll_acceleration.enabled- सहज, प्राकृतिक स्क्रॉलिंग के लिए macOS-शैली स्क्रॉल एक्सेलरेशन सक्षम करें। सक्षम होने पर, तेज़ स्क्रॉलिंग जेस्चर के साथ स्क्रॉल गति बढ़ती है और धीमी गतियों के लिए सटीक बनी रहती है। यह सेटिंगscroll_speedपर प्राथमिकता रखती है और सक्षम होने पर इसे ओवरराइड करती है।scroll_speed- नियंत्रित करता है कि स्क्रॉल कमांड का उपयोग करते समय TUI कितनी तेज़ी से स्क्रॉल करता है (न्यूनतम:0.001, दशमलव मानों का समर्थन करता है)। डिफ़ॉल्ट3है। Note: यदिscroll_acceleration.enabledकोtrueपर सेट किया गया है तो इसे अनदेखा किया जाता है।diff_style- diff रेंडरिंग को नियंत्रित करता है।"auto"टर्मिनल की चौड़ाई के अनुसार अनुकूलित होता है,"stacked"हमेशा एकल-कॉलम लेआउट दिखाता है।mouse- TUI में माउस कैप्चर को सक्षम या अक्षम करें (डिफ़ॉल्ट:true)। अक्षम होने पर, टर्मिनल का नेटिव माउस सिलेक्शन/स्क्रॉलिंग व्यवहार संरक्षित रहता है।attention- TUI डेस्कटॉप नोटिफ़िकेशन और साउंड कॉन्फ़िगर करता है। डिफ़ॉल्ट रूप से अक्षम।
कस्टम TUI कॉन्फ़िग पथ लोड करने के लिए OPENCODE_TUI_CONFIG का उपयोग करें।
Attention
TUI प्रश्नों, अनुमतियों, सत्र त्रुटियों और पूर्ण हुए सत्रों के लिए ध्यान (attention) का अनुरोध कर सकता है। इसे attention.enabled के साथ सक्षम करें; ट्रिगर होने पर built-in इवेंट साउंड बजाते हैं, और गैर-subagent इवेंट केवल तब डेस्कटॉप नोटिफ़िकेशन का अनुरोध करते हैं जब टर्मिनल blurred हो।
enabled- सभी attention नोटिफ़िकेशन और साउंड सक्षम करें। डिफ़ॉल्टfalseहै।notifications- attention सक्षम होने पर टर्मिनल-मध्यस्थ डेस्कटॉप नोटिफ़िकेशन की अनुमति दें। डिफ़ॉल्टtrueहै।sound- attention सक्षम होने पर attention साउंड की अनुमति दें। डिफ़ॉल्टtrueहै।volume-0से1तक डिफ़ॉल्ट साउंड वॉल्यूम। डिफ़ॉल्ट0.4है।sound_pack- उपयोग करने के लिए साउंड पैक ID। डिफ़ॉल्टopencode.defaultहै।sounds-default,question,permission,error,done, याsubagent_doneके लिए साउंड फ़ाइलें ओवरराइड करें। पथ निरपेक्ष,file://URL, याtui.jsonके सापेक्ष हो सकते हैं।
Customization
आप कमांड पैलेट (ctrl+p) का उपयोग करके TUI व्यू के विभिन्न पहलुओं को कस्टमाइज़ कर सकते हैं। ये सेटिंग्स रीस्टार्ट के बाद भी बनी रहती हैं।
Username display
चैट संदेशों में आपका उपयोगकर्ता नाम दिखाई दे या नहीं, इसे टॉगल करें। इस तक पहुँचें:
- कमांड पैलेट: "username" या "hide username" खोजें
- सेटिंग अपने आप बनी रहती है और TUI सत्रों के बीच याद रखी जाएगी