
Gerenciando Múltiplas Sessões do Kiro CLI: Temas, Agentes e Estratégias de Recuperação
Aprenda a diferenciar visualmente janelas simultâneas do Kiro CLI usando KIRO_HOME para temas por projeto, agentes especializados como guardrails de domínio e o comando /rewind para recuperação.
Introdução
Este artigo foi inspirado pelo comentário de um leitor no meu post anterior sobre corrigir travamentos do terminal causados por personalizações do shell no Kiro CLI . Bryan descreveu uma situação com a qual me identifiquei imediatamente: executar múltiplas janelas do Kiro CLI simultaneamente e o risco constante de digitar um comando na janela errada ou perder o controle de qual sessão você está falando.
Eu sou exatamente esse tipo de usuário. Ao escrever minha resposta ao comentário dele, percebi que a resposta era longa demais para um comentário — então decidi expandir em um artigo completo apresentando diferentes estratégias que uso ou pretendo adotar.
As estratégias apresentadas aqui não são mutuamente exclusivas — funcionam melhor quando combinadas:
- Separação visual — Usar diferentes terminais ou IDEs para diferentes projetos
- Diferenciação de tema — Dar a cada sessão seu próprio esquema de cores via
KIRO_HOME - Guardrails de domínio — Usar agentes especializados que recusam perguntas fora do escopo
- Recuperação — Rebobinar a conversa quando um erro acontece
Estratégia 1: Usar Diferentes Terminais (A Separação Natural)
A forma mais simples de diferenciação visual não requer nenhuma configuração: usar diferentes aplicações de terminal para diferentes tipos de trabalho.
Isso é algo que muitos desenvolvedores já fazem instintivamente. Por exemplo, você pode usar o terminal integrado do Kiro IDE para seu projeto principal assistido por IA enquanto usa o IntelliJ IDEA para um backend Java e o VS Code para um frontend React. Cada IDE tem sua própria identidade visual — diferentes esquemas de cores, diferentes fontes, diferentes molduras de janela — tornando imediatamente óbvio em qual contexto você está.
Algumas separações naturais que funcionam bem: Kiro IDE, IntelliJ, VS Code, Cursor, Zed — cada um tem seu próprio terminal e cada um fornece um ambiente visual distinto.
O insight principal é que você não precisa forçar todas as suas sessões do Kiro CLI na mesma aplicação de terminal. Se seus projetos já vivem em diferentes IDEs, aproveite essa separação existente.
Esta abordagem requer zero configuração e fornece forte diferenciação através da identidade visual distinta de cada aplicação.
Estratégia 2: Customizando o Tema do Kiro com KIRO_HOME
Quando você precisa de múltiplas sessões do Kiro CLI dentro da mesma aplicação de terminal — por exemplo, quatro janelas de terminal no terminal nativo do seu sistema operacional — você precisa de diferenciação visual explícita. A questão é: onde essa customização deve ficar?
Um exemplo funcional completo está disponível em github.com/biagolini/AiToolsKiroHomeThemePerProject .
Tema Nativo do Kiro: Apenas Global
O Kiro CLI tem um comando
/theme que permite customizar cores (estilo do prompt, texto de resposta, cores de diff). No entanto, esse tema é salvo globalmente em ~/.kiro/settings/kiro_cli_theme.json e se aplica a todas as sessões simultaneamente. Por padrão, você não pode ter diferentes temas do Kiro por janela ou por workspace.A solução é a variável de ambiente
KIRO_HOME.A Solução KIRO_HOME
A documentação do Kiro CLI descreve
KIRO_HOME como uma forma de redirecionar o diretório global ~/.kiro para um local diferente. Quando definido, agentes, prompts, skills, steering, configurações e sessões são todos resolvidos contra KIRO_HOME. Isso significa que você pode ter perfis Kiro completamente independentes — incluindo diferentes temas — para cada projeto.Como Funciona
- Crie um diretório
.kiro-homeseparado para cada projeto - Configure um tema diferente em cada um
- Inicie o Kiro CLI com
KIRO_HOMEapontando para o diretório do projeto
Configuração Passo a Passo
Crie os diretórios de tema para dois projetos:
1
2
mkdir -p ~/projects/site/.kiro-home/settings
mkdir -p ~/projects/app/.kiro-home/settings
Configure um tema diferente para cada. Projeto A (prompt roxo, base escura):
1
2
3
4
5
6
7
// ~/projects/site/.kiro-home/settings/kiro_cli_theme.json
{
"promptPreset": "purple",
"responsePreset": "light",
"diffPreset": "default",
"baseTheme": "dark"
}
Projeto B (prompt oceano, base clara):
1
2
3
4
5
6
7
// ~/projects/app/.kiro-home/settings/kiro_cli_theme.json
{
"promptPreset": "ocean",
"responsePreset": "dark",
"diffPreset": "default",
"baseTheme": "light"
}
Valores disponíveis para
promptPreset: default, purple, ocean, forest, paperValores disponíveis para
baseTheme: dark, lightIniciando com KIRO_HOME
Crie aliases no shell que definem
KIRO_HOME antes de iniciar:1
2
3
# Adicione ao ~/.zshrc
alias kiro-site='KIRO_HOME=~/projects/site/.kiro-home kiro-cli chat'
alias kiro-app='KIRO_HOME=~/projects/app/.kiro-home kiro-cli chat'
Ou crie um script de lançamento dentro de cada projeto:
1
2
3
export KIRO_HOME="$(cd "$(dirname "$0")/.kiro-home" && pwd)"
kiro-cli chat
Agora quando você abre dois terminais lado a lado, cada sessão tem sua própria identidade visual — diferentes cores de prompt, diferente tema base — tornando imediatamente óbvio com qual projeto você está falando.
Para verificar que funciona, envie a mesma mensagem em ambas as janelas e compare a saída visual:
1
Explain in one sentence what KIRO_HOME does.
O conteúdo da resposta será o mesmo, mas a cor do prompt e o tema base serão visivelmente diferentes entre as duas sessões.

