Araçlar
LLM'in kullanabileceği araçları yönetin.
Araçlar, LLM’in kod tabanınızda eylem gerçekleştirmesini sağlar. opencode yerleşik bir araç setiyle gelir, ancak bunu özel araçlarla veya MCP sunucularıyla genişletebilirsiniz.
Varsayılan olarak tüm araçlar etkindir ve çalışmak için izin istemez. Araç davranışını izinler üzerinden kontrol edebilirsiniz.
Yapılandırma
Araç davranışını kontrol etmek için permission alanını kullanın. Her araç için izin verebilir, reddedebilir veya onay isteyebilirsiniz.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny", "bash": "ask", "webfetch": "allow" }}Birden fazla aracı aynı anda kontrol etmek için joker karakterler de kullanabilirsiniz. Örneğin, bir MCP sunucusundan gelen tüm araçlar için onay istemek:
{ "$schema": "https://opencode.ai/config.json", "permission": { "mymcp_*": "ask" }}İzin yapılandırması için daha fazla bilgi alın.
Yerleşik
opencode içinde bulunan tüm yerleşik araçlar aşağıdadır.
bash
Proje ortamınızda kabuk komutları çalıştırır.
{ "$schema": "https://opencode.ai/config.json", "permission": { "bash": "allow" }}Bu araç LLM’in npm install, git status gibi terminal komutlarını veya diğer kabuk komutlarını çalıştırmasını sağlar.
edit
Birebir metin değiştirme ile mevcut dosyaları düzenler.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}Bu araç dosyalarda kesin metin eşleşmelerini değiştirerek hassas düzenleme yapar. LLM’in kodu değiştirmek için kullandığı temel yöntemdir.
write
Yeni dosyalar oluşturur veya mevcut dosyaları üzerine yazar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}LLM’in yeni dosya oluşturmasına izin vermek için bunu kullanın. Dosya zaten varsa üzerine yazar.
read
Kod tabanınızdan dosya içeriği okur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "read": "allow" }}Bu araç dosyaları okur ve içeriklerini döndürür. Büyük dosyalar için belirli satır aralıklarını okuma desteği vardır.
grep
Düzenli ifadelerle dosya içeriğinde arama yapar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "grep": "allow" }}Kod tabanında hızlı içerik araması sunar. Tam regex sözdizimini ve dosya desen filtrelerini destekler.
glob
Desen eşleştirme ile dosya bulur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "glob": "allow" }}**/*.js veya src/**/*.ts gibi glob desenleriyle dosya arar. Eşleşen dosya yollarını değişim zamanına göre sıralar.
list
Verilen yoldaki dosya ve dizinleri listeler.
{ "$schema": "https://opencode.ai/config.json", "permission": { "list": "allow" }}Bu araç dizin içeriğini listeler. Sonuçları filtrelemek için glob desenlerini kabul eder.
lsp (deneysel)
Tanım, referans, hover bilgisi ve çağrılar hiyerarşisi gibi kod zekası özellikleri için yapılandırdığınız LSP sunucularıyla etkileşir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "lsp": "allow" }}Desteklenen işlemler: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls.
Projeniz için kullanılabilir LSP sunucularını ayarlamak için LSP Sunucuları sayfasına bakın.
patch
Dosyalara patch uygular.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}Bu araç patch dosyalarını kod tabanınıza uygular. Farklı kaynaklardan gelen diff ve patch’leri uygulamak için kullanışlıdır.
skill
Bir skill (SKILL.md dosyası) yükler ve içeriğini konuşmaya döndürür.
{ "$schema": "https://opencode.ai/config.json", "permission": { "skill": "allow" }}todowrite
Kodlama oturumlarında yapılacaklar listesini yönetir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "todowrite": "allow" }}Karmaşık işlemlerde ilerlemeyi takip etmek için görev listeleri oluşturur ve günceller. LLM bunu çok adımlı görevleri düzenlemek için kullanır.
todoread
Mevcut yapılacaklar listesini okur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "todoread": "allow" }}Güncel todo listesi durumunu okur. LLM bunu hangi görevlerin beklediğini veya tamamlandığını takip etmek için kullanır.
webfetch
Web içeriği getirir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "webfetch": "allow" }}LLM’in web sayfalarını getirip okumasını sağlar. Dokümantasyon aramak veya çevrimiçi kaynakları incelemek için kullanışlıdır.
websearch
Web’de bilgi arar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "websearch": "allow" }}Exa AI ile web araması yaparak ilgili bilgileri bulur. Eğitim verisi kesim tarihinin ötesindeki konuları araştırmak, güncel olayları bulmak veya genel araştırma yapmak için kullanışlıdır.
API anahtarı gerekmez - araç Exa AI’nin barındırılan MCP hizmetine doğrudan kimlik doğrulaması olmadan bağlanır.
question
Çalışma sırasında kullanıcıya soru sorar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "question": "allow" }}Bu araç LLM’in görev sırasında kullanıcıya soru sormasını sağlar. Şunlar için kullanışlıdır:
- Kullanıcı tercihleri veya gereksinimleri toplamak
- Belirsiz talimatları netleştirmek
- Uygulama seçeneklerinde karar almak
- Hangi yöne gidileceğine dair seçenek sunmak
Her soru bir başlık, soru metni ve seçenek listesi içerir. Kullanıcılar seçeneklerden birini seçebilir veya özel yanıt yazabilir. Birden fazla soru varsa tüm yanıtları göndermeden önce sorular arasında gezebilirler.
Özel araçlar
Özel araçlar, LLM’in çağırabileceği kendi fonksiyonlarınızı tanımlamanızı sağlar. Bunlar config dosyanızda tanımlanır ve keyfi kod çalıştırabilir.
Özel araç oluşturma için daha fazla bilgi alın.
MCP sunucuları
MCP (Model Context Protocol) sunucuları, harici araçları ve servisleri entegre etmenizi sağlar. Buna veritabanı erişimi, API entegrasyonları ve üçüncü taraf servisler dahildir.
MCP sunucularını yapılandırma için daha fazla bilgi alın.
Dahili detaylar
Dahilde grep, glob ve list gibi araçlar ripgrep kullanır. Varsayılan olarak ripgrep .gitignore desenlerine uyar; yani .gitignore içindeki dosya ve dizinler arama ve listeleme sonucuna dahil edilmez.
Yoksayma desenleri
Normalde yok sayılan dosyaları dahil etmek için proje kökünde bir .ignore dosyası oluşturun. Bu dosya belirli yolları açıkça izinli yapabilir.
!node_modules/!dist/!build/Örneğin bu .ignore dosyası, node_modules/ içinde olsalar bile ripgrep’in dist/, build/ ve .gitignore dizinlerinde arama yapmasına izin verir.