| --- |
| 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). |
|
|
| --- |
| |
| |
|
|
| Ö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" |
| ``` |
|
|
| --- |
| |
| |
|
|
| opencode işlemleri aracılığıyla veya `commands/` dizininde işaretleme dosyalarının oluşturulması özel komutlar ile yapılabilir. |
|
|
| --- |
| |
| |
|
|
| 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 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 |
| ``` |
|
|
| --- |
| |
| |
|
|
| Özel komut istemleri birçok özel yer tutucuyu ve sözdizimini destekler. |
|
|
| --- |
| |
| |
|
|
| `$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" }` |
|
|
| --- |
| |
| |
|
|
| İ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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| Yapılandırma seçeneklerine ayrıntılı olarak bakalım. |
|
|
| --- |
| |
| |
|
|
| `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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| İ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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|