--- 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. ```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. ```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. ```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. 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