Demonstração de duas sessões do Kiro CLI executando simultaneamente com temas diferentes configurados via variável de ambiente KIRO_HOME, comprovando que cada sessão pode ter sua própria identidade visual
O Que o KIRO_HOME Afeta
Quando você define
KIRO_HOME, os seguintes caminhos se movem com ele:settings/kiro_cli_theme.json— o tema (nosso objetivo aqui)settings/cli.json— configurações do CLIagents/— configurações de agentes customizadossteering/— arquivos de steering globaisprompts/— prompts globaissessions/— sessões de chat salvas
Isso significa que cada projeto recebe seu próprio ambiente Kiro isolado. Sessões de um projeto não aparecerão no seletor de sessões do outro, e cada um pode ter diferentes agentes e arquivos de steering.
Importante: Diretórios
.kiro/ locais do workspace (dentro da pasta do seu projeto) não são afetados pelo KIRO_HOME. Eles continuam funcionando como configuração de nível de projeto independentemente de para onde KIRO_HOME aponta.Estratégia 3: Agentes Especializados por Projeto
Outra camada de diferenciação é atribuir um agente especializado a cada projeto. Quando um agente tem um domínio estrito, ele recusará perguntas fora do tema — agindo como um guardrail que imediatamente indica se você enviou uma mensagem para a janela errada.
Um exemplo funcional completo está disponível em github.com/biagolini/AiToolsKiroSpecializedAgents .
Como Funciona
O Kiro CLI suporta configuração de agentes no nível do workspace. Ao colocar arquivos de agente em
.kiro/agents/ dentro do diretório do seu projeto, cada projeto recebe seu próprio assistente especializado.Por exemplo, você pode ter um agente de infraestrutura que só responde perguntas sobre AWS e um agente de culinária que só responde perguntas sobre comida. Se você acidentalmente pedir ao agente de infra uma receita de cookies, ele recusará — tornando o erro imediatamente óbvio.
Configurando Agentes Especializados
Crie
.kiro/agents/ no diretório do seu projeto com uma definição de agente:1
2
3
4
5
6
7
8
// .kiro/agents/infra-agent.json
{
"name": "infra-agent",
"description": "AWS Infrastructure specialist.",
"prompt": "You are an AWS Infrastructure specialist. You only answer questions about AWS infrastructure and cloud architecture. If a user asks about anything unrelated, politely decline and remind them that you are an infrastructure specialist.",
"tools": ["*"],
"allowedTools": ["code", "glob", "grep", "read", "web_fetch", "web_search"]
}
Depois inicie com:
1
kiro-cli chat --agent infra-agent
Testando o Guardrail
Abra dois terminais lado a lado no mesmo diretório do projeto e inicie um agente diferente em cada:
Terminal 1:
1
kiro-cli chat --agent cooking-agent
Terminal 2:
1
kiro-cli chat --agent infra-agent
Envie a mesma mensagem para ambos:
1
Give me a recipe for chocolate chip cookies.
O agente de culinária fornecerá a receita com prazer, enquanto o agente de infra recusará e lembrará que ele só lida com infraestrutura AWS.

