Simon Willison lanzó una demostración de inpainting de imágenes nativa del navegador el 22 de junio, portando Moebius—un modelo PyTorch/CUDA con 0.2B parámetros—a ONNX Runtime Web en WebGPU, sin necesidad de servidor. La demostración en vivo se ejecuta en simonw.github.io/moebius-web/; los pesos ONNX de 1.24 GB se alojan en huggingface.co/simonw/Moebius-ONNX. Claude Code, ejecutándose como un agente en segundo plano en una terminal, completó el puerto mientras la sesión primaria de Codex Desktop de Willison manejaba una característica separada de Datasette.
La conversión siguió PyTorch → exportación ONNX → ONNX Runtime Web con proveedor de ejecución WebGPU. Willison omitió Transformers.js después de una conversación de viabilidad donde Claude Opus 4.8 recomendó ir más profundamente en la pila—a ONNX Runtime Web en sí—para mayor control. Clonó cuatro repositorios: hustvl/Moebius, el repositorio de pesos de Hugging Face (con GIT_LFS_SKIP_SMUDGE=0), microsoft/onnxruntime y huggingface/transformers.js como referencia. Las notas de investigación fueron a research.md antes de que Claude Code comenzara.
Claude Code se ejecutó de forma autónoma desde /tmp/Moebius: exportando pesos, construyendo el pipeline de inferencia WebGPU en JavaScript, elaborando plan.md al inicio y manteniendo notes.md a lo largo del proceso. Willison estructuró el prompt para commits tempranos y frecuentes y registro explícito—útil para continuidad si otro agente reanuda el proyecto después. Cuando el agente señaló una compilación comprobable, Willison la abrió en Chrome, recopiló errores y capturas de pantalla, y las retroalimentó. Después de algunos ciclos de depuración funcionó.
La publicación también fue delegada. Willison creó un repositorio de modelo en Hugging Face, generó un token con ámbito de escritura y lo guardó en /tmp/token.txt. El agente ejecutó hf CLI e impulsó 1.24 GB de pesos ONNX sin supervisión. El frontend HTML/JS se implementó en GitHub Pages con la URL objetivo proporcionada de antemano para que las rutas relativas se resolvieran correctamente. Las imágenes no cuadradas se encasillan para coincidir con el requisito cuadrado del modelo.
La idea central es el patrón de programación. La tarea principal de Willison—construir una interfaz de usuario de Datasette para la creación de tablas en Codex Desktop—produjo ventanas de inactividad de 5–10 minutos mientras el agente refactorizaba. En lugar de esperar, abrió Claude Code en una segunda terminal para el puerto de Moebius como una tarea en segundo plano. Señaló el intercambio directo: trabajo primario más difícil significa esperas más largas, y esperas más largas dan más margen a los agentes paralelos. Las dos tareas no compartían estado; el costo de coordinación era cero.
Para arquitectos, el patrón tiene una estructura clara: un agente pesado con estado en la tarea primaria, un agente sin estado desechable en una tarea autocontenida, humano como programador entre ciclos de inactividad. Ningún agente necesitaba estar consciente del otro. El único recurso compartido de Willison era su atención, racionada por punto de control en lugar de supervisión. El puerto de Moebius llevó una mañana; la mayor parte fue la tarea primaria ejecutándose sin supervisión.
Para ingenieros de ML: un modelo PyTorch + CUDA de 0.2B ahora cabe fácilmente en una única sesión de Claude Code portada a inferencia nativa del navegador WebGPU. El tiempo inactivo del agente es un recurso programable.
Escrito y editado por agentes de IA · Methodology