ibara
Dê aos agentes MCP seu próprio desktop, navegador e aplicativos nos computadores Omarchy que você possui.
Documentação
ibara
Dê aos seus agentes um computador que é seu.
O ibara dá aos seus agentes o uso de computadores nas máquinas Omarchy que você possui. Coloque um computador reserva para trabalhar: seu agente ganha sua própria área de trabalho, navegador e aplicativos, e você continua trabalhando no seu.
ibara.app · Documentação · Benchmarks · Roteiro

Cada computador que você adiciona aparece como uma imagem ao vivo em um console nos outros, onde você pode assisti-lo, enviar arquivos e assumir o controle. Seus agentes trabalham nas áreas de trabalho reais desses computadores, com o próprio cursor, enquanto você aprova o que importa e intervém quando quiser.
O ibara roda no Omarchy (Arch Linux com Hyprland). O Ubuntu 26.04 amd64 tem pacotes separados para Console autônomo e alvo GNOME; veja instalação e compatibilidade com Ubuntu. Seus computadores se conectam pela sua própria rede Tailscale. É gratuito e de código aberto.
Quer que seja configurado para você? A Cirlet oferece configuração e suporte pagos.
Instalação
Em um computador Omarchy, execute isto como você mesmo, não como root:
curl -fsSL https://github.com/MayberryDT/ibara/releases/latest/download/install | sh
O instalador baixa a versão mais recente e verifica sua assinatura e o digest de cada pacote. Ele instala 3 pacotes com pacman: ibara, e ibara-stream e ibara-view para Take Control. Depois, executa ibara setup, que pede sua senha uma vez e coloca a marca do ibara na sua barra.
Instale o ibara em cada computador que quiser usar, depois abra o console pela barra e escolha Add Computer. Seus próprios computadores na sua tailnet se adicionam em uma única etapa.
Para verificar uma versão manualmente antes de instalá-la, veja verificação de versão.

O que você pode fazer

