opencode/packages/web/src/content/docs/tr/tools.mdx

342 lines
8.4 KiB
Plaintext
Raw Normal View History

2026-02-10 01:34:35 +08:00
---
title: Araçlar
description: LLM'in kullanabileceği araçları yönetin.
2026-02-10 01:34:35 +08:00
---
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](/docs/custom-tools) veya [MCP sunucularıyla](/docs/mcp-servers) genişletebilirsiniz.
2026-02-10 01:34:35 +08:00
Varsayılan olarak tüm araçlar **etkindir** ve çalışmak için izin istemez. Araç davranışını [izinler](/docs/permissions) üzerinden kontrol edebilirsiniz.
2026-02-10 01:34:35 +08:00
---
## Yapılandırma
2026-02-10 01:34:35 +08:00
Araç davranışını kontrol etmek için `permission` alanını kullanın. Her araç için izin verebilir, reddedebilir veya onay isteyebilirsiniz.
2026-02-10 01:34:35 +08:00
```json title="opencode.json"
{
"$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:
2026-02-10 01:34:35 +08:00
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"mymcp_*": "ask"
}
}
```
İzin yapılandırması için [daha fazla bilgi alın](/docs/permissions).
2026-02-10 01:34:35 +08:00
---
## Yerleşik
2026-02-10 01:34:35 +08:00
opencode içinde bulunan tüm yerleşik araçlar aşağıdadır.
2026-02-10 01:34:35 +08:00
---
### bash
Proje ortamınızda kabuk komutları çalıştırır.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
---
### edit
Birebir metin değiştirme ile mevcut dosyaları düzenler.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
---
### write
Yeni dosyalar oluşturur veya mevcut dosyaları üzerine yazar.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
:::note
2026-04-21 23:31:20 +08:00
`write` aracı `edit` izniyle kontrol edilir; bu izin tüm dosya değişikliklerini kapsar (`edit`, `write`, `patch`).
2026-02-10 01:34:35 +08:00
:::
---
### read
Kod tabanınızdan dosya içeriği okur.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
---
### grep
Düzenli ifadelerle dosya içeriğinde arama yapar.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
---
### glob
Desen eşleştirme ile dosya bulur.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
---
### 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.
2026-02-10 01:34:35 +08:00
:::note
Bu araç yalnızca `OPENCODE_EXPERIMENTAL_LSP_TOOL=true` (veya `OPENCODE_EXPERIMENTAL=true`) olduğunda kullanılabilir.
2026-02-10 01:34:35 +08:00
:::
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"lsp": "allow"
}
}
```
Desteklenen işlemler: `goToDefinition`, `findReferences`, `hover`, `documentSymbol`, `workspaceSymbol`, `goToImplementation`, `prepareCallHierarchy`, `incomingCalls`, `outgoingCalls`.
2026-02-10 01:34:35 +08:00
Projeniz için kullanılabilir LSP sunucularını ayarlamak için [LSP Sunucuları](/docs/lsp) sayfasına bakın.
2026-02-10 01:34:35 +08:00
---
### patch
Dosyalara patch uygular.
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
:::note
2026-04-21 23:31:20 +08:00
`patch` aracı `edit` izniyle kontrol edilir; bu izin tüm dosya değişikliklerini kapsar (`edit`, `write`, `patch`).
2026-02-10 01:34:35 +08:00
:::
---
### skill
Bir [skill](/docs/skills) (`SKILL.md` dosyası) yükler ve içeriğini konuşmaya döndürür.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": "allow"
}
}
```
---
### todowrite
Kodlama oturumlarında yapılacaklar listesini yönetir.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
:::note
Bu araç alt agent'lar için varsayılan olarak devre dışıdır, ama manuel etkinleştirebilirsiniz. [Daha fazla bilgi](/docs/agents/#permissions)
2026-02-10 01:34:35 +08:00
:::
---
### webfetch
Web içeriği getirir.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
---
### websearch
Web'de bilgi arar.
:::note
Bu araç yalnızca opencode provider kullanılırken veya `OPENCODE_ENABLE_EXA` ortam değişkeni doğru değerlerden birine ayarlandığında (örneğin `true` ya da `1`) kullanılabilir.
2026-02-10 01:34:35 +08:00
opencode başlatırken etkinleştirmek için:
2026-02-10 01:34:35 +08:00
```bash
OPENCODE_ENABLE_EXA=1 opencode
```
:::
```json title="opencode.json" {4}
{
"$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.
2026-02-10 01:34:35 +08:00
API anahtarı gerekmez - araç Exa AI'nin barındırılan MCP hizmetine doğrudan kimlik doğrulaması olmadan bağlanır.
2026-02-10 01:34:35 +08:00
:::tip
Bilgi keşfetmeniz gerekiyorsa `websearch`, belirli bir URL'den içerik çekmeniz gerekiyorsa `webfetch` kullanın.
2026-02-10 01:34:35 +08:00
:::
---
### question
Çalışma sırasında kullanıcıya soru sorar.
2026-02-10 01:34:35 +08:00
```json title="opencode.json" {4}
{
"$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:
2026-02-10 01:34:35 +08:00
- Kullanıcı tercihleri veya gereksinimleri toplamak
- Belirsiz talimatları netleştirmek
- Uygulama seçeneklerinde karar almak
- Hangi yöne gidileceğine dair seçenek sunmak
2026-02-10 01:34:35 +08:00
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.
2026-02-10 01:34:35 +08:00
---
## Özel araçlar
2026-02-10 01:34:35 +08:00
Ö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.
2026-02-10 01:34:35 +08:00
Özel araç oluşturma için [daha fazla bilgi alın](/docs/custom-tools).
2026-02-10 01:34:35 +08:00
---
## MCP sunucuları
2026-02-10 01:34:35 +08:00
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.
2026-02-10 01:34:35 +08:00
MCP sunucularını yapılandırma için [daha fazla bilgi alın](/docs/mcp-servers).
2026-02-10 01:34:35 +08:00
---
## Dahili detaylar
Dahilde `grep` ve `glob` gibi araçlar [ripgrep](https://github.com/BurntSushi/ripgrep) kullanır. Varsayılan olarak ripgrep `.gitignore` desenlerine uyar; yani `.gitignore` içindeki dosya ve dizinler arama ve listeleme sonucuna dahil edilmez.
2026-02-10 01:34:35 +08:00
---
### Yoksayma desenleri
2026-02-10 01:34:35 +08:00
Normalde yok sayılan dosyaları dahil etmek için proje kökünde bir `.ignore` dosyası oluşturun. Bu dosya belirli yollarııkça izinli yapabilir.
2026-02-10 01:34:35 +08:00
```text title=".ignore"
!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.