---
title: Komutlar
description: Tekrarlanan görevler için özel komutlar oluşturulur.
---

Özel komutlar, söz konusu komut TUI'da yürütüldüğünde çalıştırmak istediğiniz istemi belirtmenize olanak tanır.

```bash frame="none"
/my-command
```

Özel komutlar, `/init`, `/undo`, `/redo`, `/share`, `/help` gibi komutlara ek olarak sunulur. [Daha fazla bilgi](/docs/tui#commands).

---

## Komut dosyaları oluşturma

Özel komutları tanımlamak için `commands/` dizininde işaretleme dosyaları oluşturun.

`.opencode/commands/test.md` oluştur:

```md title=".opencode/commands/test.md"
---
description: Run tests with coverage
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---

Run the full test suite with coverage report and show any failures.
Focus on the failing tests and suggest fixes.
```

Ön madde komut özelliklerini tanımlar. İçerik şablon haline gelir.

`/` ve ardından komut adını yazarak komutu kullanın.

```bash frame="none"
"/test"
```

---

## Yapılandırma

opencode işlemleri aracılığıyla veya `commands/` dizininde işaretleme dosyalarının oluşturulması özel komutlar ile yapılabilir.

---

### JSON

opencode [config](/docs/config)'deki `command` seçeneğini kullanın:

```json title="opencode.jsonc" {4-12}
{
  "$schema": "https://opencode.ai/config.json",
  "command": {
    // This becomes the name of the command
    "test": {
      // This is the prompt that will be sent to the LLM
      "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
      // This is shown as the description in the TUI
      "description": "Run tests with coverage",
      "agent": "build",
      "model": "anthropic/claude-3-5-sonnet-20241022"
    }
  }
}
```

Artık bu komutu TUI'da çalıştırabilirsiniz:

```bash frame="none"
/test
```

---

### Markdown

Markdown dosyalarını kullanarak komutları da tanımlayabilirsiniz. Bunları şuraya yerleştirin:

- Küresel: `~/.config/opencode/commands/`
- Proje başına: `.opencode/commands/`

```markdown title="~/.config/opencode/commands/test.md"
---
description: Run tests with coverage
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---

Run the full test suite with coverage report and show any failures.
Focus on the failing tests and suggest fixes.
```

Markdown dosyasının adı komut adı olur. Örneğin, `test.md` şunu sağlar:
sen koşuyorsun:

```bash frame="none"
/test
```

---

## İstem yapılandırması

Özel komut istemleri birçok özel yer tutucuyu ve sözdizimini destekler.

---

### Argümanlar

`$ARGUMENTS` yer tutucusunu kullanarak komutlara argümanları iletin.

```md title=".opencode/commands/component.md"
---
description: Create a new component
---

Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.
```

Komutu bağımsız değişkenlerle çalıştırın:

```bash frame="none"
/component Button
```

Ve `$ARGUMENTS`, `Button` ile değiştirilecektir.

Konumsal parametreleri kullanarak bağımsız değişkenlere de erişebilirsiniz:

- `$1` - İlk argüman
- `$2` - İkinci argüman
- `$3` - Üçüncü argüman
- Ve benzeri...

Örneğin:

```md title=".opencode/commands/create-file.md"
---
description: Create a new file with content
---

Create a file named $1 in the directory $2
with the following content: $3
```

Komutu çalıştırın:

```bash frame="none"
/create-file config.json src "{ \"key\": \"value\" }"
```

Bu şunun yerini alır:

- `$1` ile `config.json`
- `$2` ile `src`
- `$3` ile `{ "key": "value" }`

---

### Shell output

İsteminize [bash command](/docs/tui#bash-commands) çıktısını enjekte etmek için \__!`command`_ kullanın.

Örneğin, test kapsamını analiz eden özel bir komut oluşturmak için:

```md title=".opencode/commands/analyze-coverage.md"
---
description: Analyze test coverage
---

Here are the current test results:
!`npm test`

Based on these results, suggest improvements to increase coverage.
```

Or to review recent changes:

```md title=".opencode/commands/review-changes.md"
---
description: Review recent changes
---

Recent git commits:
!`git log --oneline -10`

Review these changes and suggest any improvements.
```

Komutlar projenizin kök dizininde çalışır ve çıktıları istemin bir parçası olur.

---

### Dosya referansları

Komutunuza `@` ve ardından dosya adını kullanarak dosyaları ekleyin.

```md title=".opencode/commands/review-component.md"
---
description: Review component
---

Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.
```

Dosya içeriği otomatik olarak istemde yer alır.

---

## Seçenekler

Yapılandırma seçeneklerine ayrıntılı olarak bakalım.

---

### Şablon

`template` seçeneği, komut yürütüldüğünde LLM'ye gönderilecek olan istemi tanımlar.

```json title="opencode.json"
{
  "command": {
    "test": {
      "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
    }
  }
}
```

Bu **gerekli** bir yapılandırma seçeneğidir.

---

### Açıklama

Komutun ne yaptığına ilişkin kısa bir açıklama sağlamak için `description` seçeneğini kullanın.

```json title="opencode.json"
{
  "command": {
    "test": {
      "description": "Run tests with coverage"
    }
  }
}
```

Bu, komutu yazdığınızda TUI içindeki açıklama olarak gösterilir.

---

### Ajan

İsteğe bağlı olarak bu komutu hangi [agent](/docs/agents)'nin yürütmesi gerektiğini belirtmek için `agent` yapılandırmasını kullanın.
Bu bir [subagent](/docs/agents/#subagents) ise, komut varsayılan olarak bir alt aracı çağrısını tetikleyecektir.
Bu davranışı devre dışı bırakmak için `subtask` öğesini `false` olarak ayarlayın.

```json title="opencode.json"
{
  "command": {
    "review": {
      "agent": "plan"
    }
  }
}
```

Bu **isteğe bağlı** bir yapılandırma seçeneğidir. Belirtilmemişse, varsayılan olarak mevcut temsilciniz kullanılır.

---

### Subtask

Komutu bir [subagent](/docs/agents/#subagents) çağrısını tetiklemeye zorlamak için `subtask` boolean'ını kullanın.
Bu, komutun birincil bağlamınızı kirletmemesini ve aracıyı bir alt aracı olarak davranmaya **zorlamasını** istiyorsanız kullanışlıdır.
`mode`, [agent](/docs/agents) yapılandırmasında `primary` olarak ayarlanmış olsa bile.

```json title="opencode.json"
{
  "command": {
    "analyze": {
      "subtask": true
    }
  }
}
```

Bu **isteğe bağlı** bir yapılandırma seçeneğidir.

---

### Modeli

Bu parçanın varsayılan kodu geçersiz için `model` kontrolünü kullanın.

```json title="opencode.json"
{
  "command": {
    "analyze": {
      "model": "anthropic/claude-3-5-sonnet-20241022"
    }
  }
}
```

Bu **isteğe bağlı** bir yapılandırma seçeneğidir.

---

## Yerleşik

opencode, `/init`, `/undo`, `/redo`, `/share`, `/help` gibi çeşitli yerleşik komutlar içerir; [learn more](/docs/tui#commands).

:::note
Özel komutlar yerleşik komutları geçersiz kılabilir.
:::

Aynı adda özel bir komut tanımlarsanız yerleşik komutu geçersiz kılar.
