Comandos
Comandos personalizados permitem que você especifique um prompt que deseja executar quando esse comando for executado no TUI.
/my-commandComandos personalizados são adicionais aos comandos integrados como /init, /undo, /redo, /help. Saiba mais.
Crie arquivos markdown no diretório commands/ para definir comandos personalizados.
Crie .opencode/commands/test.md:
---
description: Execute testes com cobertura
agent: build
model: anthropic/claude-sonnet-5-5
---
Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.
Concentre-se nos testes com falha e sugira correções.O frontmatter define as propriedades do comando. O conteúdo se torna o template.
Use o comando digitando / seguido pelo nome do comando.
"/test"Você pode adicionar comandos personalizados através da configuração do opencode ou criando arquivos markdown no diretório commands/.
Use a opção command na sua configuração do opencode:
{
"$schema": "https://opencode.ai/config.json",
"command": {
// Isso se torna o nome do comando
"test": {
// Este é o prompt que será enviado ao LLM
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes com falha e sugira correções.",
// Isso é exibido como a descrição no TUI
"description": "Execute testes com cobertura",
"agent": "build",
"model": "anthropic/claude-sonnet-5-5"
}
}
}Agora você pode executar este comando no TUI:
/testVocê também pode definir comandos usando arquivos markdown. Coloque-os em:
- Global:
~/.config/opencode/commands/ - Por projeto:
.opencode/commands/
---
description: Execute testes com cobertura
agent: build
model: anthropic/claude-sonnet-5-5
---
Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.
Concentre-se nos testes com falha e sugira correções.O nome do arquivo markdown se torna o nome do comando. Por exemplo, test.md permite que você execute:
/testOs prompts para os comandos personalizados suportam vários espaços reservados e sintaxes especiais.
Passe argumentos para os comandos usando o espaço reservado $ARGUMENTS.
---
description: Crie um novo componente
---
Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript.
Inclua tipagem adequada e estrutura básica.Execute o comando com argumentos:
/component ButtonE $ARGUMENTS será substituído por Button.
Você também pode acessar argumentos individuais usando parâmetros posicionais:
$1- Primeiro argumento$2- Segundo argumento$3- Terceiro argumento- E assim por diante…
Por exemplo:
---
description: Crie um novo arquivo com conteúdo
---
Crie um arquivo chamado $1 no diretório $2
com o seguinte conteúdo: $3Execute o comando:
/create-file config.json src "{ \"key\": \"value\" }"Isso substitui:
$1porconfig.json$2porsrc$3por{ "key": "value" }
Use !command para injetar a saída do comando shell no seu prompt.
Por exemplo, para criar um comando personalizado que analisa a cobertura de testes:
---
description: Analise cobertura de testes
---
Aqui estão os resultados atuais dos testes:
!`npm test`
Com base nesses resultados, sugira melhorias para aumentar a cobertura.Ou para revisar alterações recentes:
---
description: Revise alterações recentes
---
Commits recentes do git:
!`git log --oneline -10`
Revise essas alterações e sugira quaisquer melhorias.Os comandos são executados no diretório raiz do seu projeto e sua saída se torna parte do prompt.
Inclua arquivos no seu comando usando @ seguido pelo nome do arquivo.
---
description: Revise componente
---
Revise o componente em @src/components/Button.tsx.
Verifique problemas de desempenho e sugira melhorias.O conteúdo do arquivo é incluído automaticamente no prompt.
Vamos analisar as opções de configuração em detalhes.
A opção template define o prompt que será enviado ao LLM quando o comando for executado.
{
"command": {
"test": {
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes com falha e sugira correções."
}
}
}Esta é uma opção de configuração obrigatória.
Use a opção description para fornecer uma breve descrição do que o comando faz.
{
"command": {
"test": {
"description": "Execute testes com cobertura"
}
}
}Isso é exibido como a descrição no TUI quando você digita o comando.
Use a configuração agent para especificar opcionalmente qual agente deve executar este comando.
Se este for um subagente, o comando acionará uma invocação de subagente por padrão.
Para desativar esse comportamento, defina subtask como false.
{
"command": {
"review": {
"agent": "plan"
}
}
}Esta é uma opção de configuração opcional. Se não especificado, o padrão é o seu agente atual.
Use o booleano subtask para forçar o comando a acionar uma invocação de subagente.
Isso é útil se você quiser que o comando não polua seu contexto principal e forçará o agente a agir como um subagente,
mesmo que mode esteja definido como primary na configuração do agente.
{
"command": {
"analyze": {
"subtask": true
}
}
}Esta é uma opção de configuração opcional.
Use a configuração model para substituir o modelo padrão para este comando.
{
"command": {
"analyze": {
"model": "anthropic/claude-sonnet-5-5"
}
}
}Esta é uma opção de configuração opcional.
opencode inclui vários comandos integrados como /init, /undo, /redo, /help; saiba mais.
Se você definir um comando personalizado com o mesmo nome, ele substituirá o comando integrado.