Herramienta de escritorio local-first que reconstruye una interfaz desde una captura, la convierte en componentes editables, analiza proyectos existentes (read-only), detecta sus capabilities, sugiere bindings visuales y verifica que la UI reconstruida no pierda funcionalidad.
IMAGEN → ESTRUCTURA → COMPONENTES → EDICIÓN → ANÁLISIS DEL PROYECTO
→ BINDINGS → VERIFICACIÓN → APLICACIÓN FUNCIONAL
- Import de screenshots (PNG/JPEG/WEBP) por selector o drag&drop.
- Vision analyzer heurístico local (OpenCV; sin OCR, sin red): regiones, paneles, navbar/sidebar, botones, inputs con borde, textos, charts, dividers, con confianza por detección y jerarquía por contención.
- Editor visual profesional: árbol de componentes, canvas con seleccionar/mover/redimensionar/editar texto inline, inspector completo (geometría, estilos, eventos, metadata), undo/redo, snapshots.
- Project analyzer: Python vía
astreal; JS/TS/TSX vía AST Babel (Node); fallback regex marcado con confianza baja. Detecta funciones, clases, rutas FastAPI (con modelos Pydantic expandidos a campos), componentes React, hooks, handlers, fetch calls y construye el capability graph. - Smart Binder determinista y auditable: sugiere conexiones componente↔capability con score y rationale (léxico verbal ES/EN, stems por prefijo, prior por tipo, cola de ruta).
- Orphan detector: BOUND / UNBOUND / BROKEN / UNKNOWN / LEGACY — ninguna capability se elimina nunca automáticamente.
- Visual diff: pixel diff + SSIM + SSIM de bordes + diff por regiones + deltas geométricos → Visual Fidelity Score (independiente del Functional Coverage Score).
- Export seguro: genera un proyecto React/Vite/TS nuevo en un directorio vacío; jamás toca el proyecto importado; los bindings CONFIRMED contra rutas se convierten en llamadas fetch reales.
Requisitos: Python 3.11+ y Node 18+.
# backend
uv venv .venv --python 3.12
uv pip install --python .venv/Scripts/python.exe -r requirements.txt
# frontend + analizador AST (workspaces npm)
npm install
npm run build # compila apps/desktop/dist# desarrollo (backend 8765 + vite 5173, con recarga)
python scripts/dev.py
# app de escritorio desde origen (WebView2 + backend en un proceso)
python scripts/desktop_app.py
# exe portable (PyInstaller) → dist/UIBinder/UIBinder.exe
.venv/Scripts/python.exe -m PyInstaller scripts/uibinder.spec --noconfirm --workpath build/pyinstaller
# tests
.venv/Scripts/python.exe -m pytest tests # backend (74 tests)
npm test # frontend (vitest, 6 tests)- Abrir UI Binder → NEW WORKSPACE.
- IMPORT IMAGE (screenshot) → ANALYZE UI.
- Editar componentes/textos en el canvas e inspector (Ctrl+Z/Y, Ctrl+S).
- IMPORT PROJECT (ruta del proyecto; se abre READ-ONLY) → ANALYZE PROJECT.
- Seleccionar un botón → inspector → SMART BIND → sugerencias con score → Confirmar → editar mappings (inputs/outputs/loading/error).
- VERIFY → orphan detector + cobertura funcional + bindings rotos.
- PREVIEW (Design / Connected).
- EXPORT a un directorio nuevo y vacío (dry-run disponible:
GET /api/workspaces/{id}/export-plan).
Ver ARCHITECTURE.md. Resumen de capas:
| Capa | Ubicación |
|---|---|
| UI (React/TS/Vite) | apps/desktop/src |
| API (FastAPI) | backend/api |
| Vision + tokens | backend/vision |
| Analizadores (ast/Babel) | backend/analyzer + packages/project-analyzer |
| Binder + verificación | backend/bindings, backend/verification |
| Diff visual | backend/diff |
| Persistencia (SQLite) | backend/persistence |
| Export + adapters | backend/export, adapters/ |
| Shell desktop | scripts/desktop_app.py (pywebview) + apps/desktop/src-tauri |
- Proyectos importados read-only por contrato; cualquier escritura exige export a directorio nuevo (validado, no solapado con el origen).
- No se ejecuta código de proyectos importados: solo análisis estático.
- API keys solo por variables de entorno (
.env.example); nunca se persisten ni loguean (redacción automática de secretos en logs). - Proveedores cloud opcionales y claramente marcados (la nota de análisis avisa cuando una imagen se envía a un endpoint externo).
- Funciona 100% offline (provider heurístico local).
- La visión heurística no tiene OCR: los textos detectados son posiciones inferidas; el texto real se edita a mano en el inspector (por diseño honesto).
- Trace mode: almacenamiento/consulta reales, pero la instrumentación automática del navegador (Playwright) no está implementada.
- Connected preview: renderiza y anota bindings; las llamadas en vivo requieren que el proyecto importado esté corriendo en su puerto.
- Instalador Tauri bloqueado por falta de "C++ Build Tools" de Visual Studio en esta máquina (ver docs/DECISIONS.md y FEATURE REGISTRY); el ejecutable portable se entrega vía PyInstaller (WebView2).
- App:
0.1.0· UI schema:1· Migraciones DB:1