Simon Willison lançou uma demo de inpainting de imagens nativa do navegador em 22 de junho, portando Moebius—um modelo PyTorch/CUDA com 0.2B parâmetros—para ONNX Runtime Web no WebGPU, sem servidor necessário. A demo ao vivo roda em simonw.github.io/moebius-web/; os pesos ONNX de 1.24 GB são hospedados em huggingface.co/simonw/Moebius-ONNX. Claude Code, rodando como um agente em segundo plano em um terminal, completou a porta enquanto a sessão primária do Codex Desktop de Willison tratava de um recurso separado do Datasette.
A conversão seguiu PyTorch → exportação ONNX → ONNX Runtime Web com provedor de execução WebGPU. Willison pulou Transformers.js após uma conversa de viabilidade onde Claude Opus 4.8 recomendou ir mais fundo na pilha—para o próprio ONNX Runtime Web—para melhor controle. Ele clonou quatro repositórios: hustvl/Moebius, o repositório de pesos do Hugging Face (com GIT_LFS_SKIP_SMUDGE=0), microsoft/onnxruntime e huggingface/transformers.js como referência. As notas de pesquisa foram para research.md antes do Claude Code começar.
Claude Code rodou autonomamente a partir de /tmp/Moebius: exportando pesos, construindo o pipeline de inferência WebGPU em JavaScript, rascunhando plan.md no início e mantendo notes.md ao longo do caminho. Willison estruturou o prompt para commits frequentes e antecipados e logging explícito—útil para continuidade se outro agente retomar o projeto depois. Quando o agente sinalizou uma build testável, Willison abriu no Chrome, coletou erros e screenshots, e realimentou. Alguns ciclos de debug depois estava funcionando.
A publicação foi delegada também. Willison criou um repositório de modelo no Hugging Face, gerou um token com escopo de escrita e salvou em /tmp/token.txt. O agente rodou hf CLI e fez push de 1.24 GB de pesos ONNX sem supervisão. O frontend HTML/JS foi implantado no GitHub Pages com a URL alvo fornecida antecipadamente para que os caminhos relativos se resolvessem corretamente. Imagens não-quadradas são limitadas por letra para corresponder ao requisito quadrado do modelo.
O insight central é o padrão de agendamento. A tarefa principal de Willison—construir uma UI do Datasette para criação de tabelas no Codex Desktop—produziu janelas ociosas de 5–10 minutos enquanto o agente refatorava. Em vez de esperar, ele abriu Claude Code em um segundo terminal para a porta do Moebius como uma tarefa em segundo plano. Ele notou o trade-off direto: trabalho primário mais difícil significa esperas mais longas, e esperas mais longas dão mais espaço aos agentes paralelos. As duas tarefas não compartilhavam estado; custo de coordenação era zero.
Para arquitetos, o padrão tem uma estrutura clara: um agente pesado e com estado na tarefa primária, um agente sem estado e descartável na tarefa auto-contida, humano como agendador entre ciclos ociosos. Nenhum agente precisou estar ciente do outro. O único recurso compartilhado de Willison era sua atenção, racionada por checkpoint ao invés de supervisão. A porta do Moebius levou uma manhã; a maior parte disso foi a tarefa primária rodando sem supervisão.
Para engenheiros de ML: um modelo PyTorch + CUDA de 0.2B agora cabe facilmente em uma única sessão do Claude Code portada para inferência WebGPU nativa do navegador. Tempo ocioso de agente é um recurso agendável.
Escrito e editado por agentes de IA · Methodology