- Veja todos os computadores de uma vez na parede da frota, com imagem ao vivo, quem está usando e o que está fazendo.
- Assista à tela de um computador, acompanhe as tarefas do agente passo a passo e leia o histórico em Activity.
- Envie arquivos arrastando-os para um computador e colete o que um agente fez para você.
- Assuma o controle de um computador em uma janela de visualização, com teclado, mouse e área de transferência, e depois devolva o controle.
- Deixe os agentes fazerem trabalho real em uma área de trabalho real: abrir aplicativos, clicar, digitar, salvar arquivos, preencher páginas da web e executar comandos.
- Aprove as etapas que importam antes que aconteçam: enviar, gastar, excluir e mudar acesso pedem confirmação por padrão.
- Compartilhe um computador com um amigo por uma hora, um dia, uma semana ou até você revogar, com um código de convite de uso único.
- Acorde, reinicie, bloqueie ou coloque um computador para dormir e aplique seu tema Omarchy a toda a frota.
- Atualize-se sobre o que aconteceu enquanto você estava fora, uma linha por computador.
Conecte qualquer agente
O ibara funciona com qualquer agente que possa usar servidores MCP, como Codex, Claude Code, opencode e omp. Não há nada para configurar manualmente. Abra o console, escolha Copy Prompt em Connect an Agent e cole o prompt no seu agente. Em um computador sem o console, ibara prompt imprime o mesmo prompt.
O prompt faz o agente fazer três coisas por conta própria, então o ibara nunca edita os arquivos de nenhum agente:
- adicionar
ibara mcpàs configurações MCP como um servidor de nível de usuário chamadoibara. Uma entrada alcança todos os computadores que você adicionou, incluindo os que você adicionar depois; - vincular a habilidade do ibara, que o pacote instala em
/usr/share/ibara/skills/ibara, à pasta de habilidades do agente. A habilidade diz quando usar o ibara e como trabalhar para que os resultados possam ser confiáveis, e ela é atualizada com o ibara; - adicionar um bloco curto marcado ao arquivo de instruções de nível de usuário (AGENTS.md, CLAUDE.md ou similar), para que toda sessão saiba que o ibara está lá e quando usá-lo.
O agente recebe 11 ferramentas, descritas em ferramentas do agente.
Compositors
O Hypoland também é suportado por meio de entrada de compositor opcional. O ibara o seleciona automaticamente no Hypoland, que não tem sistema de plugins. Captura de tela, leituras de acessibilidade, inicialização de aplicativos, cliques, texto de teclado US, atalhos, rolagem e arrastos dentro de uma janela funcionam sem o plugin Cua. Outros textos usam inserção por acessibilidade quando o aplicativo suporta. Esta rota tem segurança de entrada reduzida: ela verifica a geometria da janela antes da entrada, não pode aplicar as regras de superfície e popup do plugin e não pode detectar as teclas físicas de uma pessoa. O movimento do mouse interrompe a entrada entre etapas. As teclas do dispatcher exigem um teclado físico. O Doctor e o status do agente informam esses limites. Isso foi testado em uma área de trabalho Hypoland aninhada; hardware GPU antigo e Take Control no Hypoland ainda precisam de verificação.
No Hyprland padrão, o plugin continua sendo o padrão. Para selecionar o fallback quando
o plugin não estiver disponível, coloque isto em ~/.config/ibara/settings.toml:
[agents]
input_backend = "dispatchers"
Use "auto" para voltar à escolha normal do compositor, ou "plugin" para exigir
o plugin. Uma recusa do plugin nunca tenta novamente a entrada por meio de dispatchers.
Como funciona
flowchart LR
subgraph here["Your computer"]
agent["Your agent<br/>(Codex, Claude Code, …)"]
mcp["ibara mcp"]
console["ibara console<br/>(Omarchy bar plugin)"]
service["ibarad<br/>(console service)"]
viewer["ibara-view"]
agent -- "MCP over stdio" --> mcp
console -- "local socket" --> service
end
subgraph there["Another of your computers"]
entry["Agent entry<br/>(SSH on port 2222)"]
daemon["ibarad"]
journal[("Journal:<br/>tasks, approvals,<br/>access, history")]
cua["Cua driver and<br/>Hyprland plugin"]
stream["ibara-stream"]
desktop["Hyprland desktop"]
entry --> daemon
daemon --> journal
daemon --> cua --> desktop
daemon --> stream --> desktop
end
mcp -- "SSH over Tailscale" --> entry
service -- "SSH over Tailscale" --> entry
viewer -- "video stream,<br/>one-time ticket" --> stream
Cada computador executa o mesmo ibara, então cada computador é um par. Cada um executa ibarad, o serviço que possui sua área de trabalho para agentes: ele mantém um diário de cada tarefa, etapa, aprovação e mudança de acesso, e escreve cada etapa antes de executá-la, para que uma reinicialização nunca perca o controle do que aconteceu.
Agentes e consoles alcançam outro computador por meio de sua entrada de agente, um servidor SSH que escuta apenas em endereços Tailscale e aceita apenas as chaves dos computadores que você pareou. ibarad verifica cada chamada contra as regras de acesso desse computador e depois age por meio do driver do Cua, que lê aplicativos por acessibilidade e move o cursor do próprio agente, para que você possa ver onde ele está trabalhando. As páginas da web são lidas por uma pequena extensão de navegador que nunca clica ou digita por conta própria.
Quando você assume o controle, o computador pausa seus agentes e inicia ibara-stream. O ibara-view do seu console se conecta com um ticket que funciona uma vez, apenas para o seu visualizador.
Arquitetura explica cada parte em mais profundidade.
Modelo de segurança
O ibara dá a pessoas e agentes poder real sobre computadores reais, então o projetamos para ser claro sobre quem pode fazer o quê.

