- Como montar um workspace de IA usando execução de LLM local e ambiente de sandbox de código, sem depender da nuvem
- Com Ollama para executar um LLM local, executar código em uma VM isolada com Apple Container e habilitar automação e acesso à internet via navegador headless com Playwright
- Baseado em
assistant-ui, implementei um ambiente de execução de código seguro com menu suspenso de seleção de modelo e integração com ai-sdk e MCP (Model Context Protocol)
- No VM Coderunner conectada por MCP é possível executar servidor Jupyter e navegador para lidar com criação de gráficos, edição de imagem/vídeo, instalação de ferramentas do GitHub e busca web em modo de proteção de privacidade
- No momento, é exclusivo para Apple Silicon, e os próximos passos incluem melhorias de UI, evasão de detecção de navegador e melhoria do gerenciamento de ferramentas
Requisitos e contexto
- Objetivo: executar tudo localmente, sem execução de código em nuvem ou remoto
- Apps de chat com LLM existentes (como ChatGPT, Claude) oferecem chat de LLM baseado em nuvem, execução de código em nuvem/local e acesso à internet
- Com o crescimento do uso de LLMs open source, surgiu a dúvida se todas essas funções poderiam ser realizadas totalmente de forma local
- Como o LLM local sozinho é insuficiente, é necessário que o código seja executado em ambiente isolado e que haja acesso a conteúdos por meio de navegador
Ideia
- Executar LLMs em ambiente completamente local
- Processar a execução de código apenas dentro de VMs leves para bloquear riscos no sistema host
- Adicionar navegador headless para suportar automação, descoberta de novas informações e de ferramentas
- Montar um fluxo de trabalho com foco em proteção de privacidade, no qual do planejamento da IA à execução de código tudo acontece localmente
- Realizar múltiplas tarefas, como edição de fotos e vídeos, localmente sem enviar dados para serviços externos
Stack tecnológica
- LLM: Ollama (suporte a modelos locais e alguns modelos externos)
- UI:
assistant-ui + ai-sdk (com recurso de seleção de modelo)
- Runtime de VM: Apple
container (fornece ambiente de VM isolado)
- Orquestração:
instavm/coderunner (conexão com servidor Jupyter via MCP)
- Automação de navegador: Playwright (exposto como ferramenta MCP)
Tentativa e transição no app Mac
- Tentou-se desenvolver um app nativo para Mac com
a0.dev, mas houve dificuldade por ser voltado para iOS
- Também foi tentado envolver Electron + NextJS, mas foi abandonado por questões de complexidade
- A migração final foi para
assistant-ui local baseado na web
Customização do Assistant-UI
- A expectativa era oferecer suporte a múltiplos LLMs com menu suspenso de seleção de modelo, mas ela era limitada
- Com base em exemplos, a seleção de múltiplos modelos foi implementada diretamente via ai-sdk
- No início, também houve suporte a modelos cloud como OpenAI/Anthropic, com estratégia de migração gradual para o local
Desafios de suporte a modelos e tool-calling
- Era necessário um modelo com suporte a tool-calling, porém alguns, como Ollama, não suportam na prática
- Mesmo quando a documentação oficial indica suporte a ferramentas, a implementação real é frequentemente insuficiente
- A rápida mudança da ecologia open source traz alta volatilidade em status de suporte a ferramentas e preços de token
Execução de código isolada com base em container
- Usando a ferramenta Container da Apple, que oferece isolamento total da VM para cada container em comparação ao Docker, o código gerado por IA pode ser executado com mais segurança
- O ambiente VM é implantado com servidor Jupyter e exposto via MCP, permitindo uso imediato em várias ferramentas (Claude Desktop, Gemini CLI etc.)
- O código do servidor MCP
coderunner foi aberto com exemplos de integração com ferramentas externas
- A ferramenta Apple Container ainda é instável, exigindo reinícios repetidos quando surgem problemas de build/imagem
- Em testes práticos de edição de vídeo, foi verificado o funcionamento correto da combinação UI + LLM + coderunner
Integração de navegador headless
- Implantado navegador headless baseado em Playwright dentro do container e exposto como ferramenta MCP
- Espera-se uso para descoberta de novas ferramentas/informações, busca de uso do GitHub e automação de pesquisa
- Fluxo básico concluído: combinação de LLM local + execução de código em sandbox + navegador headless
Exemplos de tarefas possíveis
- Pesquisa e resumo de temas específicos
- Criação e renderização de gráficos CSV por comandos em linguagem natural
- Edição de vídeo com ffmpeg (corte de trechos etc.)
- Redimensionar, recortar e converter formato de imagem
- Instalação no container de ferramentas do GitHub
- Rastreamento e resumo de páginas web com navegador headless, entre outros
Montagem de volumes de arquivos e isolamento
- Mapear
~/.coderunner/assets do host para /app/uploads do container, com arquivos armazenados com segurança em espaço compartilhado
- O código em execução não consegue acessar diretamente o sistema host, garantindo segurança
Limitações e próximos passos
- Funciona apenas em ambiente Apple Silicon, e macOS 26 é opcional
- Melhorias em UI, como gerenciamento de ferramentas e streaming de saída, ainda são necessárias
- Há bloqueio em alguns sites por detecção de bot no navegador headless
Conclusão
- Este projeto é mais do que um experimento e é um modelo com foco em soberania computacional e proteção de privacidade
- Oferece uma experiência de processamento seguro de dados em uma máquina local pessoal sem dependência de nuvem ou servidor remoto
- Mesmo que os melhores LLMs permaneçam nos grandes clouds, o objetivo é avançar ferramentas de IA local que preservem a privacidade individual
- O projeto open source
coderunner-ui está disponível no GitHub; feedback e colaboração são bem-vindos
Recursos relacionados
Ainda não há comentários.