| --- |
| title: Kommandoer |
| description: Opret brugerdefinerede kommandoer til gentagne opgaver. |
| --- |
| |
| Brugerdefinerede kommandoer giver mulighed for at angive en prompt, du vil køre, når denne kommando udføres i TUI. |
|
|
| ```bash frame="none" |
| /my-command |
| ``` |
|
|
| Brugerdefinerede kommandoer er ud over de indbyggede kommandoer som `/init`, `/undo`, `/redo`, `/share`, `/help`. [Learn more](/docs/tui#commands). |
|
|
| --- |
| |
| |
|
|
| Opret markdown-filer i mappen `commands/` for at definere brugerdefinerede kommandoer. |
|
|
| Opret `.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 definerer kommandoegenskaber. Indholdet bliver skabelonen. |
|
|
| Brug kommandoen ved at skrive `/` efterfulgt af kommandonavnet. |
|
|
| ```bash frame="none" |
| "/test" |
| ``` |
|
|
| --- |
| |
| |
|
|
| Du kan tilføje brugerdefinerede kommandoer gennem OpenCode-konfigurationen eller ved at oprette markdown-filer i `commands/`-mappen. |
|
|
| --- |
| |
| |
|
|
| Brug indstillingerne `command` i din 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" |
| } |
| } |
| } |
| ``` |
|
|
| Nu kan du køre denne kommando i TUI: |
|
|
| ```bash frame="none" |
| /test |
| ``` |
|
|
| --- |
| |
| |
|
|
| Du kan også definere kommandoer ved hjælp af markdown-filer. Placer dem i: |
|
|
| - Globalt: `~/.config/opencode/commands/` |
| - Pr. projekt: `.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-filnavnet bliver kommandonavnet. For eksempel lader `test.md` |
| du løber: |
|
|
| ```bash frame="none" |
| /test |
| ``` |
|
|
| --- |
| |
| |
|
|
| Spørgsmålene til de brugerdefinerede kommandoer understøtter flere specielle pladsholdere og syntaks. |
|
|
| --- |
| |
| |
|
|
| Send argumenter til kommandoer ved hjælp af pladsholderen `$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. |
| ``` |
|
|
| Kør kommandoen med argumenter: |
|
|
| ```bash frame="none" |
| /component Button |
| ``` |
|
|
| Og `$ARGUMENTS` vil blive erstattet med `Button`. |
|
|
| Du kan også få adgang til individuelle argumenter ved hjælp af positionelle parametre: |
|
|
| - `$1` - Første argument |
| - `$2` - Andet argument |
| - `$3` - Tredje argument |
| - Og så videre... |
|
|
| For eksempel: |
|
|
| ```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 |
| ``` |
|
|
| Kør kommandoen: |
|
|
| ```bash frame="none" |
| /create-file config.json src "{ \"key\": \"value\" }" |
| ``` |
|
|
| Dette erstatter: |
|
|
| - `$1` med `config.json` |
| - `$2` med `src` |
| - `$3` med `{ "key": "value" }` |
|
|
| --- |
| |
| |
|
|
| Brug _!`command`_ til at injicere [bash command](/docs/tui#bash-commands) output i din prompt. |
|
|
| For eksempel, for at oprette en brugerdefineret kommando, der analyserer testdækning: |
|
|
| ```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. |
| ``` |
|
|
| Eller for at gennemgå de seneste ændringer: |
|
|
| ```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. |
| ``` |
|
|
| Kommandoer kører i dit projekts rodmappe, og deres output bliver en del af prompten. |
|
|
| --- |
| |
| |
|
|
| Inkluder filer i din kommando ved hjælp af `@` efterfulgt af filnavnet. |
|
|
| ```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. |
| ``` |
|
|
| Filindholdet bliver automatisk integreret i prompten. |
|
|
| --- |
| |
| |
|
|
| Lad os se nærmere på konfigurationsmulighederne. |
|
|
| --- |
| |
| |
|
|
| Indstillingen `template` definerer den prompt, der sendes til LLM, når kommandoen udføres. |
|
|
| ```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." |
| } |
| } |
| } |
| ``` |
|
|
| Dette er en **påkrævet** konfigurationsindstilling. |
|
|
| --- |
| |
| |
|
|
| Brug indstillingen `description` til at give en kort beskrivelse af, hvad kommandoen gør. |
|
|
| ```json title="opencode.json" |
| { |
| "command": { |
| "test": { |
| "description": "Run tests with coverage" |
| } |
| } |
| } |
| ``` |
|
|
| Dette vises som beskrivelsen i TUI, når du indtaster kommandoen. |
|
|
| --- |
| |
| |
|
|
| Brug `agent`-konfigurationen til valgfrit at angive, hvilken [agent](/docs/agents) der skal udføre denne kommando. |
| Hvis dette er en [subagent](/docs/agents/#subagents), vil kommandoen som standard udløse en subagent påkaldelse. |
| For at deaktivere denne adfærd skal du indstille `subtask` til `false`. |
|
|
| ```json title="opencode.json" |
| { |
| "command": { |
| "review": { |
| "agent": "plan" |
| } |
| } |
| } |
| ``` |
|
|
| Dette er en **valgfri** konfigurationsindstilling. Hvis det ikke er angivet, er standarden din nuværende agent. |
|
|
| --- |
| |
| |
|
|
| Brug `subtask` boolean til at tvinge kommandoen til at udløse en [subagent](/docs/agents/#subagents) påkaldelse. |
| Dette er nyttigt, hvis du ønsker, at kommandoen ikke skal forurene din primære kontekst og vil **tvinge** agenten til at fungere som en underagent, |
| øjeblikkelig `mode` er sat til `primary` på [agent](/docs/agents) konfigurationen. |
|
|
| ```json title="opencode.json" |
| { |
| "command": { |
| "analyze": { |
| "subtask": true |
| } |
| } |
| } |
| ``` |
|
|
| Dette er en **valgfri** konfigurationsindstilling. |
|
|
| --- |
| |
| |
|
|
| Brug `model`-konfigurationen til at tilsidesætte standardmodellen for denne kommando. |
|
|
| ```json title="opencode.json" |
| { |
| "command": { |
| "analyze": { |
| "model": "anthropic/claude-3-5-sonnet-20241022" |
| } |
| } |
| } |
| ``` |
|
|
| Dette er en **valgfri** konfigurationsindstilling. |
|
|
| --- |
| |
| |
|
|
| opencode indeholder flere indbyggede kommandoer som `/init`, `/undo`, `/redo`, `/share`, `/help`; [learn more](/docs/tui#commands). |
|
|
| :::note |
| Brugerdefinerede kommandoer kan tilsidesætte indbyggede kommandoer. |
| ::: |
|
|
| Hvis du definerer en brugerdefineret kommando med samme navn, vil den tilsidesætte den indbyggede kommando. |
|
|