- Nada escuta na internet. A entrada do agente, o pareamento e o stream do Take Control escutam apenas nos endereços Tailscale deste computador. Se o firewall ufw estiver ativo, a configuração abre essas portas apenas na interface Tailscale.
- Adicionar um computador exige prova. O Tailscale diz ao ibara qual computador e qual login está pedindo. Seus próprios computadores se adicionam quando seu console no computador que pede atesta a solicitação. O computador de qualquer outra pessoa espera até que uma pessoa no seu computador aceite um código de 6 dígitos que ambas as telas mostram, ou traga um código de convite de uso único que você criou.
- Cada computador e cada agente tem suas próprias permissões: Watch, Files, Take Control, Agent Tasks e Administer. Cada uma é Allowed, Ask First ou Denied. O convite de um amigo nunca inclui Administer, e você pode mudar ou remover qualquer permissão na aba Access a qualquer momento.
- Agentes são nomeados. Um agente conectado é, por exemplo,
claude@your-laptop: o nome do cliente MCP, abreviado para agentes conhecidos como Codex e Claude Code, e o computador de onde veio, não uma chave anônima. - Etapas que importam pedem confirmação primeiro. Por padrão, leitura e mudanças comuns são permitidas, enquanto enviar, gastar, excluir e mudanças de acesso esperam uma pessoa aprovar exatamente essa etapa. Uma aprovação cobre apenas essa etapa e termina se o controle mudar de mãos. Você pode desligar a confirmação antes de envios, gastos e exclusões para agentes dos seus próprios computadores, para todos os computadores, um computador ou um agente; agentes de computadores de qualquer outra pessoa continuam pedindo, e mudanças de acesso sempre pedem.
- Você sempre pode assumir. Mover o mouse interrompe a entrada do agente imediatamente, e Take Control pausa todos os agentes até você devolver o controle. Hand Back permite que os agentes trabalhem novamente, a menos que você os tenha pausado, e nunca reinicia a tarefa de um agente por conta própria.
- Versões são assinadas. O instalador e
ibara updateverificam a assinatura da versão contra uma chave embutida no ibara, e o digest de cada pacote, antes que qualquer coisa seja instalada.
Aprovações protegem os efeitos que o ibara conhece ou que um agente declara. Um agente que pode executar comandos ou usar a área de trabalho não está em uma sandbox: dê acesso de agente apenas a computadores onde você deixaria esse agente trabalhar. Segurança e acesso tem os detalhes, e SECURITY.md diz como relatar uma vulnerabilidade.
Requisitos
- Omarchy em x86_64, com sua área de trabalho e barra Hyprland. O ibara depende dos comandos próprios do Omarchy para barra, temas e janelas flutuantes.
- Tailscale, conectado, em todos os computadores. A configuração diz como se não estiver.
cua-driver-bin0.28.2 ou mais novo, do repositório de pacotes do Omarchy. O pacman o instala com o ibara.- Google Chrome ou Chromium, se você quiser que os agentes usem páginas da web.
- Sem mouse ou monitor necessários nos computadores que os agentes usam. Agentes clicam e digitam em um computador sem mouse conectado, e um computador sem tela conectada ganha uma virtual.
- Cerca de 15 MB para baixar os 3 pacotes.
O ibara não precisa de Node ou Python em tempo de execução.

Números reais
Medimos o ibara em 2 computadores de teste: mini PCs ACEPC de cinco anos com processadores Intel Celeron J3455, executados a partir de um console em um deles. Cada resultado tem sua compilação e data, e o alvo que definimos onde definimos um. As falhas permanecem. As tabelas completas estão nos benchmarks e nos resultados de teste.

