← Todos os projetos
P.01 em produção

O Diretor

Sistema multi-agent composto por um diretor e vários gerentes: o diretor recebe o pedido e delega aos gerentes, e cada gerente delega o trabalho aos seus agents. Entregue como aplicativo de desktop para o dia a dia de um negócio pequeno, sem terminal. Windows e Linux; 4 clientes usando o serviço.

Papel
Codesenvolvimento — a casca desktop, a ponte local e o porte para Linux
Estúdio
Dark Marlin
Plataformas
Windows e Linux
Em uso
4 clientes usando o serviço
Última versão publicada
1.0.39 — 20/09/2026
Código
Privado — produto da Dark Marlin

Números

4clientes usando o serviço
479commits no repositório
9versões finais marcadas (mais 4 candidatas), de 30/08 a 20/09/2026
2plataformas com build automatizado

Medido no repositório em 22/09/2026: os commits com git rev-list --count HEAD e as versões com git tag. Este repositório é o porte para Linux do produto. Pelo git log por diretório, todos os commits da casca (React e Rust), da ponte e do CI são meus; no núcleo em Python, cerca de metade — a outra metade é do sócio. Clientes usando o serviço: contagem da própria Dark Marlin, em 23/09/2026.

O problema

Agente de IA que mexe em arquivo é, hoje, ferramenta de terminal. O dono de um estúdio de arquitetura, de uma clínica, de um escritório de engenharia ou de uma distribuidora não abre terminal — e é justamente quem mais tem trabalho de escritório repetitivo para entregar: fechar o mês, conferir medição e boleto, responder cliente, decidir se troca de fornecedor.

O problema não estava no modelo, estava na embalagem: como entregar um agente que já conhece aquele negócio, guarda o que aprendeu entre uma conversa e outra, e não depende de o dono saber escrever um bom prompt.

O que faz

  • Hierarquia de agentes: o diretor não executa, ele distribui. Cada frente do negócio vira um gerente com a sua pasta e a sua conversa, e o gerente abre agents para o trabalho braçal — em lote, com as mesmas restrições de pasta que ele.
  • Conversa sem terminal: o agente lê os arquivos do negócio, mostra o que consultou antes de responder e escreve em português.
  • Uma cápsula de oito arquivos plantada na pasta do negócio — é ali que o agente guarda o que aprendeu, sem sobrescrever nada que já estivesse na pasta.
  • Painel “quem está tocando o quê”, em árvore ou em grafo, com o que está aberto e há quanto tempo espera.
  • Fila de pendências: quando o agente precisa de uma decisão, ele pergunta ali e a resposta é dada no próprio item, sem reabrir a conversa.
  • Abas por gerente — financeiro, clientes, cozinha — cada uma com a sua conversa, e a barra mostrando em que pé estão as outras.
  • O celular entra na mesma conversa, pareado por QR code: o que é respondido do telefone aparece no fio, marcado como tal.
  • Motor trocável — Claude Code ou Codex CLI — escolhido no cabeçalho, com o login iniciado de dentro do próprio aplicativo.
  • Anexos por Ctrl+V e ditado por microfone.

Como foi construído

pedido do donoDiretor↓ delega aos gerentes
Gerente · financeiro
Gerente · clientes
Gerente · cozinha
cada gerente delega aos seus agents

A casca é um aplicativo Tauri 2 com React 18, TypeScript e Vite, estilizado com Tailwind 4; o grafo do painel é desenhado em canvas com d3-force. O núcleo que conversa com o modelo é Python, e os dois lados se falam por uma ponte WebSocket que só escuta em 127.0.0.1.

O empacotamento sai do GitHub Actions: AppImage e .deb no Linux, executável no Windows. No Linux, a atualização automática é assinada (minisign) e servida por um Worker da Cloudflare.

A ponte local, em vez de reescrever o núcleo

Quando a interface passou a ser web (Tauri e React), havia o caminho óbvio de reescrever em TypeScript o núcleo que já funcionava em Python. Em vez disso o núcleo ficou onde estava e ganhou uma ponte: um processo que escuta em 127.0.0.1:8765 e vai empacotado junto com o aplicativo.

O preço é real: um processo a mais para subir, e um passo de empacotamento com PyInstaller em cada plataforma. O que se compra é não manter duas implementações do mesmo motor, e poder trocar a casca sem tocar no que conversa com o modelo. Como a ponte só escuta no endereço local, ela também não abre porta para fora.

Stack

Aplicativo

  • Tauri 2
  • Rust
  • React 18
  • TypeScript
  • Vite
  • Tailwind 4

Núcleo

  • Python
  • WebSocket
  • PyInstaller

Painel

  • d3-force
  • Canvas
  • Framer Motion

Entrega

  • GitHub Actions
  • AppImage
  • .deb
  • .exe

Telas

Tela inicial: sugestões de partida e a criação de um novo diretor pelo nome.
O diretor responde com os passos, uma tabela e os arquivos que gerou.
Antes de mexer na pasta, ele pede permissão.
Visor lado a lado: a planilha gerada, aberta na própria janela.
Painel: quem está tocando o quê, num grafo de managers.
Uso: limites e memória da conversa (valores do modo demonstração).
Primeira execução, novo na 1.0.39: entrar com e-mail e senha, sem copiar código.

Capturas do aplicativo em modo de demonstração (o selo no canto superior direito é o próprio modo). O cenário é inventado: um estúdio de arquitetura e interiores fictício, o "Estúdio Tavin", com obras, clientes, fornecedores, valores e arquivos fictícios, e o aplicativo os marca como exemplo. A tela de entrar na conta foi aberta fora do aplicativo instalado, onde ela só aparece na primeira execução; o e-mail é de exemplo. Versão 1.0.39. Nenhum dado de cliente real aparece aqui.