Herdr: o tmux preparado para agentes de IA

Durante muito tempo, utilizei o tmux para organizar meus terminais. Ele resolvia muito bem o problema de manter sessões abertas, dividir a tela e voltar ao trabalho sem perder o que estava executando. Ainda é uma ferramenta importante e continuo usando-a quando estou conectado a servidores ou preciso de um multiplexador tradicional.
Mas meu fluxo mudou depois que comecei a utilizar inteligência artificial por meio de agentes. Com o OpenCode, passei a abrir vários terminais, cada um com um agente realizando uma atividade diferente. Um agente podia analisar um projeto, outro investigar um problema de infraestrutura e um terceiro preparar uma alteração em outra base de código.
Foi nesse contexto que conheci o Herdr, em herdr.dev. Eu costumo descrevê-lo como um tmux preparado para IA. Tecnicamente, ele é um runtime que mantém terminais e agentes rodando, mas essa comparação explica rapidamente por que ele fez sentido para mim: ele preserva a ideia de sessões e painéis persistentes e acrescenta uma integração muito melhor com o estado dos agentes.
O problema de acompanhar vários agentes
Abrir vários terminais com o OpenCode é fácil. O problema começa quando eles ficam trabalhando ao mesmo tempo.
Se eu inicio uma tarefa em dois projetos, preciso alternar entre as janelas para saber se algo terminou, se apareceu um erro ou se o agente está esperando uma resposta. Um agente pode ter concluído o trabalho há alguns minutos, enquanto outro está bloqueado aguardando que eu confirme uma ação. Sem uma visão geral, é fácil deixar uma sessão parada sem perceber.
Com o tempo, eu acabava visitando cada terminal apenas para descobrir se havia alguma novidade. Isso interrompia o trabalho que eu estava fazendo e diminuía parte do ganho de executar tarefas em paralelo.
O Herdr resolve justamente essa parte da experiência.
Terminais preparados para agentes
O Herdr mantém terminais reais abertos em segundo plano. Os agentes continuam trabalhando mesmo quando não estou olhando diretamente para o painel. Posso fechar a tampa do notebook, perder a conexão ou sair da sessão e, quando voltar, os terminais continuam fazendo parte daquele ambiente persistente.
Isso já seria útil como uma evolução do meu uso do tmux. A diferença é que o Herdr entende que há um agente executando dentro de cada terminal. Ele consegue organizar os workspaces e mostrar o estado de cada agente na lateral: trabalhando, bloqueado, ocioso ou concluído.
Essa visão é muito mais adequada ao meu fluxo atual. Em vez de enxergar apenas uma coleção de sessões, consigo enxergar os projetos e os agentes que estão trabalhando neles.
Avisos quando preciso agir
O recurso de que mais gostei é a notificação de estado. O Herdr me avisa quando um agente terminou uma atividade ou quando precisa que eu libere, confirme ou verifique alguma coisa.
Isso muda bastante a forma de trabalhar. Posso colocar dois agentes para trabalhar e continuar uma tarefa em outro lugar. Quando um deles precisar de algo, recebo um aviso e decido se devo interromper o que estou fazendo ou terminar a etapa atual antes de responder.
Se preciso fazer algo a mais, não tem problema. Posso abrir outro workspace, entrar em outro projeto e iniciar um novo agente. O primeiro continua esperando a minha resposta, o segundo pode seguir processando e eu consigo começar uma terceira atividade sem perder o acompanhamento das anteriores.
Para mim, o valor não está em simplesmente abrir mais terminais. Está em conseguir trabalhar em paralelo sem transformar o acompanhamento de cada agente em uma tarefa manual por si só.
Workspaces e projetos separados
No Herdr, organizo os projetos em workspaces. Cada contexto fica separado, com seus próprios terminais, abas e agentes. Na barra lateral, consigo visualizar os workspaces e os agentes abertos e selecionar diretamente aquele que quero acompanhar.
Essa organização combina com a forma como passei a usar o OpenCode. Um workspace pode conter um agente explorando o código, outro implementando uma tarefa e outro aguardando minha decisão. Em outro workspace, posso estar analisando um servidor ou trabalhando em um projeto completamente diferente.
A separação ajuda a evitar um problema comum quando existem muitas sessões: executar um comando no terminal errado ou responder a um agente pensando que ele pertence a outro projeto. O nome do workspace e o estado do agente ficam sempre visíveis, então consigo confirmar o contexto antes de agir.
Compatibilidade com os atalhos do tmux
Outra característica importante foi a compatibilidade com os atalhos que eu já conhecia. O Herdr utiliza um prefixo semelhante ao tmux e, por padrão, o comando é iniciado com Ctrl+B.
Eu preferi configurar o prefixo do Herdr para Ctrl+A, conforme o atalho que eu já utilizava no tmux. A configuração ficou assim:
[keys]
prefix = "ctrl+a"Essa mudança parece pequena, mas faz diferença no uso diário. Não precisei reaprender todos os comandos para dividir painéis, trocar de janela ou navegar entre as sessões. Ao mesmo tempo, se estou conectado a um servidor remoto e preciso utilizar o tmux naquela máquina, a separação dos prefixos evita conflitos e deixa claro qual ferramenta deve receber o atalho.
O Herdr mantém a familiaridade do tmux sem ficar limitado à ideia de um multiplexador de terminais. Posso usar os atalhos que já conheço e, pela interface, também clicar nos painéis, workspaces e agentes.
Uma configuração simples de notificações
Além do prefixo, o Herdr permite configurar como as notificações aparecem. Um exemplo de notificação dentro da própria interface é:
[ui.toast]
delivery = "herdr"
delay_seconds = 1Também existem opções para enviar avisos ao terminal ou ao sistema operacional. Isso é especialmente interessante quando estou trabalhando de forma remota ou quando o Herdr está sendo executado em uma máquina diferente daquela em que estou acompanhando o trabalho.
Não preciso deixar todos os painéis visíveis o tempo inteiro. A notificação funciona como uma camada de atenção: ela me chama quando há uma mudança relevante e eu escolho quando abrir o workspace para continuar.
Herdr e OpenCode juntos
O Herdr não substitui o OpenCode e não tenta ser outro modelo de inteligência artificial. Ele cuida do ambiente em que os agentes rodam, enquanto o OpenCode cuida da interação com os projetos, dos arquivos, dos comandos e dos modelos que configurei.
Essa separação é o que torna a combinação interessante. Posso usar o OpenCode em vários terminais e escolher o provider ou modelo adequado para cada atividade. O Herdr mantém esses terminais organizados, acompanha o estado de cada agente e avisa quando preciso voltar a algum deles.
Também posso usar outros agentes compatíveis. O importante é que o trabalho continue sendo executado no terminal real, com as mesmas ferramentas e arquivos que eu utilizaria manualmente.
O que mudou no meu fluxo
Antes, eu abria uma sessão do tmux e entrava nela sempre que queria saber o que estava acontecendo. Agora, com o Herdr, começo uma atividade, acompanho o estado do agente pela lateral e deixo o trabalho seguir enquanto faço outra coisa.
Na prática, isso tornou mais natural trabalhar em dois projetos ao mesmo tempo. Posso deixar uma análise de infraestrutura em andamento, abrir um workspace de programação e iniciar uma tarefa com o OpenCode. Se um agente finalizar, recebo o aviso. Se outro ficar bloqueado, também sou informado.
Essa mudança não elimina a necessidade de revisar o que foi feito. Um aviso de conclusão não significa que a alteração está correta, e um agente bloqueado ainda precisa da minha decisão. O Herdr apenas reduz o esforço para descobrir que alguma coisa aconteceu.
Minha conclusão
Eu utilizava o tmux porque precisava manter sessões e terminais organizados. Depois que comecei a trabalhar com agentes de IA e a abrir vários terminais com o OpenCode, percebi que faltava uma camada para acompanhar o estado de cada atividade.
Foi isso que encontrei no Herdr. Ele mantém os terminais persistentes, organiza workspaces e agentes e me avisa quando um agente termina ou precisa de atenção. Posso colocar dois agentes para trabalhar, continuar em outro projeto e voltar apenas quando houver algo que dependa de mim.
O melhor é que não precisei abandonar os atalhos que já conhecia. Configurei o prefixo do Herdr de Ctrl+B para Ctrl+A, mantendo o hábito que eu tinha no tmux e evitando conflitos quando uso o tmux em um servidor remoto.
Para mim, o Herdr é mais do que outro multiplexador. É a camada de organização que estava faltando para transformar vários terminais com agentes em um fluxo de trabalho realmente acompanhável. O site oficial do Herdr e a documentação de configuração mostram os detalhes para quem quiser experimentar.