---
title: TUI
description: OpenCode terminal arayuzunu kullanin.
---

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

OpenCode, projelerinizde LLM ile calismak icin etkilesimli bir terminal arayuzu (TUI) sunar.

OpenCode'u calistirdiginizda mevcut dizin icin TUI baslar.

```bash
opencode
```

Isterseniz belirli bir calisma dizini icin de baslatabilirsiniz.

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

TUI icinde bir mesaj yazarak istem gonderebilirsiniz.

```text
Kod tabani icin hizli bir ozet ver.
```

---

## Dosya referanslari

Mesajlarinizda `@` kullanarak dosyalara referans verebilirsiniz. Bu, mevcut calisma dizininde bulanik dosya aramasi yapar.

:::tip
Mesajlarinizda dosyalara referans vermek icin `@` kullanabilirsiniz.
:::

```text "@packages/functions/src/api/index.ts"
@packages/functions/src/api/index.ts dosyasinda kimlik dogrulama nasil ele alinmis?
```

Dosya icerigi otomatik olarak konusmaya eklenir.

---

## Bash komutlari

Bir mesaji `!` ile baslatarak kabuk komutu calistirin.

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

Komut ciktiisi bir arac sonucu olarak konusmaya eklenir.

---

## Komutlar

OpenCode TUI kullanirken `/` ve komut adini yazarak hizli eylemler calistirabilirsiniz. Ornek:

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

Komutlarin cogu, lider tusu `ctrl+x` olan bir kisayola da sahiptir. [Daha fazla bilgi](/docs/keybinds).

Mevcut slash komutlarinin tam listesi:

---

### connect

OpenCode'a bir provider ekler. Mevcut provider'lari secip API anahtarlari eklemenizi saglar.

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

---

### compact

Guncel oturumu sikistirir. _Takma ad_: `/summarize`

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

**Kisayol:** `ctrl+x c`

---

### details

Arac calistirma detaylarini goster/gizle yapar.

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

**Kisayol:** `ctrl+x d`

---

### editor

