¿Le pasarías el contrato de un cliente a ChatGPT? Yo tampoco. Y aun así lo hacemos todos: contratos, nóminas, transcripciones de reuniones, directos a una IA en la nube, porque es comodísimo y nadie nos ha dado una alternativa. Mi solución ha sido montarme una herramienta para anonimizar documentos con IA en local: tapa los datos sensibles en mi ordenador, antes de que el documento salga de ahí. La construí con Claude Code sin escribir una línea de código, es open source, y en este post tienes todo: cómo funciona, el repositorio para clonarla y el prompt completo para construirte la tuya.

El problema no es usar IA con documentos. Es el orden.
Cuando pegas un documento en una IA de la nube, sale de tu ordenador y viaja a servidores que no son tuyos. A partir de ahí, lo que pase con él depende de las políticas de una empresa: políticas que tú no controlas y que pueden cambiar. Puede que no pase nada. Pero con el contrato de un cliente, "puede que no pase nada" no es suficiente.
Y renunciar a la IA tampoco es la respuesta, porque resuelve en minutos lo que antes llevaba una tarde. Lo que hay que cambiar es el orden: primero un filtro en tu máquina que decide qué sale, después la nube haciendo el trabajo pesado.
Para montar ese filtro necesitas una pieza que quizá aún no tienes en tu caja de herramientas: IA corriendo en tu propio ordenador.
IA en local: qué es y por qué ahora sí
Ejecutar IA en local significa que el modelo (el "cerebro") está descargado en tu ordenador y todo el procesamiento ocurre en tu CPU o GPU. Tu pregunta no viaja a ningún servidor: entra, se procesa y sale sin tocar internet. Es la diferencia entre Netflix y tener la película en el disco duro: el streaming necesita conexión y alguien sabe qué ves; el archivo local se reproduce solo para ti.
Hasta hace poco, esto era terreno de gente muy técnica: compilar, cuantizar, pelearte con drivers de GPU. Dos cosas han cambiado:
Los modelos pequeños se han vuelto buenos de verdad. Ya no hablamos de juguetes: familias como Qwen, Gemma o Llama publican versiones de pocos gigas que hacen tareas concretas con solvencia en un portátil normal. El punto de inflexión mediático fue la llegada de DeepSeek a principios de 2025, que demostró que un modelo eficiente podía competir con los grandes; desde entonces el ecosistema local no ha parado de madurar.
Las herramientas han eliminado la fricción. Y aquí entra Ollama.
Antes de seguir, la parte honesta: la IA local tiene techo. Para correr un modelo de primera línea (los que usas en ChatGPT o Claude) harían falta recursos que tu portátil no tiene. Un modelo local pequeño no va a escribirte el informe estratégico ni a razonar como los grandes. Pero para una tarea concreta y acotada (clasificar, extraer, detectar, resumir textos cortos) sobra. La clave está en darle al local lo que el local hace bien.
Qué es Ollama exactamente
https://ollama.com/ es un programa gratuito y open source que ejecuta modelos de IA en tu ordenador. Nació en 2023 y se ha convertido en la herramienta de referencia del ecosistema local.
La analogía que mejor lo explica: Ollama es a los modelos de IA lo que un reproductor de vídeo a las películas. El reproductor no es la película; la ejecuta. Tú eliges qué modelo "reproducir" (Qwen, Llama, Gemma, DeepSeek, Mistral...), Ollama lo descarga una vez y a partir de ahí lo carga, gestiona la memoria y te da una forma de hablar con él. Toda la complejidad técnica que antes te echaba para atrás, resuelta en un instalador de doble clic.
Tres cosas más que conviene saber:
Trae su propio chat. Instalas Ollama y ya puedes conversar con un modelo en local, sin montar nada más. Para muchos usos, con esto basta.
Expone una API en tu propia máquina. Este es el detalle que lo cambia todo para construir encima: cualquier aplicación de tu ordenador puede hablarle a Ollama igual que le hablaría a la API de OpenAI, solo que la petición nunca sale de localhost. Por eso mi anonimizador pudo construirse en una tarde.
El catálogo es enorme y tú eliges. Cientos de modelos, de medio giga a decenas de gigas. Nadie decide por ti ni te cambia el modelo por sorpresa: la versión que descargas es tuya hasta que tú quieras.
¿Y por qué no lo usa todo el mundo ya? Porque la mayoría no necesita mudarse al local: necesita encadenarlo. Tu flujo de trabajo (tus proyectos, tus skills, tus herramientas en la nube) ya existe y funciona. La jugada inteligente no es sustituirlo, es meter una pieza local justo donde la privacidad lo pide.
Eso es exactamente el anonimizador.
La herramienta: un portero para tus documentos
El Anonimizador beailabs hace una cosa y la hace siempre igual: le pasas un texto o le arrastras un archivo (.pdf, .docx, .txt, .md), detecta los datos sensibles y los sustituye por etiquetas numeradas, todo dentro de tu máquina.
Nombres de personas → [PERSONA_1]
Empresas → [EMPRESA_1]
DNI/NIE, emails, teléfonos, direcciones
IBANs y cuentas → [CUENTA_1]
La misma entidad recibe siempre la misma etiqueta: si María aparece tres veces, las tres veces es [PERSONA_1]. Y una fila de casillas te deja elegir qué categorías se tapan en cada uso. Yo suelo dejar los importes visibles: un número sin nombre al lado no identifica a nadie, y esos números son justo lo que necesito que la IA analice después. Mi criterio: identidad fuera, contenido dentro.