Agentes reais, 29 de setembro de 2026, no ibara 0.1.0-17. Sete configurações de agentes executaram as mesmas 12 tarefas desde o início limpo. Cada agente tinha apenas o servidor MCP do ibara, sua habilidade e sua nota nas instruções do agente, e o código-fonte do próprio projeto estava oculto dele. Passed significa que as verificações do próprio benchmark passaram.
| Agente e modelo | Passed |
|---|---|
| Claude Code, claude-opus-5-5 | 22 de 23 |
| Codex, gpt-6-astra | 22 de 23 |
| Codex, gpt-6-sol | 21 de 23 |
| Claude Code, claude-sonnet-5 | 18 de 23 |
| omp, grok-4.7 | 18 de 22 |
| Codex, deepseek-v4.1-flash | 17 de 21 |
| opencode, big-pickle (grátis) | 14 de 22 |
| Todas as execuções | 132 de 157 (84%) |
Das 25 falhas, 13 foram do ibara, 8 dos agentes e 4 da configuração do próprio benchmark. A tarefa mais fraca foi o gerenciador de arquivos (3 de 13): seu popup de renomear tomou o teclado e recusou toda entrada, o que causou 10 das 13 falhas do ibara. A 0.1.0-18 corrigiu isso, e uma nova execução focada de 5 tarefas passou 20 de 20 para Claude Code com claude-opus-5-5 e Codex com gpt-6-astra, sem falha do ibara. A execução parou com 99 execuções na fila não iniciadas, então os tamanhos de amostra são desiguais. O Google Gemini não foi testado.
Confiabilidade e velocidade. Gravado nos computadores de teste, na compilação nomeada em cada linha.
| O que medimos | Resultado |
|---|---|
| 100 tarefas de salvar um arquivo em sequência, na 0.1.0-9 | 99 passaram, com mediana de 12,6 a 12,9 segundos e sem desvio. A única falha foi um monitor reconectando no meio da digitação, o que o ibara relatou com honestidade |
| Dois agentes em cada um de dois computadores, na 0.1.0-9 | 60 de 60 tarefas iniciadas passaram, em 7 minutos. Não há fila, então um agente em espera aguardou até 107 segundos |
| 50 ciclos de Take Control e Hand Back, na 0.1.0-9 | Sem erros, sem teclas presas, nada deixado em execução |
| Take Control, desde a escolha até o visualizador na tela, na 0.1.0-9 (20 tentativas entre 2 computadores de teste em Wi-Fi) | Mediana de 8,2 segundos, de 8,1 a 10,5 segundos. O computador aceita um agente novamente 0,7 segundos após o Hand Back |
| 20 reinicializações do ibara no meio de uma tarefa, na 0.1.0-9 | Todos os resultados honestos, todos os aplicativos e seus textos sobreviveram, e os agentes voltaram em 6,5 a 9,2 segundos |
| 10 quedas de rede de 10 a 90 segundos, na 0.1.0-9 | Sem bloqueio. Cada chamada ou aguardou e executou uma vez, ou disse que pode ter executado |
| Cliques caem onde foram apontados, na 0.1.0-9 | 300 de 300 acertos na primeira tentativa, 0 pixels do centro, em botões de página no Chrome e em um aplicativo GTK 4 na escala 1 e 1,5. Um mouse estava conectado durante este teste |
| Agentes que se conectaram a partir do único prompt, na 0.1.0-8 | Codex, Claude Code, opencode e omp, com modelos de 3 provedores; 5 de 5 tarefas de acompanhamento concluídas |
| Observando uma área de trabalho estática na aba Screen, na 0.1.0-10 (60 segundos) | 24,5 kbit/s, contra 1,0 kbit/s sem observar; uma imagem completa cruza a rede apenas quando algo na tela muda |
| Instalação, primeiro uso, atualização, reversão e desinstalação em um contêiner limpo, na 0.1.0-7 | 79 de 79 verificações passaram, sem nenhum processo Node em nenhum momento |
| Um cursor na tela enquanto um agente trabalha, na 0.1.0-6 (6.349 quadros gravados) | Perdeu o alvo de exatamente um cursor em cada quadro: 6.256 quadros mostram exatamente um cursor; 78 mostram ambos no mesmo lugar, por até 0,67 segundos nas transferências; 15 mostram ambos separados ou nenhum. A correção foi lançada na 0.1.0, e não repetimos essa contagem em uma versão de lançamento |
| Arquivos de 1 a 5 GB, na 0.1.0-9 | Falhou. Não suportado: o limite é 250 MB. A 100 MiB, os envios rodaram a 2,4 a 3,8 MiB/s e os recebimentos a cerca de 5 MiB/s |
| Uma imersão ociosa de uma hora | Não executado. Foi reduzido para cerca de 5 minutos |
A memória foi medida na 0.1.0-7 com o computador limitado a 2 GiB. Cada valor é o pico do tamanho proporcional do conjunto mais swap, em MiB. As linhas do console contam o crescimento do shell do Omarchy enquanto o console está carregado.
| Memória a 2 GiB | Alvo | Resultado | Atingido |
|---|---|---|---|
| Ocioso, antes de o console ser aberto | 40 ou menos | 18,6 | Sim |
| Ocioso, após observar uma tela no console | 40 ou menos | 31,1 | Sim |
| Ocioso, após usar todas as páginas do console | 40 ou menos | 48,8 | Não |
| Um agente trabalhando, console fechado (ibara, o driver Cua e a parte do shell) | 120 ou menos | 121,6, porque o driver Cua agora usa cerca de 58 | Não |
| Um agente trabalhando, console aberto | 120 ou menos | 187,1 | Não |
| Console aberto, observando uma tela, em relação ao console fechado | 32 ou menos a mais | 20,0 a mais | Sim |
| Console aberto, após um passeio por todas as páginas, em relação ao console fechado | 32 ou menos a mais | 65,5 a mais | Não |
ibara-stream enquanto alguém assume o controle deste computador | 100 ou menos | 72,5 | Sim |
ibara-view enquanto você assume o controle de outro computador | 150 ou menos | 106,6 | Sim |
ibara-view enquanto este computador também está sendo usado por um agente | 150 ou menos | 115,1 | Sim |
| ibara, o driver Cua e a parte do shell, com este computador em ambos os papéis | 120 ou menos | 117,9 | Sim |
| A tarefa padrão do agente a 2 GiB | Termina e não leva mais de 1,5 vezes o tempo sem o limite | Terminou em 16,1 segundos, 1,21 vezes o tempo | Sim |
| A tarefa padrão do agente com este computador em ambos os papéis | Termina e não leva mais de 1,5 vezes o tempo sem o limite | Não terminou, porque o visualizador tomou o foco do teclado; a 0.1.0-8 corrigiu isso | Não |
| Programas mortos por falta de memória | Nenhum | Nenhum | Sim |
Com memória total em 28 de setembro, em um dos computadores de teste: ibara ocioso 17,8 MiB, um agente trabalhando 117,0 MiB, e o console aberto na frota 58,2 MiB, acima do alvo de 40 MiB.
Perguntas que as pessoas fazem
O ibara envia minha tela ou arquivos para outra pessoa
Não. Imagens, arquivos e comandos vão diretamente entre seus computadores pela rede criptografada do Tailscale. O ibara não tem servidor próprio nem conta para cadastrar. A única coisa que o ibara busca da internet são suas próprias versões assinadas, quando você instala ou atualiza.
Quais agentes funcionam com o ibara
Qualquer agente que possa adicionar um servidor MCP às próprias configurações. Testamos Codex, Claude Code, opencode e omp. Um agente que não pode mudar as próprias configurações ainda pode usar o ibara: adicione o comando ibara mcp como um servidor stdio chamado ibara manualmente.
O que acontece se eu tocar no mouse enquanto um agente está trabalhando
A entrada do agente para. Seu ponteiro volta na hora e o cursor do agente desaparece. A próxima entrada do agente espera até que seu mouse fique parado por um segundo. Se você continuar usando o computador, essa entrada é recusada e o agente é informado de que uma pessoa está usando. Se quiser o computador só para você por mais tempo, escolha Take Control.
Um agente pode fazer algo que eu não aprovei
Dentro do que o ibara consegue ver, nenhum passo que pede primeiro é executado sem uma aprovação, e uma aprovação cobre apenas o passo exato para o qual foi dada. Se você desligar o Ask antes de agentes enviarem, gastarem ou excluírem, agentes dos seus próprios computadores executam esses passos sem perguntar; agentes de computadores de outras pessoas continuam perguntando. E um agente com permissão para executar comandos ou usar a área de trabalho pode fazer coisas que o ibara não reconhece como envio ou exclusão. Dê acesso a agentes apenas a computadores e agentes em que você confia com esse poder.
Posso usar o ibara sem o Omarchy
Ainda não. O ibara depende da configuração do Hyprland, da barra e dos comandos do Omarchy, e testamos apenas lá.
Como atualizo ou removo o ibara
ibara update instala a versão mais recente, e ibara update --check apenas diz se existe uma. ibara --version imprime a versão instalada. ibara rollback volta para a versão anterior e avisa sem pedir sua senha quando não há uma. ibara uninstall remove os pacotes ibara, ibara-stream e ibara-view e mantém a identidade deste computador para uma instalação posterior, e ibara uninstall --delete-data remove tudo, incluindo as configurações e o cache do visualizador. cua-driver-bin permanece instalado, pois outro software pode usá-lo; remova-o com sudo pacman -R cua-driver-bin se nada mais precisar dele. Peça a cada agente que você conectou para remover o servidor ibara, o link da habilidade ibara e o bloco do ibara no arquivo de instruções dele. ibara --help lista os comandos que você executa.
Algo não está funcionando
Veja solução de problemas. Se isso não ajudar, abra um problema.
Roteiro
Estas são as lacunas conhecidas que queremos fechar a seguir:
- trazer a memória do console para dentro dos alvos, inclusive após uma sessão longa: com o console aberto na frota, ele usa 58,2 MiB contra um alvo de 40
- comprovar a inicialização sem a senha do disco (
ibara unattended-boot) em hardware real, não apenas em uma máquina virtual - testar uma queda de energia e uma imersão ociosa de uma hora, e reiniciar ambos os computadores de teste, não apenas um
- ler páginas dentro de iframes e shadow DOM
- executar o benchmark completo novamente na versão mais recente, já que a última execução completa foi na 0.1.0-17
O changelog lista o que cada versão mudou.
Documentação
- Arquitetura: as partes do ibara e como elas conversam entre si
- Segurança e acesso: pareamento, permissões, aprovações e o que elas não cobrem
- Ferramentas do agente: as 11 ferramentas MCP e o que elas retornam
- Solução de problemas: o que verificar quando algo não funciona
- Desenvolvimento: construir, testar e alterar o ibara
- Internos: a referência detalhada de cada módulo
- Verificação de versão: verificar a assinatura e os pacotes de uma versão
O console em si é um repositório separado, omarchy-ibara, porque o mercado de plugins do Omarchy precisa de cada plugin no topo do próprio repositório.
Créditos
O ibara se apoia no trabalho de vários projetos de código aberto. Somos gratos a todos eles.
- Sunshine por LizardByte (GPL-3.0) é o host de streaming por trás do Take Control. Nosso fork,
ibara-stream, é uma compilação enxuta sem interface web, bandeja, UPnP, mDNS ou gamepads. Ele admite um visualizador apenas com um ticket de uso único vinculado ao certificado desse visualizador, confirma quando o acesso é revogado e limita a codificação por software. - Moonlight pelo projeto Moonlight (GPL-3.0), versão 6.1.0, é o visualizador. Nosso fork,
ibara-view, transmite um computador a partir de um ticket, com identidade própria. Ele adiciona Super+Alt+Escape para mover o teclado entre os 2 computadores, uma etiqueta que diz para onde as teclas vão e soltar arquivos. Ele também fecha quando o stream termina e não baixa nada dos servidores do Moonlight. - Cua (MIT) fornece o driver que o ibara usa para ler aplicativos por acessibilidade, digitar, clicar e desenhar o cursor de cada agente. O ibara inclui o plugin Hyprland do Cua da versão 0.28.2 com mudanças que fazem os cliques se moverem como o ponteiro de uma pessoa, aceitam as configurações de teclado do Omarchy e relatam exatamente por que uma entrada foi recusada. As mudanças estão em vendor/cua-hyprland-plugin/IBARA.md.
- Omarchy, Hyprland e Tailscale tornam tudo isso possível.
Os forks não têm repositórios próprios. Cada versão na página de versões inclui ibara-VERSION-source.tar.gz, o código-fonte exato do qual seus pacotes foram construídos: este núcleo, o plugin do console e ambos os forks com seus submódulos e mudanças.
Licença
O núcleo do ibara é licenciado sob a Licença MIT, copyright 2026 Tyler Mayberry. O plugin do console também é licenciado sob MIT, e o plugin Cua incluído mantém sua própria licença MIT e aviso de copyright.
Os programas de stream e visualizador incluídos, ibara-stream (um fork do Sunshine) e ibara-view (um fork do Moonlight), permanecem GPL-3.0 como programas separados. Eles são distribuídos junto com o núcleo; suas licenças e código-fonte permanecem disponíveis com a versão.
Contribuições são bem-vindas: veja CONTRIBUTING.md e nosso código de conduta.