Mesaj yazmak icin harici editor acar. `EDITOR` ortam degiskeninde ayarli editoru kullanir. [Daha fazla bilgi](#editor-setup).

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

**Kisayol:** `ctrl+x e`

---

### exit

OpenCode'dan cikar. _Takma adlar_: `/quit`, `/q`

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

**Kisayol:** `ctrl+x q`

---

### export

Mevcut konusmayi Markdown olarak disa aktarir ve varsayilan editorunuzde acar. `EDITOR` ortam degiskenindeki editoru kullanir. [Daha fazla bilgi](#editor-setup).

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

**Kisayol:** `ctrl+x x`

---

### help

Yardim penceresini gosterir.

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

**Kisayol:** `ctrl+x h`

---

### init

`AGENTS.md` dosyasini olusturur veya gunceller. [Daha fazla bilgi](/docs/rules).

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

**Kisayol:** `ctrl+x i`

---

### models

Kullanilabilir modelleri listeler.

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

**Kisayol:** `ctrl+x m`

---

### new

Yeni bir oturum baslatir. _Takma ad_: `/clear`

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

**Kisayol:** `ctrl+x n`

---

### redo

Geri alinan bir mesaji tekrar uygular. Yalnizca `/undo` kullanildiktan sonra kullanilabilir.

:::tip
Dosya degisiklikleri de geri yuklenir.
:::

Dahilde bu islem dosya degisikliklerini yonetmek icin Git kullanir. Bu nedenle projenizin **bir Git deposu olmasi gerekir**.

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

**Kisayol:** `ctrl+x r`

---

### sessions

Oturumlari listeler ve aralarinda gecis yapar. _Takma adlar_: `/resume`, `/continue`

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

**Kisayol:** `ctrl+x l`

---

### share

Mevcut oturumu paylasir. [Daha fazla bilgi](/docs/share).

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

**Kisayol:** `ctrl+x s`

---

### themes

Kullanilabilir temalari listeler.

```bash frame="none"
/theme
```

**Kisayol:** `ctrl+x t`

---

### thinking

Konusmadaki thinking/reasoning bloklarinin gorunurlugunu degistirir. Etkin oldugunda, genisletilmis dusunmeyi destekleyen modellerin akil yurutmelerini gorebilirsiniz.

:::note
Bu komut sadece thinking bloklarinin **gosterimini** kontrol eder, modelin gercek akil yurutmelerini acip kapatmaz. Gercek akil yurutme yetenegini degistirmek icin `ctrl+t` ile model varyantlari arasinda gecis yapin.
:::

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

---

### undo

Konusmadaki son mesaji geri alir. En son kullanici mesaji, sonraki tum yanitlar ve dosya degisiklikleri kaldirilir.

:::tip
Yapilan dosya degisiklikleri de geri cevrilir.
:::

Dahilde bu islem dosya degisikliklerini yonetmek icin Git kullanir. Bu nedenle projenizin **bir Git deposu olmasi gerekir**.

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

**Kisayol:** `ctrl+x u`

---

### unshare

Mevcut oturumun paylasimini kaldirir. [Daha fazla bilgi](/docs/share#paylasimi-kaldirma).

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

---

## Editor kurulumu

`/editor` ve `/export` komutlari, `EDITOR` ortam degiskeninde tanimli editoru kullanir.

<Tabs>
  <TabItem label="Linux/macOS">
    ```bash
    # nano veya vim ornegi
    export EDITOR=nano
    export EDITOR=vim

    # VS Code, Cursor, VSCodium, Windsurf, Zed vb. GUI editorler icin
    # --wait ekleyin
    export EDITOR="code --wait"
    ```

    Kalici yapmak icin bunu kabuk profilinize ekleyin:
    `~/.bashrc`, `~/.zshrc` vb.

  </TabItem>

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

    # VS Code, Cursor, VSCodium, Windsurf, Zed vb. GUI editorler icin
    # --wait ekleyin
    set EDITOR=code --wait
    ```

    Kalici yapmak icin **System Properties** > **Environment Variables** yolunu kullanin.

  </TabItem>

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

    # VS Code, Cursor, VSCodium, Windsurf, Zed vb. GUI editorler icin
    # --wait ekleyin
    $env:EDITOR = "code --wait"
    ```

    Kalici yapmak icin bunu PowerShell profilinize ekleyin.

  </TabItem>
</Tabs>

Yaygin editor secenekleri:

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

:::note
VS Code gibi bazi editorlerin `--wait` parametresiyle baslatilmasi gerekir.
:::

Bazi editorler bloklayici modda calismak icin komut satiri argumanlari ister. `--wait` bayragi editor surecinin kapanana kadar beklemesini saglar.

---

## Yapilandirin

TUI davranisini OpenCode config dosyanizdan ozellestirebilirsiniz.

```json title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "tui": {
    "scroll_speed": 3,
    "scroll_acceleration": {
      "enabled": true
    }
  }
}
```

### Secenekler

- `scroll_acceleration` - Daha akici ve dogal kaydirma icin macOS tarzı hizlanmayi acar. Etkin oldugunda hizli kaydirma hareketlerinde hiz artar, yavas hareketlerde hassas kalir. **Bu ayar etkin oldugunda `scroll_speed` degerini gecersiz kilar.**
- `scroll_speed` - Kaydirma komutlariyla TUI'nin ne kadar hizli kayacagini belirler (minimum: `1`). Varsayilan `3` degeridir. **Not: `scroll_acceleration.enabled` `true` ise yok sayilir.**

---

## Ozellestirme

TUI gorunumunun cesitli kisimlarini komut paletiyle (`ctrl+x h` veya `/help`) ozellestirebilirsiniz. Bu ayarlar yeniden baslatmalar arasinda korunur.

---

#### Kullanici adi gorunumu

Sohbet mesajlarinda kullanici adinizin gosterilip gosterilmeyecegini degistirir. Sunlardan erisebilirsiniz:

- Komut paleti: "username" veya "hide username" aratin
- Ayar otomatik saklanir ve TUI oturumlarinda hatirlanir
