Skip to content

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.

TokendarklightO que controla
primary#FBBF24#B45309A 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#D97706Destaque 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#1A1A1ATexto 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#1A1A1ATexto enfatizado / em negrito. Diálogos de entrada, mensagens de status
textDim#888888#454545Texto secundário, esmaecido. Raciocínio, dicas, descrições, tarefas concluídas, citações Markdown, barra de status do rodapé
textMuted#6B6B6B#5F5F5FTexto mais discreto. Contadores, informação de rolagem, descrições, URLs de link Markdown, bordas de bloco de código
border#5A5A5A#737373Bordas de painel e de editor, linha horizontal do Markdown
borderFocus#E8A838#92660ABorda de foco / atenção, hoje apenas o painel de aprovação
success#4EC87E#0E7A38Estado de sucesso. , "enabled", concluído
warning#E8A838#92660AEstado de aviso. Selos de auto e yolo, marcadores de obsolescência, dica do Plan mode
error#E85454#B91C1CEstado de erro. Mensagens de erro, saída de ferramenta com falha
diffAdded#4EC87E#0E7A38Linhas adicionadas no diff
diffRemoved#E85454#B91C1CLinhas removidas no diff
diffAddedStrong#7AD99B#0E7A38Palavras alteradas dentro da linha no diff, adicionadas e em negrito
diffRemovedStrong#F08585#B91C1CPalavras alteradas dentro da linha no diff, removidas e em negrito
diffGutter#6B6B6B#737373Coluna de número de linha do diff
diffMeta#888888#5F5F5FCabeçalhos de meta e de hunk do diff
roleUser#FFCB6B#9A4A00Marcador e texto de mensagem do usuário, nome de ativação de skill
shellMode#BD93F9#7C3AEDPrompt 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 ambiente JARVIS_CODE_HOME estiver 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):

json
{
  "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:

json
{
  "name": "just-blue",
  "colors": {
    "primary": "#3B82F6",
    "roleUser": "#3B82F6"
  }
}

Selecionar um tema

Duas formas:

  1. O comando /theme (recomendado): abre o seletor de temas, onde temas personalizados aparecem como Custom: <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.

  2. tui.toml: defina theme com 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 tenta auto de 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 o tui.toml e reaplica o tema atual (inclusive relendo o arquivo do tema); ou
  • troque para outro tema em /theme e 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.