Slash commands
Cria slash commands personalizados para automatizar fluxos de trabalho e padronizar as práticas da equipa.
Para começar, escreve / no Bob Shell para ver todos os comandos disponíveis, ou cria os teus próprios adicionando um ficheiro markdown a .bob/commands/ ou ~/.bob/commands/.
Comandos integrados
Bob Shell inclui os seguintes slash commands integrados:
| Comando | Aliases | Descrição |
|---|---|---|
/help | Mostrar todos os slash commands disponíveis | |
/clear | Limpar o ecrã e reiniciar o histórico de conversa | |
/condense | Condensar inteligentemente a janela de contexto para libertar espaço | |
/copy | Copiar um item do histórico de conversa para a área de transferência | |
/mode | Mudar o modo ativo (abre um seletor) | |
/resume | Navegar e retomar uma conversa anterior | |
/settings | Ver e editar as definições do Bob Shell | |
/mcp | Gerir servidores MCP configurados | |
/manage-secrets | Gerir secrets usados nas configurações de servidores MCP | |
/skills | Inserir uma referência de skill no prompt | |
/init | Inicializar Bob no workspace atual | |
/status | /info | Ver o estado da sessão, utilização e informações de versão |
/team | Selecionar uma equipa | |
/logs | Abrir o último ficheiro de log com o visualizador do sistema | |
/docs | Abrir a documentação do Bob Shell no teu browser | |
/bug | Submeter um relatório de bug | |
/exit | /quit, /close | Sair da CLI |
Subcomandos /manage-secrets
Os secrets permitem-te guardar valores sensíveis (como API keys) e referenciá-los nas configurações de servidores MCP sem os codificar diretamente.
| Subcomando | Utilização | Descrição |
|---|---|---|
set | /manage-secrets set KEY VALUE | Guardar um valor de secret |
list | /manage-secrets list | Listar todas as chaves de secrets guardadas |
rm | /manage-secrets rm KEY | Remover um secret guardado |
Os secrets são guardados encriptados em ~/.bob/settings/ e podem ser referenciados nas configurações de servidores MCP usando a sintaxe ${KEY}.
Por que usar slash commands?
Os slash commands oferecem vários benefícios principais:
- Automação de fluxos de trabalho: Transforma processos complexos de múltiplos passos em comandos únicos
- Padronização da equipa: Partilha comandos entre a tua equipa para práticas consistentes
- Preservação do contexto: Inclui contexto específico do projeto em cada comando
- Acesso rápido: Pesquisa fuzzy e autocomplete para descoberta instantânea de comandos
Como funcionam os slash commands
Quando escreves / no Bob Shell, aparece um menu com todos os comandos disponíveis. Estes comandos provêm de duas fontes:
| Tipo de comando | Fonte | Finalidade |
|---|---|---|
| Comandos de fluxo de trabalho personalizados | .bob/commands/ ou ~/.bob/commands/ | Automação criada pelo utilizador para tarefas específicas |
| Comandos de modo | Modos integrados e personalizados | Mudar o contexto operacional do Bob |
Criar comandos personalizados
Os comandos personalizados estendem as funcionalidades do Bob adicionando ficheiros markdown a diretórios específicos:
| Localização | Âmbito | Caminho |
|---|---|---|
| Específico do projeto | Disponível apenas no projeto atual | .bob/commands/ na raiz do teu workspace |
| Global | Disponível em todos os projetos | ~/.bob/commands/ no teu diretório home |
O nome do ficheiro torna-se o nome do comando. Por exemplo:
.bob/commands/
├── review.md → /review
├── test-api.md → /test-api
└── deploy-check.md → /deploy-checkProcessamento do nome do comando
Ao criar comandos através da UI, Bob Shell processa automaticamente os nomes dos comandos:
- Converte para minúsculas
- Substitui espaços por hífenes
- Remove caracteres especiais
- Remove hífenes no início e no fim
Exemplo: "My Cool Command!" torna-se my-cool-command
Formato básico do comando
Cria um comando simples adicionando um ficheiro markdown:
Help me review this code for security issues and suggest improvements.Comando avançado com frontmatter
Adiciona metadados usando frontmatter para funcionalidade melhorada:
---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.Campos do frontmatter
| Campo | Finalidade | Exemplo |
|---|---|---|
description | Aparece no menu de comandos | "Create a new API endpoint" |
argument-hint | Mostra os argumentos esperados | "<endpoint-name> <http-method>" |
Diálogo de aprovação de tools
Quando Bob Shell solicita usar uma tool, aparece um diálogo de aprovação. O diálogo disponibiliza as seguintes opções:
| Opção | Descrição |
|---|---|
| Approve Once | Permitir esta chamada de tool específica. Serás solicitado novamente para chamadas futuras. |
Approve <group> tools for task | Permitir todas as tools no mesmo grupo de tools para o resto da tarefa. Não aparece para tools MCP. |
| Always Allow Command for task | Permitir um comando shell específico para o resto da tarefa. |
| Reject | Recusar a chamada de tool. Bob Shell não prossegue com a ação. |
Também podes adicionar uma nota opcional ao aprovar ou recusar uma chamada de tool. A nota é incluída no contexto da conversa para que Bob Shell possa ajustar o seu comportamento em conformidade.
Para interromper uma resposta em transmissão antes de Bob Shell terminar, prime Esc.
Gestão de comandos no Bob Shell
Bob Shell suporta os mesmos slash commands que Bob IDE. Embora Bob Shell não forneça uma UI dedicada para gerir comandos, podes:
- Criar ficheiros de comandos manualmente no diretório
.bob/commands/do teu projeto ou~/.bob/commands/no teu diretório home - Editar ficheiros de comandos existentes com qualquer editor de texto
Usar slash commands
Escreve / no Bob Shell para ver um menu unificado contendo os seguintes tipos de comandos:
- Menu unificado: Comandos personalizados e comandos de troca de modo aparecem juntos
- Autocomplete: Começa a escrever para filtrar comandos (ex.:
/sammostrasample-command-name) - Pesquisa fuzzy: Encontra comandos mesmo com correspondências parciais
- Pré-visualização da descrição: Vê as descrições dos comandos no menu
- Indicadores visuais: Os comandos de modo distinguem-se dos comandos personalizados com ícones especiais
/mode code Switch to Code mode
/mode ask Switch to Ask mode
/review Review code for security issues
/api-endpoint <endpoint-name> <http-method>Hints de argumentos
Os hints de argumentos fornecem ajuda instantânea para slash commands, mostrando que tipo de informação deves fornecer quando um comando espera input adicional.
Quando escreves / para abrir o menu de comandos, os comandos que esperam argumentos mostram um hint cinzento claro ao lado deles. Este hint indica que tipo de argumento o comando está a esperar.
Por exemplo:
/mode <mode_slug>- O hint<mode_slug>indica que deves fornecer um nome de modo comocodeoudebug/api-endpoint <endpoint-name> <http-method>- Mostra que precisas tanto de um nome de endpoint como de um método HTTP
Após selecionar o comando, será inserido no input do chat seguido de um espaço. O hint não é inserido; é apenas um guia visual para te ajudar a saber o que escrever a seguir. Deves então escrever manualmente o argumento após o comando.
Adicionar hints de argumentos a comandos personalizados
Podes adicionar hints de argumentos aos teus comandos personalizados usando o campo argument-hint no frontmatter:
---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.Isto será apresentado como /api-endpoint <endpoint-name> <http-method> no menu de comandos.
Boas práticas para hints de argumentos
- Sê específico: Usa marcadores de posição descritivos como
<file-path>em vez de genéricos como<arg> - Mostra múltiplos argumentos: Se o teu comando precisar de múltiplos inputs, mostra-os todos:
<source> <destination> - Usa formato consistente: Envolve sempre os marcadores de posição em ângulos:
<placeholder> - Mantém-no conciso: Os hints devem ser breves e claros
Perguntas frequentes sobre argumentos
| Pergunta | Resposta |
|---|---|
| E se não fornecer o argumento? | O comando pode não funcionar como esperado, ou pode solicitar mais informações. O hint está lá para te ajudar a acertar à primeira. |
| Todos os comandos têm hints? | Não, apenas os comandos concebidos para receber argumentos terão hints. Comandos que funcionam sem input adicional não mostrarão hints. |
| Posso usar um comando sem substituir o hint? | O texto do hint (como <mode_slug>) precisa de ser substituído por valores reais. Deixar o texto do hint provavelmente fará com que o comando falhe ou se comporte de forma inesperada. |
Boas práticas
Nomenclatura de comandos
- Usa nomes descritivos orientados para ação
- Mantém os nomes concisos mas claros
- Usa hífenes para comandos com múltiplas palavras
- Evita nomes genéricos como
helpoutest - Nota: Os nomes são automaticamente slugificados (minúsculas, caracteres especiais removidos)
- A extensão
.mdé adicionada/removida automaticamente conforme necessário
Conteúdo do comando
- Começa com uma diretiva clara
- Usa formatos estruturados (listas, secções)
- Inclui requisitos específicos
- Referencia as convenções do projeto
- Mantém os comandos focados numa única tarefa
Organização
- Agrupa comandos relacionados em subdiretórios
- Usa padrões de nomenclatura consistentes
- Documenta comandos complexos
- Versiona os teus comandos com controlo de versões
- Partilha comandos da equipa no repositório do projeto
Resolução de problemas
Comandos que não aparecem
Se os teus comandos não estão a aparecer no menu:
- Verifica a localização do ficheiro: Garante que os ficheiros de comandos personalizados estão em
.bob/commands/ou~/.bob/commands/ - Verifica a extensão do ficheiro: Os comandos personalizados devem ser ficheiros
.md
Comando não encontrado
Quando um slash command não é encontrado, o LLM verá:
The slash command '/unknown-command' was not found. Please check the command name and try again.Conflitos de comandos
- Os comandos personalizados do projeto substituem os comandos personalizados globais com o mesmo nome
- Usa nomes únicos para evitar conflitos
- Ao criar nomes duplicados através da UI, são adicionados números (ex.:
new-command-1,new-command-2)
Sobre comandos de modo
O menu slash inclui comandos de troca de modo (como /mode code, /mode ask) que alteram fundamentalmente o modo operacional da IA — não se limitam a injetar texto, mas mudam todo o contexto da IA. Os modos personalizados que criares também aparecem como slash commands (ex.: um modo com slug reviewer torna-se /reviewer). Estes comandos de modo não podem ser substituídos por comandos de fluxo de trabalho personalizados.
Compatibilidade entre plataformas
Os slash commands funcionam de forma idêntica tanto no Bob Shell como no Bob IDE. Isto significa:
- Os comandos criados num ambiente podem ser usados no outro
- A mesma sintaxe e comportamento dos comandos aplica-se em ambos os ambientes
- Os comandos partilhados pela equipa funcionam de forma consistente independentemente da interface que os membros da equipa usam
MCP
Bob Shell suporta o Model Context Protocol (MCP), permitindo que você estenda as capacidades do Bob conectando-se a serviços e ferramentas externos. Este guia explica como configurar e usar servidores MCP com Bob Shell.
Modos
Os modos são personas especializadas que adaptam o comportamento do Bob às tuas tarefas específicas. Cada modo oferece diferentes capacidades e níveis de acesso para te ajudar a atingir objetivos específicos de forma mais eficiente.