टूल्स
LLM द्वारा उपयोग किए जा सकने वाले टूल्स प्रबंधित करें।
टूल्स LLM को आपके कोडबेस में कार्य करने की अनुमति देते हैं। OpenCode बिल्ट-इन टूल्स के एक सेट के साथ आता है, लेकिन आप इसे कस्टम टूल्स या MCP सर्वर से विस्तारित कर सकते हैं।
डिफ़ॉल्ट रूप से, सभी टूल्स सक्षम हैं और चलाने के लिए अनुमति की आवश्यकता नहीं है। आप अनुमतियों के माध्यम से टूल व्यवहार को नियंत्रित कर सकते हैं।
कॉन्फ़िगर करें
टूल व्यवहार को नियंत्रित करने के लिए permission फ़ील्ड का उपयोग करें। आप प्रत्येक टूल को अनुमति दे सकते हैं, अस्वीकार कर सकते हैं, या स्वीकृति की आवश्यकता रख सकते हैं।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}आप एक साथ कई टूल्स को नियंत्रित करने के लिए वाइल्डकार्ड का भी उपयोग कर सकते हैं। उदाहरण के लिए, किसी MCP सर्वर के सभी टूल्स के लिए स्वीकृति की आवश्यकता रखने के लिए:
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"mymcp_*": "ask"
}
}अनुमतियाँ कॉन्फ़िगर करने के बारे में अधिक जानें।
बिल्ट-इन
यहाँ OpenCode में उपलब्ध सभी बिल्ट-इन टूल्स हैं।
bash
अपने प्रोजेक्ट एनवायरनमेंट में शेल कमांड निष्पादित करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"bash": "allow"
}
}यह टूल LLM को npm install, git status, या कोई अन्य शेल कमांड जैसे टर्मिनल कमांड चलाने की अनुमति देता है।
edit
सटीक स्ट्रिंग प्रतिस्थापन का उपयोग करके मौजूदा फ़ाइलों को संशोधित करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}यह टूल सटीक टेक्स्ट मैच को बदलकर फ़ाइलों में सटीक संपादन करता है। यह LLM द्वारा कोड संशोधित करने का प्राथमिक तरीका है।
write
नई फ़ाइलें बनाएँ या मौजूदा फ़ाइलों को ओवरराइट करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}LLM को नई फ़ाइलें बनाने की अनुमति देने के लिए इसका उपयोग करें। यदि फ़ाइलें पहले से मौजूद हैं तो यह उन्हें ओवरराइट कर देगा।
नोट:
writeटूलeditअनुमति द्वारा नियंत्रित होता है, जो सभी फ़ाइल संशोधनों (edit,write,patch,multiedit) को कवर करता है।
read
अपने कोडबेस से फ़ाइल सामग्री पढ़ें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"read": "allow"
}
}यह टूल फ़ाइलें पढ़ता है और उनकी सामग्री लौटाता है। यह बड़ी फ़ाइलों के लिए विशिष्ट लाइन रेंज पढ़ने का समर्थन करता है।
grep
रेगुलर एक्सप्रेशन का उपयोग करके फ़ाइल सामग्री खोजें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"grep": "allow"
}
}आपके कोडबेस में तेज़ सामग्री खोज। पूर्ण regex सिंटैक्स और फ़ाइल पैटर्न फ़िल्टरिंग का समर्थन करता है।
glob
पैटर्न मैचिंग द्वारा फ़ाइलें खोजें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"glob": "allow"
}
}**/*.js या src/**/*.ts जैसे glob पैटर्न का उपयोग करके फ़ाइलें खोजें। संशोधन समय के अनुसार क्रमबद्ध मिलान फ़ाइल पथ लौटाता है।
list
दिए गए पथ में फ़ाइलें और डायरेक्टरी सूचीबद्ध करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"list": "allow"
}
}यह टूल डायरेक्टरी सामग्री सूचीबद्ध करता है। यह परिणामों को फ़िल्टर करने के लिए glob पैटर्न स्वीकार करता है।
lsp (प्रयोगात्मक)
कोड इंटेलिजेंस सुविधाएँ जैसे definitions, references, hover info, और call hierarchy प्राप्त करने के लिए अपने कॉन्फ़िगर किए गए LSP सर्वर के साथ इंटरैक्ट करें।
नोट: यह टूल केवल तभी उपलब्ध है जब
OPENCODE_EXPERIMENTAL_LSP_TOOL=true(याOPENCODE_EXPERIMENTAL=true) हो।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"lsp": "allow"
}
}समर्थित ऑपरेशन में goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, और outgoingCalls शामिल हैं।
अपने प्रोजेक्ट के लिए कौन से LSP सर्वर उपलब्ध हैं, यह कॉन्फ़िगर करने के लिए LSP सर्वर देखें।
patch
फ़ाइलों पर पैच लागू करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}यह टूल आपके कोडबेस पर पैच फ़ाइलें लागू करता है। विभिन्न स्रोतों से diffs और patches लागू करने के लिए उपयोगी।
नोट:
patchटूलeditअनुमति द्वारा नियंत्रित होता है, जो सभी फ़ाइल संशोधनों (edit,write,patch,multiedit) को कवर करता है।
skill
एक स्किल (SKILL.md फ़ाइल) लोड करें और बातचीत में इसकी सामग्री लौटाएँ।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": "allow"
}
}todowrite
कोडिंग सेशन के दौरान टू-डू सूचियाँ प्रबंधित करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"todowrite": "allow"
}
}जटिल ऑपरेशन के दौरान प्रगति ट्रैक करने के लिए कार्य सूचियाँ बनाता और अपडेट करता है। LLM इसका उपयोग बहु-चरणीय कार्यों को व्यवस्थित करने के लिए करता है।
नोट: यह टूल सबएजेंट के लिए डिफ़ॉल्ट रूप से अक्षम है, लेकिन आप इसे मैन्युअल रूप से सक्षम कर सकते हैं। अधिक जानें
todoread
मौजूदा टू-डू सूचियाँ पढ़ें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"todoread": "allow"
}
}वर्तमान टू-डू सूची स्थिति पढ़ता है। LLM द्वारा यह ट्रैक करने के लिए उपयोग किया जाता है कि कौन से कार्य लंबित या पूर्ण हैं।
नोट: यह टूल सबएजेंट के लिए डिफ़ॉल्ट रूप से अक्षम है, लेकिन आप इसे मैन्युअल रूप से सक्षम कर सकते हैं। अधिक जानें
webfetch
वेब सामग्री प्राप्त करें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"webfetch": "allow"
}
}LLM को वेब पेज प्राप्त करने और पढ़ने की अनुमति देता है। दस्तावेज़ देखने या ऑनलाइन संसाधनों पर शोध करने के लिए उपयोगी।
websearch
वेब पर जानकारी खोजें।
नोट: यह टूल केवल OpenCode प्रदाता का उपयोग करते समय या जब
OPENCODE_ENABLE_EXAएनवायरनमेंट वेरिएबल किसी truthy मान (जैसेtrueया1) पर सेट हो, तब उपलब्ध है।
OpenCode लॉन्च करते समय सक्षम करने के लिए:
OPENCODE_ENABLE_EXA=1 opencode{
"$schema": "https://opencode.ai/config.json",
"permission": {
"websearch": "allow"
}
}ऑनलाइन प्रासंगिक जानकारी खोजने के लिए Exa AI का उपयोग करके वेब खोज करता है। विषयों पर शोध करने, वर्तमान घटनाओं को खोजने, या प्रशिक्षण डेटा कटऑफ़ से परे जानकारी एकत्र करने के लिए उपयोगी।
कोई API key आवश्यक नहीं है — टूल बिना प्रमाणीकरण के सीधे Exa AI की होस्टेड MCP सेवा से जुड़ता है।
सुझाव: जब आपको जानकारी खोजने (खोज) की आवश्यकता हो तो
websearchका उपयोग करें, और जब आपको किसी विशिष्ट URL से सामग्री प्राप्त करने (पुनर्प्राप्ति) की आवश्यकता हो तोwebfetchका उपयोग करें।
question
निष्पादन के दौरान उपयोगकर्ता से प्रश्न पूछें।
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"question": "allow"
}
}यह टूल LLM को किसी कार्य के दौरान उपयोगकर्ता से प्रश्न पूछने की अनुमति देता है। यह इसके लिए उपयोगी है:
- उपयोगकर्ता प्राथमिकताएँ या आवश्यकताएँ एकत्र करना
- अस्पष्ट निर्देशों को स्पष्ट करना
- कार्यान्वयन विकल्पों पर निर्णय प्राप्त करना
- किस दिशा में जाना है, इसके बारे में विकल्प प्रदान करना
प्रत्येक प्रश्न में एक हेडर, प्रश्न टेक्स्ट, और विकल्पों की सूची शामिल होती है। उपयोगकर्ता प्रदान किए गए विकल्पों में से चुन सकते हैं या कस्टम उत्तर टाइप कर सकते हैं। जब कई प्रश्न होते हैं, तो उपयोगकर्ता सभी उत्तर सबमिट करने से पहले उनके बीच नेविगेट कर सकते हैं।
कस्टम टूल्स
कस्टम टूल्स आपको अपने स्वयं के फ़ंक्शन परिभाषित करने देते हैं जिन्हें LLM कॉल कर सकता है। ये आपकी कॉन्फ़िग फ़ाइल में परिभाषित किए जाते हैं और मनमाना कोड निष्पादित कर सकते हैं।
कस्टम टूल्स बनाने के बारे में अधिक जानें।
MCP सर्वर
MCP (Model Context Protocol) सर्वर आपको बाहरी टूल्स और सेवाओं को इंटीग्रेट करने की अनुमति देते हैं। इसमें डेटाबेस एक्सेस, API इंटीग्रेशन, और तृतीय-पक्ष सेवाएँ शामिल हैं।
MCP सर्वर कॉन्फ़िगर करने के बारे में अधिक जानें।
आंतरिक कार्यप्रणाली
आंतरिक रूप से, grep, glob, और list जैसे टूल्स ripgrep (opens in a new tab) का उपयोग करते हैं। डिफ़ॉल्ट रूप से, ripgrep .gitignore पैटर्न का सम्मान करता है, जिसका अर्थ है कि आपके .gitignore में सूचीबद्ध फ़ाइलें और डायरेक्टरी खोज और सूचीकरण से बाहर रखी जाएँगी।
इग्नोर पैटर्न
सामान्य रूप से अनदेखी की जाने वाली फ़ाइलों को शामिल करने के लिए, अपने प्रोजेक्ट रूट में एक .ignore फ़ाइल बनाएँ। यह फ़ाइल स्पष्ट रूप से कुछ पथों को अनुमति दे सकती है।
!node_modules/
!dist/
!build/उदाहरण के लिए, यह .ignore फ़ाइल ripgrep को node_modules/, dist/, और build/ डायरेक्टरी के भीतर खोजने की अनुमति देती है, भले ही वे .gitignore में सूचीबद्ध हों।