Araclar
LLM'in kullanabilecegi araclari yonetin.
Araclar, LLM’in kod tabaninizda eylem gerceklestirmesini saglar. opencode yerlesik bir arac setiyle gelir, ancak bunu ozel araclarla veya MCP sunuculariyla genisletebilirsiniz.
Varsayilan olarak tum araclar etkindir ve calismak icin izin istemez. Arac davranisini izinler uzerinden kontrol edebilirsiniz.
Yapilandirin
Arac davranisini kontrol etmek icin permission alanini kullanin. Her arac icin izin verebilir, reddedebilir veya onay isteyebilirsiniz.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny", "bash": "ask", "webfetch": "allow" }}Birden fazla araci ayni anda kontrol etmek icin wildcard da kullanabilirsiniz. Ornegin, bir MCP sunucusundan gelen tum araclar icin onay istemek:
{ "$schema": "https://opencode.ai/config.json", "permission": { "mymcp_*": "ask" }}Izin yapilandirmasi icin daha fazla bilgi alin.
Yerlesik
opencode icinde bulunan tum yerlesik araclar asagidadir.
bash
Proje ortaminizda kabuk komutlari calistirir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "bash": "allow" }}Bu arac LLM’in npm install, git status gibi terminal komutlarini veya diger kabuk komutlarini calistirmasini saglar.
edit
Birebir metin degistirme ile mevcut dosyalari duzenler.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}Bu arac dosyalarda kesin metin eslesmelerini degistirerek hassas duzenleme yapar. LLM’in kodu degistirmek icin kullandigi temel yontemdir.
write
Yeni dosyalar olusturur veya mevcut dosyalari uzerine yazar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}LLM’in yeni dosya olusturmasina izin vermek icin bunu kullanin. Dosya zaten varsa uzerine yazar.
read
Kod tabaninizdan dosya icerigi okur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "read": "allow" }}Bu arac dosyalari okur ve iceriklerini dondurur. Buyuk dosyalar icin belirli satir araliklarini okuma destegi vardir.
grep
Duzensiz ifadelerle dosya iceriginde arama yapar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "grep": "allow" }}Kod tabaninda hizli icerik aramasi sunar. Tam regex sozdizimini ve dosya desen filtrelerini destekler.
glob
Desen eslestirme ile dosya bulur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "glob": "allow" }}**/*.js veya src/**/*.ts gibi glob desenleriyle dosya arar. Eslesen dosya yollarini degisim zamanina gore siralar.
list
Verilen yoldaki dosya ve dizinleri listeler.
{ "$schema": "https://opencode.ai/config.json", "permission": { "list": "allow" }}Bu arac dizin icerigini listeler. Sonuclari filtrelemek icin glob desenlerini kabul eder.
lsp (deneysel)
Tanim, referans, hover bilgisi ve cagrilar hiyerarsisi gibi kod zekasi ozellikleri icin yapilandirdiginiz LSP sunuculariyla etkilesir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "lsp": "allow" }}Desteklenen islemler: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls.
Projeniz icin kullanilabilir LSP sunucularini ayarlamak icin LSP Servers sayfasina bakin.
patch
Dosyalara patch uygular.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}Bu arac patch dosyalarini kod tabaniniza uygular. Farkli kaynaklardan gelen diff ve patch’leri uygulamak icin kullanislidir.
skill
Bir skill (SKILL.md dosyasi) yukler ve icerigini konusmaya dondurur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "skill": "allow" }}todowrite
Kodlama oturumlarinda yapilacaklar listesini yonetir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "todowrite": "allow" }}Karmasik islemlerde ilerlemeyi takip etmek icin gorev listeleri olusturur ve gunceller. LLM bunu cok adimli gorevleri duzenlemek icin kullanir.
todoread
Mevcut yapilacaklar listesini okur.
{ "$schema": "https://opencode.ai/config.json", "permission": { "todoread": "allow" }}Guncel todo listesi durumunu okur. LLM bunu hangi gorevlerin bekledigini veya tamamlandigini takip etmek icin kullanir.
webfetch
Web icerigi getirir.
{ "$schema": "https://opencode.ai/config.json", "permission": { "webfetch": "allow" }}LLM’in web sayfalarini getirip okumasini saglar. Dokumantasyon aramak veya cevrimici kaynaklari incelemek icin kullanislidir.
websearch
Web’de bilgi arar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "websearch": "allow" }}Exa AI ile web aramasi yaparak ilgili bilgileri bulur. Egitim verisi kesim tarihinin otesindeki konulari arastirmak, guncel olaylari bulmak veya genel arastirma yapmak icin kullanislidir.
API anahtari gerekmez - arac Exa AI’nin barindirilan MCP hizmetine dogrudan kimlik dogrulamasi olmadan baglanir.
question
Calisma sirasinda kullaniciya soru sorar.
{ "$schema": "https://opencode.ai/config.json", "permission": { "question": "allow" }}Bu arac LLM’in gorev sirasinda kullaniciya soru sormasini saglar. Sunlar icin kullanislidir:
- Kullanici tercihleri veya gereksinimleri toplamak
- Belirsiz talimatlari netlestirmek
- Uygulama seceneklerinde karar almak
- Hangi yone gidilecegine dair secenek sunmak
Her soru bir baslik, soru metni ve secenek listesi icerir. Kullanicilar seceneklerden birini secebilir veya ozel yanit yazabilir. Birden fazla soru varsa tum yanitlari gondermeden once sorular arasinda gezebilirler.
Ozel araclar
Ozel araclar, LLM’in cagirabilecegi kendi fonksiyonlarinizi tanimlamanizi saglar. Bunlar config dosyanizda tanimlanir ve keyfi kod calistirabilir.
Ozel arac olusturma icin daha fazla bilgi alin.
MCP sunuculari
MCP (Model Context Protocol) sunuculari, harici araclari ve servisleri entegre etmenizi saglar. Buna veritabani erisimi, API entegrasyonlari ve ucuncu taraf servisler dahildir.
MCP sunucularini yapilandirma icin daha fazla bilgi alin.
Dahili detaylar
Dahilde grep, glob ve list gibi araclar ripgrep kullanir. Varsayilan olarak ripgrep .gitignore desenlerine uyar; yani .gitignore icindeki dosya ve dizinler arama ve listeleme sonucuna dahil edilmez.
Ignore desenleri
Normalde yok sayilan dosyalari dahil etmek icin proje kokunde bir .ignore dosyasi olusturun. Bu dosya belirli yollari acikca izinli yapabilir.
!node_modules/!dist/!build/Ornegin bu .ignore dosyasi, node_modules/ icinde olsalar bile ripgrep’in dist/, build/ ve .gitignore dizinlerinde arama yapmasina izin verir.