---
title: TUI
description: OpenCode terminal kullanıcı arayüzünü kullanma.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"

OpenCode, projelerinizde LLM ile çalışmak için etkileşimli bir terminal arayüzü (TUI) sunar.

OpenCode'u çalıştırdığınızda mevcut dizin için TUI başlar.

```bash
opencode
```

İsterseniz belirli bir çalışma dizini için de başlatabilirsiniz.

```bash
opencode /path/to/project
```

TUI içine girdiğinizde, bir mesajla istem gönderebilirsiniz.

```text
Give me a quick summary of the codebase.
```

---

## Dosya referansları

Mesajlarınızda `@` kullanarak dosyalara referans verebilirsiniz. Bu, mevcut çalışma dizininde bulanık dosya araması yapar.

:::tip
Mesajlarınızda dosyalara referans vermek için `@` kullanabilirsiniz.
:::

```text "@packages/functions/src/api/index.ts"
How is auth handled in @packages/functions/src/api/index.ts?
```

Dosya içeriği otomatik olarak konuşmaya eklenir.

---

## Bash komutları

Bir mesajı `!` ile başlatarak shell komutu çalıştırın.

```bash frame="none"
!ls -la
```

Komut çıktısı bir araç sonucu olarak konuşmaya eklenir.

---

## Komutlar

OpenCode TUI kullanırken `/` ve ardından komut adını yazarak hızlı eylemler çalıştırabilirsiniz. Örneğin:

```bash frame="none"
/help
```

Komutların çoğu, lider tuşu `ctrl+x` olan bir kısayola da sahiptir. [Daha fazla bilgi](/docs/keybinds).

İşte mevcut slash komutlarının tümü:

---

### connect

OpenCode'a bir sağlayıcı ekler. Mevcut sağlayıcıları seçip API anahtarları eklemenizi sağlar.

```bash frame="none"
/connect
```

---

### compact

Mevcut oturumu sıkıştırır. _Takma ad_: `/summarize`

```bash frame="none"
/compact
```

**Kısayol:** `ctrl+x c`

---

### details

Araç çalıştırma detaylarını göster/gizle yapar.

```bash frame="none"
/details
```

**Kısayol:** `ctrl+x d`

---

### editor

