Skip to content

Komande

Kreirajte prilagođene komande za zadatke koji se ponavljaju.

Prilagođene komande vam omogućavaju da odredite prompt koji želite da pokrenete kada se ta naredba izvrši u TUI-ju.

/my-command

Prilagođene komande su dodatak ugrađenim komandama kao što su /init, /undo, /redo, /share, /help. Saznajte više.


Kreirajte komandne fajlove

Kreirajte markdown fajlove u direktorijumu commands/ da definišete prilagođene komande. Kreiraj .opencode/commands/test.md:

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

Frontmatter definira svojstva komande. Sadržaj postaje predložak. Koristite komandu tako što ćete upisati / nakon čega slijedi naziv komande.

"/test"

Konfiguriši

Možete dodati prilagođene komande kroz OpenCode konfiguraciju ili kreiranjem markdown datoteka u direktoriju commands/.


JSON

Koristite opciju command u svom OpenCode config:

opencode.jsonc
{
"$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"
}
}
}

Sada možete pokrenuti ovu naredbu u TUI:

/test

Markdown

Također možete definirati komande koristeći markdown datoteke. Stavite ih u:

  • Globalno: ~/.config/opencode/commands/
  • Po projektu: .opencode/commands/
~/.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.

Ime markdown datoteke postaje ime naredbe. Na primjer, test.md vam omogućava da pokrenete:

/test

Prompt config

Promptovi za prilagođene komande podržavaju nekoliko posebnih čuvara mjesta i sintakse.


Argumenti

Proslijedite argumente naredbama koristeći čuvar mjesta $ARGUMENTS.

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

Pokrenite naredbu s argumentima:

/component Button

I $ARGUMENTS će biti zamijenjen sa Button. Također možete pristupiti pojedinačnim argumentima koristeći pozicione parametre:

  • $1 - Prvi argument
  • $2 - Drugi argument
  • $3 - Treći argument
  • I tako dalje…

Na primjer:

.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

Pokrenite naredbu:

/create-file config.json src "{ \"key\": \"value\" }"

Ovo zamjenjuje:

  • $1 do config.json
  • $2 do src
  • $3 do { "key": "value" }

Shell izlaz

Koristite !command da ubacite izlaz bash command u svoj prompt. Na primjer, da kreirate prilagođenu naredbu koja analizira pokrivenost testom:

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

Ili da vidite nedavne promjene:

.opencode/commands/review-changes.md
---
description: Review recent changes
---
Recent git commits:
!`git log --oneline -10`
Review these changes and suggest any improvements.

Naredbe se pokreću u korijenskom direktoriju vašeg projekta i njihov izlaz postaje dio prompta.


Reference fajlova

Uključite datoteke u svoju naredbu koristeći @ nakon čega slijedi naziv datoteke.

.opencode/commands/review-component.md
---
description: Review component
---
Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.

Sadržaj datoteke se automatski uključuje u prompt.


Opcije

Pogledajmo detaljno opcije konfiguracije.


Template

Opcija template definira prompt koji će biti poslan LLM-u kada se naredba izvrši.

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."
}
}
}

Ovo je obavezna opcija konfiguracije.


Opis

Koristite opciju description da pružite kratak opis onoga što naredba radi.

opencode.json
{
"command": {
"test": {
"description": "Run tests with coverage"
}
}
}

Ovo se prikazuje kao opis u TUI-u kada unesete naredbu.


Agent

Koristite agent konfiguraciju da opciono odredite koji agent treba da izvrši ovu naredbu. Ako je ovo subagent naredba će po defaultu pokrenuti pozivanje subagenta. Da onemogućite ovo ponašanje, postavite subtask na false.

opencode.json
{
"command": {
"review": {
"agent": "plan"
}
}
}

Ovo je opciona opcija konfiguracije. Ako nije navedeno, podrazumevano je vaš trenutni agent.


Subtask

Koristite subtask boolean da prisilite naredbu da pokrene subagent pozivanje. Ovo je korisno ako želite da naredba ne zagađuje vaš primarni kontekst i da će primorati agenta da djeluje kao subagent, čak i ako je mode postavljeno na primary u konfiguraciji agent.

opencode.json
{
"command": {
"analyze": {
"subtask": true
}
}
}

Ovo je opciona opcija konfiguracije.


Model

Koristite model konfiguraciju da nadjačate zadani model za ovu naredbu.

opencode.json
{
"command": {
"analyze": {
"model": "anthropic/claude-3-5-sonnet-20241022"
}
}
}

Ovo je opciona opcija konfiguracije.


Ugrađene

opencode uključuje nekoliko ugrađenih naredbi kao što su /init, /undo, /redo, /share, /help; saznaj više.

Ako definirate prilagođenu naredbu s istim imenom, ona će nadjačati ugrađenu naredbu.