Komutlar
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.
/my-commandÖzel komutlar, /init, /undo, /redo, /share, /help gibi komutlara ek olarak sunulur. Daha fazla bilgi.
Komut dosyaları oluşturun
Özel komutları tanımlamak için commands/ dizininde işaretleme dosyaları oluşturun.
.opencode/commands/test.md oluştur:
---description: Run tests with coverageagent: buildmodel: 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.
"/test"Yapılandır
opencode işlemleri aracılığıyla veya commands/ dizininde işaretleme dosyalarının oluşturulması özel komutlar ile yapılabilir.
JSON
opencode config’deki command seçeneğini kullanın:
{ "$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:
/testİndirim
Markdown dosyalarını kullanarak komutları da tanımlayabilirsiniz. Bunları şuraya yerleştirin:
- Küresel:
~/.config/opencode/commands/ - Proje başına:
.opencode/commands/
---description: Run tests with coverageagent: buildmodel: 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:
/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.
---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:
/component ButtonVe $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:
---description: Create a new file with content---
Create a file named $1 in the directory $2with the following content: $3Komutu çalıştırın:
/create-file config.json src "{ \"key\": \"value\" }"Bu şunun yerini alır:
$1ileconfig.json$2ilesrc$3ile{ "key": "value" }
Shell output
İsteminize bash command çıktısını enjekte etmek için _!command kullanın.
Örneğin, test kapsamını analiz eden özel bir komut oluşturmak için:
---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:
---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.
---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.
Options
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.
{ "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.
Tanım
Komutun ne yaptığına ilişkin kısa bir açıklama sağlamak için description seçeneğini kullanın.
{ "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’nin yürütmesi gerektiğini belirtmek için agent yapılandırmasını kullanın.
Bu bir subagent 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.
{ "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 ç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 yapılandırmasında primary olarak ayarlanmış olsa bile.
{ "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.
{ "command": { "analyze": { "model": "anthropic/claude-3-5-sonnet-20241022" } }}Bu isteğe bağlı bir yapılandırma seçeneğidir.
Built-in
opencode, /init, /undo, /redo, /share, /help gibi çeşitli yerleşik komutlar içerir; learn more.
Aynı adda özel bir komut tanımlarsanız yerleşik komutu geçersiz kılar.