Mesaj yazmak için harici editör açar. `EDITOR` ortam değişkeninde ayarlı editörü kullanır. [Daha fazla bilgi](#editor-setup).

```bash frame="none"
/editor
```

**Kısayol:** `ctrl+x e`

---

### exit

OpenCode'dan çıkar. _Takma adlar_: `/quit`, `/q`

```bash frame="none"
/exit
```

**Kısayol:** `ctrl+x q`

---

### export

Mevcut konuşmayı Markdown olarak dışa aktarır ve varsayılan editörünüzde açar. `EDITOR` ortam değişkeninde ayarlı editörü kullanır. [Daha fazla bilgi](#editor-setup).

```bash frame="none"
/export
```

**Kısayol:** `ctrl+x x`

---

### help

Yardım penceresini gösterir.

```bash frame="none"
/help
```

**Kısayol:** `ctrl+x h`

---

### init

`AGENTS.md` dosyasını oluşturur veya günceller. [Daha fazla bilgi](/docs/rules).

```bash frame="none"
/init
```

**Kısayol:** `ctrl+x i`

---

### models

Kullanılabilir modelleri listeler.

```bash frame="none"
/models
```

**Kısayol:** `ctrl+x m`

---

### new

Yeni bir oturum başlatır. _Takma ad_: `/clear`

```bash frame="none"
/new
```

**Kısayol:** `ctrl+x n`

---

### redo

Geri alınan bir mesajı tekrar uygular. Yalnızca `/undo` kullanıldıktan sonra kullanılabilir.

:::tip
Herhangi bir dosya değişikliği de geri yüklenir.
:::

Dahili olarak bu işlem dosya değişikliklerini yönetmek için Git kullanır. Bu nedenle projenizin **bir Git deposu olması gerekir**.

```bash frame="none"
/redo
```

**Kısayol:** `ctrl+x r`

---

### sessions

Oturumları listeler ve aralarında geçiş yapar. _Takma adlar_: `/resume`, `/continue`

```bash frame="none"
/sessions
```

**Kısayol:** `ctrl+x l`

---

### share

Mevcut oturumu paylaşır. [Daha fazla bilgi](/docs/share).

```bash frame="none"
/share
```

**Kısayol:** `ctrl+x s`

---

### themes

Kullanılabilir temaları listeler.

```bash frame="none"
/themes
```

**Kısayol:** `ctrl+x t`

---

### thinking

Konuşmadaki thinking/reasoning bloklarının görünürlüğünü değiştirir. Etkin olduğunda, genişletilmiş düşünmeyi destekleyen modellerin akıl yürütme sürecini görebilirsiniz.

:::note
Bu komut sadece thinking bloklarının **gösterilip gösterilmeyeceğini** kontrol eder - modelin akıl yürütme yeteneklerini etkinleştirmez veya devre dışı bırakmaz. Gerçek akıl yürütme yeteneklerini değiştirmek için `ctrl+t` kullanarak model varyantları arasında geçiş yapın.
:::

```bash frame="none"
/thinking
```

---

### undo

Konuşmadaki son mesajı geri alır. En son kullanıcı mesajını, sonraki tüm yanıtları ve dosya değişikliklerini kaldırır.

:::tip
Yapılan tüm dosya değişiklikleri de geri alınır.
:::

Dahili olarak bu işlem dosya değişikliklerini yönetmek için Git kullanır. Bu nedenle projenizin **bir Git deposu olması gerekir**.

```bash frame="none"
/undo
```

**Kısayol:** `ctrl+x u`

---

### unshare

Mevcut oturumun paylaşımını kaldırır. [Daha fazla bilgi](/docs/share#un-sharing).

```bash frame="none"
/unshare
```

---

## Editör kurulumu

Hem `/editor` hem de `/export` komutları, `EDITOR` ortam değişkeninde belirtilen editörü kullanır.

<Tabs>
  <TabItem label="Linux/macOS">
    ```bash
    # Example for nano or vim
    export EDITOR=nano
    export EDITOR=vim

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    export EDITOR="code --wait"
    ```

    Kalıcı yapmak için bunu kabuk profilinize ekleyin;
    `~/.bashrc`, `~/.zshrc` vb.

  </TabItem>

  <TabItem label="Windows (CMD)">
    ```bash
    set EDITOR=notepad

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    set EDITOR=code --wait
    ```

    Kalıcı yapmak için **System Properties** > **Environment
    Variables** yolunu kullanın.

  </TabItem>

  <TabItem label="Windows (PowerShell)">
    ```powershell
    $env:EDITOR = "notepad"

    # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
    # include --wait
    $env:EDITOR = "code --wait"
    ```

    Kalıcı yapmak için bunu PowerShell profilinize ekleyin.

  </TabItem>
</Tabs>

Popüler editör seçenekleri şunları içerir:

- `code` - Visual Studio Code
- `cursor` - Cursor
- `windsurf` - Windsurf
- `nvim` - Neovim editörü
- `vim` - Vim editörü
- `nano` - Nano editörü
- `notepad` - Windows Notepad
- `subl` - Sublime Text

:::note
VS Code gibi bazı editörlerin `--wait` bayrağı ile başlatılması gerekir.
:::

Bazı editörler bloklama modunda çalışmak için komut satırı argümanlarına ihtiyaç duyar. `--wait` bayrağı, editör süreci kapanana kadar işlemin bloklanmasını sağlar.

---

## Yapılandırma

TUI davranışını `tui.json` (veya `tui.jsonc`) aracılığıyla özelleştirebilirsiniz.

```json title="tui.json"
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "opencode",
  "leader_timeout": 2000,
  "keybinds": {
    "leader": "ctrl+x",
    "command_list": "ctrl+p"
  },
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": false
  },
  "diff_style": "auto",
  "mouse": true,
  "attention": {
    "enabled": true,
    "notifications": true,
    "sound": true,
    "volume": 0.4,
    "sound_pack": "opencode.default",
    "sounds": {
      "error": "./sounds/error.mp3"
    }
  }
}
```

Bu, sunucu/çalışma zamanı davranışını yapılandıran `opencode.json` dosyasından ayrıdır.

`keybinds` yerleşik varsayılanlarla birleştirilir; bu yüzden yalnızca değiştirmek istediğiniz kısayolları yapılandırmanız yeterlidir.

### Seçenekler

- `theme` - UI temanızı ayarlar. [Daha fazla bilgi](/docs/themes).
- `keybinds` - Klavye kısayollarını özelleştirir. [Daha fazla bilgi](/docs/keybinds).
- `leader_timeout` - OpenCode'un leader key sonrasında ne kadar bekleyeceğini kontrol eder. Varsayılan değer `2000`.
- `scroll_acceleration.enabled` - Pürüzsüz, doğal kaydırma için macOS tarzı kaydırma ivmesini etkinleştirin. Etkinleştirildiğinde, kaydırma hızı hızlı kaydırma hareketleriyle artar ve daha yavaş hareketler için hassas kalır. **Bu ayar `scroll_speed` ayarından önceliklidir ve etkinleştirildiğinde onu geçersiz kılar.**
- `scroll_speed` - Kaydırma komutlarını kullanırken TUI'nin ne kadar hızlı kaydırılacağını kontrol eder (minimum: `0.001`, ondalık değerleri destekler). Varsayılan değer `3`'tür. **Not: `scroll_acceleration.enabled` `true` olarak ayarlanmışsa bu yok sayılır.**
- `diff_style` - Fark (diff) oluşturmayı kontrol eder. `"auto"` terminal genişliğine uyum sağlar, `"stacked"` her zaman tek sütunlu bir düzen gösterir.
- `mouse` - TUI içinde fare yakalamayı etkinleştirir veya devre dışı bırakır (varsayılan: `true`). Devre dışı bırakıldığında terminalin yerel fareyle seçme ve kaydırma davranışı korunur.
- `attention` - TUI masaüstü bildirimlerini ve seslerini yapılandırır. Varsayılan olarak devre dışıdır.

Özel bir TUI yapılandırma yolu yüklemek için `OPENCODE_TUI_CONFIG` kullanın.

### Attention

Attention, OpenCode bir yanıt beklediğinde, izin onayı gerektiğinde, oturum hatası oluştuğunda veya oturum tamamlandığında TUI'nin sizi ses ve masaüstü bildirimiyle uyarmasını sağlar. `attention.enabled` ile etkinleştirin; yerleşik olaylar gerçekleştiğinde ses çalar. Masaüstü bildirimleri yalnızca terminal penceresi odakta değilken gönderilir ve subagent olayları için kullanılmaz.

- `enabled` - Attention için tüm bildirimleri ve sesleri etkinleştirir. Varsayılan değer `false`.
- `notifications` - Attention etkin olduğunda TUI'nin terminal üzerinden masaüstü bildirimi göndermesine izin verir. Varsayılan değer `true`.
- `sound` - Attention etkin olduğunda uyarı seslerinin çalmasına izin verir. Varsayılan değer `true`.
- `volume` - Uyarı sesleri için varsayılan ses düzeyi, `0` ile `1` arasındadır. Varsayılan değer `0.4`.
- `sound_pack` - Kullanılacak sound pack ID. Varsayılan değer `opencode.default`.
- `sounds` - `default`, `question`, `permission`, `error`, `done` veya `subagent_done` için özel ses dosyaları ayarlar. Yollar mutlak, `file://` URL'leri veya `tui.json` dosyasına göre göreli olabilir.

---

## Özelleştirme

Komut paletini (`ctrl+x h` veya `/help`) kullanarak TUI görünümünün çeşitli yönlerini özelleştirebilirsiniz. Bu ayarlar yeniden başlatmalar arasında korunur.

---

#### Kullanıcı adı görünümü

Sohbet mesajlarında kullanıcı adınızın görünüp görünmeyeceğini değiştirin. Buna şuradan erişin:

- Komut paleti: "username" veya "hide username" araması yapın
- Ayar otomatik olarak kalıcı hale gelir ve TUI oturumları arasında hatırlanır