Teste de guardrail com agentes especializados - a mesma pergunta sobre receita de cookies é enviada para ambos os agentes, demonstrando como o agente fora do seu domínio recusa educadamente e indica o erro ao usuário
Estratégia 4: Recuperando de uma Mensagem na Janela Errada (O Comando /rewind)
Mesmo com diferenciação visual perfeita, erros acontecem. Eventualmente você enviará uma mensagem para a sessão errada do Kiro CLI. Quando isso acontecer, o Kiro tem um mecanismo de recuperação nativo: o comando
/rewind.Como o /rewind Funciona
O comando
/rewind permite voltar a um ponto anterior da sua conversa e criar um fork a partir dali — similar a editar uma mensagem já enviada em um chat de IA via web para iniciar uma nova ramificação.1
/rewind
Isso abre um seletor mostrando todas as suas mensagens anteriores na sessão atual. Cada entrada mostra:
- Uma prévia da sua mensagem
- O uso da janela de contexto naquele ponto (como porcentagem)
Selecione o turno para o qual deseja voltar, e o Kiro cria uma nova sessão contendo apenas o histórico até aquele ponto. Você continua dali como se a mensagem errada nunca tivesse acontecido.
Exemplo: Recuperando de uma Mensagem na Janela Errada
Imagine que você está trabalhando em um projeto de arquitetura AWS e envia estas mensagens em sequência:
1
What is the best way to design a multi-region failover strategy with Route 53?
1
How should I configure the health checks to trigger automatic failover?
Então você acidentalmente digita uma mensagem destinada a uma janela completamente diferente:
1
Give me a recipe for chocolate chip cookies.
A IA responderá sobre cookies no contexto do seu projeto AWS — claramente errado. Para recuperar:
- Digite
/rewind - O seletor mostra suas mensagens anteriores — selecione "How should I configure the health checks to trigger automatic failover?"
- Uma nova sessão é criada naquele ponto, como se a mensagem sobre cookies nunca tivesse existido
- Continue com sua próxima pergunta real sobre a arquitetura
A sessão original (com a mensagem sobre cookies) é preservada — você pode acessá-la depois com
/chat load se necessário.
O picker do comando /rewind permite selecionar um ponto anterior da conversa para criar um fork, útil para recuperar de uma mensagem enviada acidentalmente na janela errada
Como se Compara a Chats de IA via Web
Se você já usou chats de IA via web que permitem editar uma mensagem já enviada e ramificar a conversa a partir daquele ponto, o
/rewind alcança o mesmo resultado — mas em vez de editar no lugar, ele cria uma nova sessão bifurcada a partir do turno selecionado. A sessão original permanece intocada e acessível via /chat load.Quando o /rewind É Mais Útil
- Você enviou uma mensagem para a sessão do projeto errado
- A IA seguiu um caminho errado e você quer tentar uma abordagem diferente
- Você quer explorar uma solução alternativa sem perder seu progresso atual
- Uma conversa saiu dos trilhos e você quer recuperar de um ponto bom conhecido
Meu Setup Diário
No meu dia-a-dia como arquiteto cloud, gerencio infraestrutura de múltiplos clientes. Cada cliente tem seu próprio quadro kanban, e cada card representa uma tarefa — configurações de VPN, regras de WAF, pipelines CI/CD, auditorias de segurança, migrações de banco de dados, investigações de incidentes, e assim por diante.
O que tipicamente acontece é: eu abro uma sessão do Kiro CLI para trabalhar em uma tarefa do Cliente A, então encontro um bloqueio — esperando o cliente responder, esperando uma propagação de DNS, esperando uma aprovação. Eu fecho a sessão e passo para o Cliente B em um diretório diferente. Quando o Cliente A responde, volto àquele diretório e retomo com
kiro-cli chat --resume-picker, que funciona muito bem já que as sessões são escopadas por diretório.No entanto, isso pode falhar — especialmente quando alguém liga desesperadamente sobre um problema em produção enquanto você está no meio de outra coisa. Naquele momento, você pode deixar um terminal aberto em segundo plano sem fechar a sessão adequadamente, abrir um novo para a tarefa urgente, e no final do dia você tem sessões de diferentes contextos lado a lado sem nenhuma distinção visual entre elas. É aí que os erros acontecem.
Aqui está o que eu atualmente uso para manter as coisas organizadas:
- Diferentes IDEs para diferentes tipos de projeto (VS Code, Kiro IDE — separação natural)
- Agentes especializados configurados por contexto de cliente (infraestrutura AWS, segurança, etc.)
- Sem Oh-My-Zsh dentro do Kiro (carregamento condicional do meu artigo anterior )
/rewindquando inevitavelmente cometo um erro
A estratégia do
KIRO_HOME para temas por projeto é algo que descobri enquanto escrevia este artigo — e pretendo adotar daqui em diante. Ter um esquema de cores diferente por cliente tornaria imediatamente óbvio em qual contexto estou quando retorno a uma sessão após uma pausa.Referências
- Documentação do Kiro CLI Chat — Documentação oficial para sessões do Kiro CLI
- Corrigindo Travamentos Intermitentes no Terminal do Kiro CLI Causados por Personalizações do Shell — Artigo anterior sobre interferência do Oh-My-Zsh
- Depurando Travamentos do Terminal no Kiro CLI Causados por Arquivos Binários — Artigo anterior sobre
.kiroignore
Agradecimentos
Obrigado a Bryan Chasko pelo comentário que inspirou este artigo. Sua pergunta me levou a explorar soluções que eu não havia considerado antes — incluindo a abordagem com
KIRO_HOME que descobri enquanto pesquisava para este guia.Mantenha-se Conectado
Se este guia foi útil e você quer aprender mais sobre produtividade no terminal, ferramentas de desenvolvimento nativas de IA e otimização de fluxo de trabalho para desenvolvedores, siga o autor para conteúdos e tutoriais futuros:
- LinkedIn: https://www.linkedin.com/in/biagolini
- Medium: https://medium.com/@biagolini
- GitHub: https://github.com/biagolini
- YouTube (PT-BR): https://www.youtube.com/@BiagoliniTech
Fique ligado para mais tutoriais práticos e soluções para desafios de arquitetura e segurança na nuvem.
Boas construções na nuvem!
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article