Polecenia
Twórz polecenia dla powtarzalnych zadań.
Polecenia to zdefiniowane prompty, które można uruchomić w TUI.
/my-commandPolecenia są dodatkiem do wbudowanych, takich jak /init, /undo, /redo, /share, /help. Dowiedz się więcej.
Utwórz pliki źródłowe
Utwórz pliki Markdown w katalogu commands/, aby zdefiniować polecenia.
Utwórz .opencode/commands/test.md:
---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.Frontmatter definiuje właściwości. Treść staje się szablonem.
Uruchom polecenie, wpisując /, a następnie nazwę polecenia.
"/test"Konfiguracja
Możesz zdefiniować polecenia w opencode.json lub w plikach w katalogu commands/.
JSON
Użyj opcji command w swojej konfiguracji opencode:
{ "$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" } }}Teraz możesz wybrać opcję w TUI:
/testMarkdown
Można także definiować polecenia za pomocą plików Markdown. Trzymaj je w:
- Globalnie:
~/.config/opencode/commands/ - Na projekt:
.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.Nazwa pliku Markdown staje się nazwą polecenia. Na przykład test.md pozwala
uruchomić:
/testSkładnia promptu
Prompty niestandardowych poleceń obsługują kilka specjalnych symboli zastępczych.
Argumenty
Przekazuj argumenty do promptu, używając symbolu zastępczego $ARGUMENTS.
---description: Create a new component---
Create a new React component named $ARGUMENTS with TypeScript support.Include proper typing and basic structure.Uruchomienie polecenia z argumentami:
/component Button$ARGUMENTS zostanie zastąpione przez Button.
Dostęp do poszczególnych argumentów można uzyskać za pomocą parametrów pozycyjnych:
$1- Pierwszy argument$2- Drugi argument$3- Trzeci argument- I tak dalej…
Na przykład:
---description: Create a new file with content---
Create a file named $1 in the directory $2with the following content: $3Uruchomienie polecenia:
/create-file config.json src "{ \"key\": \"value\" }"Wartości:
$1toconfig.json$2tosrc$3to{ "key": "value" }
Dane wyjściowe poleceń
Użyj !command, aby wstawić dane wyjściowe polecenia bash do promptu.
Na przykład, aby przeanalizować pokrycie testami:
---description: Analyze test coverage---
Here are the current test results:!`npm test`
Based on these results, suggest improvements to increase coverage.Lub aby przejrzeć ostatnie zmiany:
---description: Review recent changes---
Recent git commits:!`git log --oneline -10`
Review these changes and suggest any improvements.Polecenia są uruchamiane w powłoce, a ich dane wyjściowe są wstawiane do promptu.
Odwołania do plików
Dołącz pliki do swojego polecenia, używając @ i ścieżki do pliku.
---description: Review component---
Review the component in @src/components/Button.tsx.Check for performance issues and suggest improvements.Zawartość pliku jest automatycznie wstawiana do promptu.
Opcje
Przyjrzyjmy się szczegółowo opcjom konfiguracji.
Template
Opcja template to prompt wysyłany do LLM po wykonaniu polecenia.
{ "command": { "test": { "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes." } }}Jest to wymagana opcja konfiguracji.
Description
Użyj description, aby dodać krótki opis działania polecenia.
{ "command": { "test": { "description": "Run tests with coverage" } }}Jest wyświetlany jako opis w TUI po wpisaniu polecenia.
Agent
Użyj opcji agent, aby określić, który agent powinien wykonać to polecenie.
Jeśli jest to subagent, zostanie on użyty.
Aby to zmienić, ustaw subtask na false.
{ "command": { "review": { "agent": "plan" } }}Jest to opcjonalna opcja konfiguracji. Jeśli nie podano, użyty zostanie domyślny agent.
Subtask
Użyj subtask, aby wymusić wywołanie polecenia jako subzadania.
Jest to przydatne, jeśli chcesz, aby polecenie nie zanieczyszczało kontekstu i zmusiło agenta do działania jako subagent,
nawet jeśli mode jest ustawiony na primary w konfiguracji agent.
{ "command": { "analyze": { "subtask": true } }}Jest to opcjonalna opcja konfiguracji.
Model
Użyj model, aby określić model dla tego polecenia.
{ "command": { "analyze": { "model": "anthropic/claude-3-5-sonnet-20241022" } }}Jest to opcjonalna opcja konfiguracji.
Wbudowane
opencode zawiera kilka wbudowanych poleceń, takich jak /init, /undo, /redo, /share, /help; dowiedz się więcej.
Jeśli zdefiniujesz tę samą nazwę, twoje polecenie będzie miało pierwszeństwo.