El diseño que evita disgustos: reglas para lo fijo, modelo para lo difícil
Hay una decisión de diseño que marca la diferencia entre un juguete y una herramienta: los datos con patrón fijo (DNIs, emails, teléfonos, IBANs, importes) no los detecta el modelo de IA, los detectan expresiones regulares, que con patrones fijos no fallan. El modelo solo decide en lo que las reglas no pueden resolver: nombres de personas, empresas y direcciones.
En una herramienta de privacidad, un fallo silencioso es el peor fallo posible. Por eso, además, si algo se tuerce por dentro, la app avisa con un error claro: nunca te devuelve un texto a medio limpiar sin decírtelo.
El modelo: qwen3:4b, y por qué
En Ollama hay cientos de modelos y el instinto dice "coge el más potente" o "el más pequeño". Ninguna de las dos. Elegí qwen3:4b porque, para esta tarea, es de los que mejor equilibrio tienen entre ligero y preciso: detecta bien nombres y empresas en español, devuelve el formato estructurado que la app necesita y corre en un portátil normal.
La regla que me llevo grabada: no necesitas el modelo más potente, necesitas el que cumpla tu tarea conforme a tu estándar de calidad.
Cómo la construí: Claude Code desde la app de escritorio
Si te suena Claude Code, probablemente lo has visto en una terminal y habrás pensado que no es para ti. La versión de la app de escritorio de Claude es el mismo motor, los mismos modelos y la misma cuenta; cambia la superficie: te enseña los cambios en pantalla, te abre la aplicación que está construyendo para probarla y te pregunta antes de tocar nada. Con botones.
Y lo de preguntar no es un decir. Antes de escribir una línea, Claude Code detectó decisiones que yo no había cerrado en mi prompt y me planteó las opciones con sus contras (qué arquitectura usar, qué hacer con las dependencias). Elegí, y construyó. Esto desmonta el miedo de "la IA hará cosas raras en mi ordenador sin avisar": pregunta, como un compañero de equipo, no como una caja negra.
El proceso entero, resumido: instalar Ollama (doble clic), pegar el prompt en Claude Code, responder sus preguntas y ver la app construirse. El modelo lo descarga Claude Code solo.
La prueba de fuego: sin conexi´on
Que "nada sale de tu máquina" no sea marketing se comprueba fácil: quitar el wifi y a trabajar. Le pasé un contrato de prueba con nombres compuestos, un NIE extranjero, dos cuentas bancarias e importes con puntos y comas. Sin ninguna conexión a internet, el documento salió limpio.

