--- title: Komande description: 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. ```bash frame="none" /my-command ``` Prilagođene komande su dodatak ugrađenim komandama kao što su `/init`, `/undo`, `/redo`, `/share`, `/help`. [Saznajte više](/docs/tui#commands). --- ## Kreirajte komandne fajlove Kreirajte markdown fajlove u direktorijumu `commands/` da definišete prilagođene komande. Kreiraj `.opencode/commands/test.md`: ```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. ``` Frontmatter definira svojstva komande. Sadržaj postaje predložak. Koristite komandu tako što ćete upisati `/` nakon čega slijedi naziv komande. ```bash frame="none" "/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](/docs/config): ```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" } } } ``` Sada možete pokrenuti ovu naredbu u TUI: ```bash frame="none" /test ``` --- ### Markdown Također možete definirati komande koristeći markdown datoteke. Stavite ih u: - Globalno: `~/.config/opencode/commands/` - Po projektu: `.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. ``` Ime markdown datoteke postaje ime naredbe. Na primjer, `test.md` vam omogućava da pokrenete: ```bash frame="none" /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`. ```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. ``` Pokrenite naredbu s argumentima: ```bash frame="none" /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: ```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 ``` Pokrenite naredbu: ```bash frame="none" /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](/docs/tui#bash-commands) u svoj prompt. Na primjer, da kreirate prilagođenu naredbu koja analizira pokrivenost testom: ```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. ``` Ili da vidite nedavne promjene: ```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. ``` 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. ```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. ``` 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. ```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." } } } ``` Ovo je **obavezna** opcija konfiguracije. --- ### Opis Koristite opciju `description` da pružite kratak opis onoga što naredba radi. ```json title="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](/docs/agents) treba da izvrši ovu naredbu. Ako je ovo [subagent](/docs/agents/#subagents) naredba će po defaultu pokrenuti pozivanje subagenta. Da onemogućite ovo ponašanje, postavite `subtask` na `false`. ```json title="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](/docs/agents/#subagents) 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](/docs/agents). ```json title="opencode.json" { "command": { "analyze": { "subtask": true } } } ``` Ovo je **opciona** opcija konfiguracije. --- ### Model Koristite `model` konfiguraciju da nadjačate zadani model za ovu naredbu. ```json title="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](/docs/tui#commands). :::note Prilagođene komande mogu nadjačati ugrađene komande. ::: Ako definirate prilagođenu naredbu s istim imenom, ona će nadjačati ugrađenu naredbu.