commands.mdx 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. ---
  2. title: Kommandoer
  3. description: Opret brugerdefinerede kommandoer til gentagne opgaver.
  4. ---
  5. Brugerdefinerede kommandoer giver mulighed for at angive en prompt, du vil køre, når denne kommando udføres i TUI.
  6. ```bash frame="none"
  7. /my-command
  8. ```
  9. Brugerdefinerede kommandoer er ud over de indbyggede kommandoer som `/init`, `/undo`, `/redo`, `/share`, `/help`. [Learn more](/docs/tui#commands).
  10. ---
  11. ## Oprettelse af kommandofiler
  12. Opret markdown-filer i mappen `commands/` for at definere brugerdefinerede kommandoer.
  13. Opret `.opencode/commands/test.md`:
  14. ```md title=".opencode/commands/test.md"
  15. ---
  16. description: Run tests with coverage
  17. agent: build
  18. model: anthropic/claude-3-5-sonnet-20241022
  19. ---
  20. Run the full test suite with coverage report and show any failures.
  21. Focus on the failing tests and suggest fixes.
  22. ```
  23. Frontmatter definerer kommandoegenskaber. Indholdet bliver skabelonen.
  24. Brug kommandoen ved at skrive `/` efterfulgt af kommandonavnet.
  25. ```bash frame="none"
  26. "/test"
  27. ```
  28. ---
  29. ## Konfiguration
  30. Du kan tilføje brugerdefinerede kommandoer gennem OpenCode-konfigurationen eller ved at oprette markdown-filer i `commands/`-mappen.
  31. ---
  32. ### JSON
  33. Brug indstillingerne `command` i din OpenCode [config](/docs/config):
  34. ```json title="opencode.jsonc" {4-12}
  35. {
  36. "$schema": "https://opencode.ai/config.json",
  37. "command": {
  38. // This becomes the name of the command
  39. "test": {
  40. // This is the prompt that will be sent to the LLM
  41. "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
  42. // This is shown as the description in the TUI
  43. "description": "Run tests with coverage",
  44. "agent": "build",
  45. "model": "anthropic/claude-3-5-sonnet-20241022"
  46. }
  47. }
  48. }
  49. ```
  50. Nu kan du køre denne kommando i TUI:
  51. ```bash frame="none"
  52. /test
  53. ```
  54. ---
  55. ### Markdown
  56. Du kan også definere kommandoer ved hjælp af markdown-filer. Placer dem i:
  57. - Globalt: `~/.config/opencode/commands/`
  58. - Pr. projekt: `.opencode/commands/`
  59. ```markdown title="~/.config/opencode/commands/test.md"
  60. ---
  61. description: Run tests with coverage
  62. agent: build
  63. model: anthropic/claude-3-5-sonnet-20241022
  64. ---
  65. Run the full test suite with coverage report and show any failures.
  66. Focus on the failing tests and suggest fixes.
  67. ```
  68. Markdown-filnavnet bliver kommandonavnet. For eksempel lader `test.md`
  69. du løber:
  70. ```bash frame="none"
  71. /test
  72. ```
  73. ---
  74. ## Prompt-konfiguration
  75. Spørgsmålene til de brugerdefinerede kommandoer understøtter flere specielle pladsholdere og syntaks.
  76. ---
  77. ### Argumenter
  78. Send argumenter til kommandoer ved hjælp af pladsholderen `$ARGUMENTS`.
  79. ```md title=".opencode/commands/component.md"
  80. ---
  81. description: Create a new component
  82. ---
  83. Create a new React component named $ARGUMENTS with TypeScript support.
  84. Include proper typing and basic structure.
  85. ```
  86. Kør kommandoen med argumenter:
  87. ```bash frame="none"
  88. /component Button
  89. ```
  90. Og `$ARGUMENTS` vil blive erstattet med `Button`.
  91. Du kan også få adgang til individuelle argumenter ved hjælp af positionelle parametre:
  92. - `$1` - Første argument
  93. - `$2` - Andet argument
  94. - `$3` - Tredje argument
  95. - Og så videre...
  96. For eksempel:
  97. ```md title=".opencode/commands/create-file.md"
  98. ---
  99. description: Create a new file with content
  100. ---
  101. Create a file named $1 in the directory $2
  102. with the following content: $3
  103. ```
  104. Kør kommandoen:
  105. ```bash frame="none"
  106. /create-file config.json src "{ \"key\": \"value\" }"
  107. ```
  108. Dette erstatter:
  109. - `$1` med `config.json`
  110. - `$2` med `src`
  111. - `$3` med `{ "key": "value" }`
  112. ---
  113. ### Shell-output
  114. Brug _!`command`_ til at injicere [bash command](/docs/tui#bash-commands) output i din prompt.
  115. For eksempel, for at oprette en brugerdefineret kommando, der analyserer testdækning:
  116. ```md title=".opencode/commands/analyze-coverage.md"
  117. ---
  118. description: Analyze test coverage
  119. ---
  120. Here are the current test results:
  121. !`npm test`
  122. Based on these results, suggest improvements to increase coverage.
  123. ```
  124. Eller for at gennemgå de seneste ændringer:
  125. ```md title=".opencode/commands/review-changes.md"
  126. ---
  127. description: Review recent changes
  128. ---
  129. Recent git commits:
  130. !`git log --oneline -10`
  131. Review these changes and suggest any improvements.
  132. ```
  133. Kommandoer kører i dit projekts rodmappe, og deres output bliver en del af prompten.
  134. ---
  135. ### Fil-referencer
  136. Inkluder filer i din kommando ved hjælp af `@` efterfulgt af filnavnet.
  137. ```md title=".opencode/commands/review-component.md"
  138. ---
  139. description: Review component
  140. ---
  141. Review the component in @src/components/Button.tsx.
  142. Check for performance issues and suggest improvements.
  143. ```
  144. Filindholdet bliver automatisk integreret i prompten.
  145. ---
  146. ## Indstillinger
  147. Lad os se nærmere på konfigurationsmulighederne.
  148. ---
  149. ### Skabelon (`template`)
  150. Indstillingen `template` definerer den prompt, der sendes til LLM, når kommandoen udføres.
  151. ```json title="opencode.json"
  152. {
  153. "command": {
  154. "test": {
  155. "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
  156. }
  157. }
  158. }
  159. ```
  160. Dette er en **påkrævet** konfigurationsindstilling.
  161. ---
  162. ### Beskrivelse (`description`)
  163. Brug indstillingen `description` til at give en kort beskrivelse af, hvad kommandoen gør.
  164. ```json title="opencode.json"
  165. {
  166. "command": {
  167. "test": {
  168. "description": "Run tests with coverage"
  169. }
  170. }
  171. }
  172. ```
  173. Dette vises som beskrivelsen i TUI, når du indtaster kommandoen.
  174. ---
  175. ### Agent
  176. Brug `agent`-konfigurationen til valgfrit at angive, hvilken [agent](/docs/agents) der skal udføre denne kommando.
  177. Hvis dette er en [subagent](/docs/agents/#subagents), vil kommandoen som standard udløse en subagent påkaldelse.
  178. For at deaktivere denne adfærd skal du indstille `subtask` til `false`.
  179. ```json title="opencode.json"
  180. {
  181. "command": {
  182. "review": {
  183. "agent": "plan"
  184. }
  185. }
  186. }
  187. ```
  188. Dette er en **valgfri** konfigurationsindstilling. Hvis det ikke er angivet, er standarden din nuværende agent.
  189. ---
  190. ### Underopgave (`subtask`)
  191. Brug `subtask` boolean til at tvinge kommandoen til at udløse en [subagent](/docs/agents/#subagents) påkaldelse.
  192. 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,
  193. øjeblikkelig `mode` er sat til `primary` på [agent](/docs/agents) konfigurationen.
  194. ```json title="opencode.json"
  195. {
  196. "command": {
  197. "analyze": {
  198. "subtask": true
  199. }
  200. }
  201. }
  202. ```
  203. Dette er en **valgfri** konfigurationsindstilling.
  204. ---
  205. ### Model
  206. Brug `model`-konfigurationen til at tilsidesætte standardmodellen for denne kommando.
  207. ```json title="opencode.json"
  208. {
  209. "command": {
  210. "analyze": {
  211. "model": "anthropic/claude-3-5-sonnet-20241022"
  212. }
  213. }
  214. }
  215. ```
  216. Dette er en **valgfri** konfigurationsindstilling.
  217. ---
  218. ## Indbyggede kommandoer
  219. opencode indeholder flere indbyggede kommandoer som `/init`, `/undo`, `/redo`, `/share`, `/help`; [learn more](/docs/tui#commands).
  220. :::note
  221. Brugerdefinerede kommandoer kan tilsidesætte indbyggede kommandoer.
  222. :::
  223. Hvis du definerer en brugerdefineret kommando med samme navn, vil den tilsidesætte den indbyggede kommando.