ModLens: pegarle una captura de pantalla a un modelo que no sabe ver imágenes, y que la entienda
Los modelos abiertos más baratos no ven imágenes. ModLens hace de intérprete: pegas la captura y el agente recibe el texto, la maquetación y las relaciones en JSON.

- Estrellas
- 2,6K
- Lenguaje
- TypeScript
- Licencia
- MIT
- Datos de
- 16 ago 2026
Las estrellas cambian a diario. La cifra es la del día indicado, no la de hoy.
Hay un problema que se te aparece en cuanto empiezas a usar modelos abiertos para ahorrar: muchos no ven. DeepSeek, GLM y buena parte de los modelos que hoy salen a una décima parte del precio de los grandes son de solo texto. Le pegas una captura de un error y no pasa nada.
Y resulta que pegar capturas es una de las cosas que más se hacen con un agente de código. "Mira este error", "así se ve el formulario roto", "esta es la factura, sácame los datos". Sin visión, esa vía se corta.
ModLens hace de intérprete en medio. Pegas la imagen y el modelo recibe texto estructurado: la transcripción completa, las regiones de la maquetación en orden de lectura y una lista de entidades y relaciones, todo en JSON. El modelo no ve la imagen; lee una descripción precisa de la imagen.
Publiqué 172 artículos en marzo y fue mi peor mes
Tenía esta web parada y la estoy rehaciendo con IA. Cambié la forma de hacerlo y en once días de agosto ha tenido más visitas desde Google que en todo julio. Te cuento por correo qué cambié.
- · Por qué la oportunidad es mayor ahora, y no menor
- · Lo único que la IA no te puede copiar: tu criterio
- · Cómo hacer que Google te vea en días, no en seis meses
Subió 517 estrellas en un día y se actualizó ayer. Es el complemento natural del arnés de agentes de DeepSeek del que hablé hace unos días: aquella pieza le daba a los modelos abiertos un entorno de trabajo serio; esta les da los ojos que les faltaban.
Qué devuelve exactamente
Esta es la parte que decide si te sirve o no, así que conviene mirarla despacio. Lo que el agente recibe no es un pie de foto:
- Transcripción completa del contenido textual (OCR).
- Regiones de maquetación en orden de lectura: qué es cabecera, qué es tabla, qué es pie.
- Entidades y relaciones: qué campos hay y con qué valores se corresponden.
- Metadatos de los intentos, si ha tenido que recurrir a un proveedor alternativo.
Ese "orden de lectura" es lo que separa esto de un OCR corriente. Un OCR te devuelve palabras sueltas y tú te apañas. Aquí el modelo recibe la estructura, que es lo que necesita para responder "¿cuál es la base imponible de esta factura?" sin equivocarse de número.
Cómo se instala
Si usas el arnés de DeepSeek, es una línea:
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.18.1
Y después simplemente pegas la imagen en el chat. Para la experiencia completa, eliges el modelo con el sufijo (modlens vision).
Está verificado además con Claude Code, Codex de escritorio, Pi y OpenCode. No requiere ganchos ni tocar la configuración del arnés: es una única carpeta de habilidad.
Los seis motores de visión, que es la decisión de diseño buena
Por debajo, ModLens necesita algo que sí sepa ver. Y en lugar de atarse a un proveedor, encadena seis y va probando en orden hasta que uno responde:
| Motor | Coste y velocidad |
|---|---|
| API de Gemini | Gratis, 5-10 segundos |
| Cualquier endpoint compatible con OpenAI | Según tu proveedor |
| API de Anthropic | Según tu plan |
| Antigravity CLI | Gratis, 15-45 segundos |
| Claude CLI | Reutiliza tu suscripción existente |
| Kimi CLI | Según tu cuenta |
Esa cadena de reserva es la diferencia entre una herramienta de demostración y una que aguanta el día a día. Cuando el proveedor rápido falla —y falla—, no se rompe el flujo: entra el siguiente.
La vía más barata para empezar es la clave gratuita de Gemini: tres minutos y sin tarjeta. La más discreta es reutilizar el CLI de Claude que ya tengas instalado, porque entonces la imagen no sale hacia un proveedor nuevo, va por donde ya iba tu trabajo.
Cómo sacarle partido
El uso obvio es depurar interfaces: pegas la captura de la pantalla rota y el agente te dice qué elemento está fuera de sitio. Funciona, y es cómodo.
Pero el que a mí me parece más útil no tiene nada que ver con programar. Es extraer datos de documentos que solo existen en papel o en imagen: facturas escaneadas, albaranes fotografiados con el móvil, formularios firmados. Con la estructura en JSON, un agente puede volcarlos a una hoja de cálculo sin que te inventes un campo.
Con Claude Code o el agente que uses, en la carpeta donde tengas los escaneos:
Tengo en ./facturas 40 escaneos en JPG. Usa modlens para leer cada uno
y sácame un CSV con: fecha, número de factura, NIF del emisor, base
imponible, tipo de IVA, cuota y total.
Si un campo no aparece claro en la imagen, déjalo vacío y anótalo en una
columna "revisar". No lo deduzcas ni lo rellenes por tu cuenta.
Ese último párrafo es obligatorio. Un modelo al que le falta un dato lo rellena si no le dices lo contrario, y en una factura eso es exactamente el error que no puedes permitirte. Es el mismo criterio que aplico en automatizar declaraciones y facturas con IA.
Cuándo no te compensa
- Si ya usas un modelo que ve. Claude, Gemini o GPT leen imágenes de fábrica. Meter una capa intermedia no te aporta nada, te quita.
- Si el volumen es alto y el documento siempre igual. Para procesar mil facturas del mismo proveedor, un extractor específico sale más barato y más fiable que un modelo por documento.
- Si necesitas interpretar la imagen, no leerla. Esto convierte imagen en texto estructurado. Si lo que quieres es una valoración estética o reconocer una cara, no es la herramienta.
- Si los documentos son confidenciales y usas la vía gratuita. La imagen sale hacia el proveedor de visión que elijas. Con datos de pacientes o de clientes, esa decisión no es un detalle de configuración.
Para quién sí: para quien ha montado su flujo de trabajo sobre modelos abiertos por precio y se encuentra con que la única cosa que no puede hacer es pegar una captura. Esto le devuelve esa capacidad sin cambiar de modelo ni de factura.
Inteligencia Artificial aplicada a negocio
Sin humo. Solo experimentos reales, prompts que funcionan y estrategias de escalabilidad.
Preguntas frecuentes
¿Es un OCR?
Hace OCR, pero devuelve bastante más: la maquetación en orden de lectura y las relaciones entre campos. Es esa estructura, y no el texto suelto, lo que permite que un modelo responda bien sobre un documento.
¿Sirve solo para DeepSeek?
No. Está pensado para el arnés de DeepSeek, pero está verificado con Claude Code, Codex de escritorio, Pi y OpenCode. Sirve para cualquier agente de texto al que le falte la visión.
¿Cuánto cuesta?
El plugin es gratuito, con licencia MIT. El coste está en el motor de visión que elijas: con la clave gratuita de Gemini o reutilizando un CLI que ya tengas instalado, cero.
¿Mis imágenes salen de mi ordenador?
Sí, van al proveedor de visión que configures. Si eso es un problema, la opción menos mala es reutilizar el CLI de una herramienta que ya usabas, para no añadir un tercero nuevo a la ecuación.
¿Cuánto tarda?
Entre 5 y 10 segundos con la API de Gemini y entre 15 y 45 con los CLI locales de reserva. Para uso interactivo va sobrado; para lotes grandes conviene medirlo antes de lanzar mil documentos.
Analizo los repos que entran en tendencia y cómo sacarles partido con Claude Code y Codex. Ver todos los repos analizados.