टूल्स
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 (प्रयोगात्मक)
डेफिनिशन, रेफरेंस, होवर इंफो, और कॉल हायरार्की जैसी कोड इंटेलिजेंस सुविधाएं प्राप्त करने के लिए अपने कॉन्फ़िगर किए गए 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 को वेब पेज फेच करने और पढ़ने की अनुमति देता है। डॉक्यूमेंटेशन देखने या ऑनलाइन रिसोर्स रिसर्च करने के लिए उपयोगी।
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 में सूचीबद्ध हों।