Temas personalizados
O Jarvis Code CLI pode usar um esquema de cores embutido ou um arquivo JSON de tema personalizado. Arquivos personalizados ficam no diretório de temas e aparecem em /theme ao lado das opções embutidas.
Tokens de cor embutidos
Temas personalizados podem sobrescrever os tokens abaixo. As colunas dark e light mostram os valores embutidos; auto resolve para uma dessas paletas na inicialização e cai para dark quando a detecção do fundo do terminal não está disponível.
| Token | dark | light | O que controla |
|---|---|---|---|
primary | #FBBF24 | #B45309 | A cor mais usada. Links, código inline, o item selecionado em quase todo diálogo, a borda do editor em foco, selos de Plan e "running", spinners |
accent | #F59E0B | #D97706 | Destaque secundário. Prefixo ▶ de aprovação, caixa de device code, marcador de imagem, painéis de BTW e de fila, importação de registro |
text | #E0E0E0 | #1A1A1A | Texto do corpo. Corpo de diálogos, títulos de tarefas, rótulo de modelo no rodapé, títulos Markdown, marcadores de mensagens do assistente e de ferramenta, marcadores de lista |
textStrong | #F5F5F5 | #1A1A1A | Texto enfatizado / em negrito. Diálogos de entrada, mensagens de status |
textDim | #888888 | #454545 | Texto secundário, esmaecido. Raciocínio, dicas, descrições, tarefas concluídas, citações Markdown, barra de status do rodapé |
textMuted | #6B6B6B | #5F5F5F | Texto mais discreto. Contadores, informação de rolagem, descrições, URLs de link Markdown, bordas de bloco de código |
border | #5A5A5A | #737373 | Bordas de painel e de editor, linha horizontal do Markdown |
borderFocus | #E8A838 | #92660A | Borda de foco / atenção, hoje apenas o painel de aprovação |
success | #4EC87E | #0E7A38 | Estado de sucesso. ✓, "enabled", concluído |
warning | #E8A838 | #92660A | Estado de aviso. Selos de auto e yolo, marcadores de obsolescência, dica do Plan mode |
error | #E85454 | #B91C1C | Estado de erro. Mensagens de erro, saída de ferramenta com falha |
diffAdded | #4EC87E | #0E7A38 | Linhas adicionadas no diff |
diffRemoved | #E85454 | #B91C1C | Linhas removidas no diff |
diffAddedStrong | #7AD99B | #0E7A38 | Palavras alteradas dentro da linha no diff, adicionadas e em negrito |
diffRemovedStrong | #F08585 | #B91C1C | Palavras alteradas dentro da linha no diff, removidas e em negrito |
diffGutter | #6B6B6B | #737373 | Coluna de número de linha do diff |
diffMeta | #888888 | #5F5F5F | Cabeçalhos de meta e de hunk do diff |
roleUser | #FFCB6B | #9A4A00 | Marcador e texto de mensagem do usuário, nome de ativação de skill |
shellMode | #BD93F9 | #7C3AED | Prompt do shell mode (!), borda do editor e a linha ecoada $ command |
Usar a skill custom-theme
Você não precisa escrever o JSON à mão. Execute o comando de skill embutida /custom-theme [texto extra] para entrar no fluxo de tema personalizado; a skill pode escolher cores, gravar o arquivo em ~/.jarvis-code/themes/, validar os valores hexadecimais e explicar como aplicá-lo.
Exemplos de invocação:
/custom-theme Crie um tema escuro e quente com acentos âmbar./custom-theme Faça um tema claro baseado no Solarized, mas mantenha os erros bem visíveis./custom-theme Ajuste meu tema ember para os diffs terem mais contraste.
Depois de ativada, a skill normalmente pergunta se você quer uma base clara ou escura, qual clima ou paleta você prefere e se você tem cores exatas para incluir. Se você a usar para editar um tema existente, garanta que ela leia e faça backup do arquivo antes de sobrescrevê-lo.
Criar um tema
Adicione um arquivo .json ao diretório de temas:
~/.jarvis-code/themes/- ou
$JARVIS_CODE_HOME/themes/quando a variável de ambienteJARVIS_CODE_HOMEestiver definida
Crie o diretório se ele não existir. O nome do arquivo é o nome do tema: ember.json aparece em /theme como Custom: ember.
Um tema mínimo define apenas as cores que você quer mudar; as demais caem para a paleta base (dark por padrão):
{
"name": "ember",
"colors": {
"primary": "#83A598",
"accent": "#FE8019"
}
}Campos:
name(obrigatório): o identificador do tema.displayName(opcional): um nome legível por humanos.base(opcional): a paleta embutida da qual os tokens não especificados herdam —"dark"(padrão) ou"light". Use"base": "light"quando estiver criando um tema claro, para que os tokens que você deixar de fora continuem legíveis sobre fundo claro (caso contrário, eles caem para a paleta escura).colors(opcional): os tokens de cor a sobrescrever, cada um um valor hexadecimal de 6 dígitos (por exemplo,#FE8019).
Use os nomes de token de Tokens de cor embutidos. Qualquer token omitido cai para a paleta base escolhida, então temas parciais funcionam bem:
{
"name": "just-blue",
"colors": {
"primary": "#3B82F6",
"roleUser": "#3B82F6"
}
}Selecionar um tema
Duas formas:
O comando
/theme(recomendado): abre o seletor de temas, onde temas personalizados aparecem comoCustom: <filename>. O seletor relê o diretório de temas toda vez que abre, então um arquivo de tema recém-adicionado aparece sem reiniciar.tui.toml: definathemecom o nome do seu tema:toml# ~/.jarvis-code/tui.toml theme = "ember"
O que acontece em caso de erro
Temas personalizados foram desenhados para nunca atrapalhar:
- Um valor de cor inválido (não
#seguido de 6 dígitos hexadecimais): aquela entrada é ignorada silenciosamente e cai para a paleta base escolhida; as demais cores continuam valendo. - Um token não reconhecido: ignorado, sem efeito sobre as outras cores.
- Arquivo de tema personalizado ausente ou JSON malformado: cai silenciosamente para a paleta embutida
dark. Ele não tentaautode novo.
Editar o tema ativo
Se você editar o arquivo do tema atualmente ativo, a mudança não é recarregada automaticamente. Para aplicar as novas cores:
- execute
/reload-tui— ele recarrega otui.tomle reaplica o tema atual (inclusive relendo o arquivo do tema); ou - troque para outro tema em
/themee volte.
Nota
Reselecionar o mesmo tema em /theme não o recarrega (você recebe a mensagem "Theme unchanged"). Para recarregar mudanças no tema ativo, use um dos dois métodos acima.