Eso no es una promesa sobre políticas de datos. Es que literalmente no hay conexión.
El truco final: des-anonimizar la respuesta
Y aquí la parte que convierte la herramienta en un flujo completo: las etiquetas son reversibles. La app guarda en memoria el mapa de equivalencias, y eso permite hacer el viaje de vuelta.
Con un caso real:
Anonimizo el contrato en local.
Enciendo el WiFi y pego el texto limpio en ChatGPT: "voy a firmar este contrato como consultor, ¿hay alguna cláusula que me perjudique? Redáctame un email para negociarla, citando a las partes con sus etiquetas".
ChatGPT encuentra la cláusula problemática (una penalización por día de retraso) y me escribe el email de negociación... lleno de [PERSONA_1] y [EMPRESA_1]. Sin saber quién firma ni qué empresa es.
Pego su respuesta en el panel de des-anonimizar y la app restaura los nombres reales.
Resultado: un email listo para enviar, con nombres y apellidos, escrito por una IA que no ha visto un solo dato real. La IA local no sustituye a ChatGPT: es una herramienta más, y se encadenan.

Los límites, dicho claro
Esta herramienta no es infalible. Ningún detector automático lo es. Yo siempre hago una última revisión antes de pegar nada en ninguna IA, por si se hubiera colado algún dato. Es un filtro, no un seguro a todo riesgo. La última revisión, siempre humana.
Y el límite de hardware: si tu ordenador va justo de recursos, el modelo sufrirá. Prueba entonces uno más pequeño asumiendo que puede fallar más con los nombres difíciles, o quédate con las categorías de regex, que funcionan igual en cualquier máquina.
Móntate la tuya: repo y prompt completo
La herramienta es open source, con licencia MIT. Dos caminos:
El rápido: clonar el repositorio. https://github.com/beailabs/anonimizador. Puedes incluso pegarle el enlace a Claude Code y decirle "descárgame esto y arráncalo". Ni para clonar hace falta terminal.
El curioso: construir tu propia versión. Este es el prompt exacto que le pasé a Claude Code, para que lo uses tal cual o lo adaptes con tus categorías y tus colores:
Crea una aplicación web local llamada "Anonimizador beailabs" que funcione en mi navegador (localhost) y use Ollama como motor de IA. Nada debe salir de mi máquina: cero llamadas a APIs externas, cero CDNs, todo el código y las librerías en local.
Este es el repositorio de GitHub de Ollama como referencia de su API y documentación: https://github.com/ollama/ollama
**Qué hace la app:**
1. Tengo un área grande donde pego un texto (email, contrato, transcripción de reunión). También acepta arrastrar archivos .txt, .md, .docx y .pdf:
- Para .docx y .pdf, extrae el texto en local, nunca servicios online.
- Al soltar el archivo, muestra el texto extraído en el área de entrada para que pueda revisarlo antes de anonimizar.
- Si el PDF es escaneado (imagen sin capa de texto): muestra un aviso claro de que ese PDF no tiene texto extraíble.
2. Al pulsar "Anonimizar", el texto se envía al modelo de Ollama corriendo en local (modelo qwen3:4b); si no está descargado, descárgalo tú con ollama pull qwen3:4b antes de arrancar la app). Usa qwen3:4b en toda la aplicación, no uses ningún otro modelo. El modelo detecta y sustituye estos datos sensibles por placeholders numerados:
- Nombres de personas → [PERSONA_1], [PERSONA_2]...
- Nombres de empresas → [EMPRESA_1]...
- Emails → [EMAIL_1]...
- Teléfonos → [TELEFONO_1]...
- DNI/NIE (formato español, 8 números + letra, o X/Y/Z + 7 números + letra) → [DNI_1]...
- Importes económicos (con €, EUR, o formatos como 1.500,00) → [IMPORTE_1]...
- Direcciones postales → [DIRECCION_1]...
- IBANs y números de cuenta → [CUENTA_1]...
3. La misma entidad repetida en el texto recibe siempre el mismo placeholder.
4. Encima del botón "Anonimizar" hay una fila de checkboxes, una por categoría (personas, empresas, emails, teléfonos, DNI/NIE, importes, direcciones, cuentas), para elegir qué categorías se anonimizan en cada uso. Por defecto todas marcadas menos importes. Las categorías desmarcadas se dejan intactas en el texto.
5. El resultado se muestra en un panel al lado del original, con los placeholders resaltados en color, y un botón "Copiar" para llevármelo a ChatGPT.
6. La app guarda en memoria el mapa de equivalencias (placeholder → valor original) y lo muestra en una tabla plegable debajo.
7. Hay un tercer panel "Des-anonimizar": pego ahí la respuesta que me haya dado ChatGPT y la app sustituye los placeholders de vuelta por los valores originales usando el mapa.
**Detalles técnicos importantes:**
- Para DNI, email, teléfono, IBAN e importes usa expresiones regulares además del modelo, porque son patrones fijos y el regex es más fiable. El modelo de Ollama se usa para lo que el regex no puede: nombres de personas, empresas y direcciones.
- Pide al modelo que responda SOLO con un JSON con las entidades detectadas y valida ese JSON antes de aplicarlo. Si el JSON viene mal, reintenta una vez y si falla muestra un error claro, nunca un texto a medio anonimizar sin avisar.
- La extracción de docx y PDF ocurre 100% en local, igual que todo lo demás. Ningún archivo se sube a ningún sitio.
- El texto original nunca se guarda en disco ni en ningún log. Todo vive en memoria y desaparece al cerrar la pestaña.
- Muestra un indicador de "procesando" mientras el modelo trabaja, con el tiempo transcurrido.
**Diseño:**
- **Cabecera**: sustituye el icono actual por un candado simple en un círculo con gradiente de `#3D3D8F` a `#7C5CFC`. Debajo del título "Anonimizador · beailabs", añade un subtítulo en texto secundario: "Tapa los datos sensibles antes de usar la IA de la nube". A la derecha, mantén el badge de estado de Ollama pero añade debajo un segundo badge con fondo `#C7B8FF` y texto `#1A1A2E` que diga "100% local · Nada sale de tu máquina" con un puntito de candado.
- **Checkboxes como chips**: convierte los checkboxes de categorías en chips tipo píldora que se activan/desactivan al clicar: activo con fondo `#3D3D8F` y texto blanco, inactivo con fondo `#F4F6FF`, borde fino `#C7B8FF` y texto `#6B6B8A`. Sin el cuadradito de checkbox visible. La etiqueta "Qué anonimizar:" pasa a mayúsculas pequeñas espaciadas en `#6B6B8A`.
- **Estado vacío del resultado**: en lugar de la frase en cursiva, muestra centrado un candado grande en trazo fino `#C7B8FF` y debajo dos líneas: "Aquí verás tu texto limpio" en `#1A1A2E` y "Los datos sensibles se convertirán en etiquetas de color" en `#6B6B8A`.
- **Botón Anonimizar**: dale gradiente de `#3D3D8F` a `#7C5CFC`, esquinas más redondeadas (12px), y un icono de candado pequeño a la izquierda del texto. Hover con sombra suave morada.
- **Placeholders del área de entrada**: cambia el texto por "Pega aquí tu contrato, email o transcripción… o arrastra un .txt, .md, .docx o .pdf".
- **Pie de página**: añade un footer discreto centrado en `#6B6B8A`: "Anonimizador · beailabs — proyecto open source · El texto nunca sale de tu ordenador" con un enlace "Código en GitHub" en `#7C5CFC` (déjalo apuntando a # de momento, ya pondré la URL).
- **Detalle general**: sombras algo más suaves y difusas en las tarjetas (tipo 0 8px 24px rgba(61,61,143,0.08)), y esquinas redondeadas consistentes de 16px en paneles y 12px en elementos interactivos.
Cuando esté lista, arranca la app y dime en qué URL la abro.En el vídeo monto la herramienta entera desde cero: el brainstorming de Claude Code, la prueba en modo avión y el flujo completo con ChatGPT delante de la cámara. Si quieres verla nacer antes de lanzarte, empieza por ahí.
¿Y tú? ¿Qué documento no subirías jamás a ChatGPT? Te leo en comentarios, que de ahí salen las mejoras de la herramienta.

