Escrita para los equipos de informática y seguridad, para el delegado de protección de datos y para quien instruye un expediente de contratación. Ninguna de estas comprobaciones les pide fiarse de esta web: pídannos el módulo y su equipo las corre en una tarde.
Hasta julio de 2026 el motor corría de verdad en la portada. Lo quitamos a propósito, y el motivo conviene saberlo: una demo pública que contesta es una forma de sacarle a un detector cómo decide, a pregunta por segundo, toda la noche y sin abrir un solo fichero. La demo de la portada es hoy una grabación de ejecuciones reales. El motor se lo entregamos a usted, y en su casa sondearlo es asunto suyo.
Construido. Comprobable hoy.
Compilado desde Rust a código nativo y a WebAssembly. Sin azar, sin pesos de un modelo y sin muestreo: la misma entrada, con el mismo estado de sesión, da la misma salida. Ningún modelo de IA interviene en la detección. Lo único que se arrastra es la memoria de sesión, que vuelve a tapar un nombre ya identificado antes en esa misma conversación, y que la aplicación que llama al motor puede borrar.
No es que prometamos que no llama a ningún sitio: es que dentro del motor no hay una sola línea capaz de abrir una conexión. Un módulo de WebAssembly sólo puede llamar a lo que se le entrega, y a éste no se le entrega nada: no puede abrir un socket, ni leer un fichero, ni mirar el reloj. Dejen el módulo que les enviemos junto a cualquier página que tengan abierta y peguen esto en la consola:
const ruta = './nonimo_core.wasm'; // el fichero que les enviamos
const bytes = await (await fetch(ruta)).arrayBuffer();
const m = await WebAssembly.instantiate(bytes, {});
console.log(WebAssembly.Module.imports(m.module));
// → [] la lista de importaciones está vacía Es la primera comprobación que haríamos nosotros revisando el producto de otro, y es cosa de un minuto.
Lo que lleva dígito de control —DNI, NIE, número de la Seguridad Social, IBAN— se limpia solo. Lo que se encuentra por la posición o por las palabras de alrededor —nombres, direcciones, números de expediente— se tapa enseñándolo, con el motivo en una frase y con un clic para deshacerlo. Por defecto no se quita nada en silencio sin prueba aritmética. Dos cosas pueden cambiar eso, y las deciden ustedes: los términos que carguen, y el escalón de política que elija informática — son cinco, y van desde observar hasta bloquear, pasando por avisar, tapar enseñándolo y limpiar.
No repartimos ningún diccionario de nombres ni de apellidos. Los nombres se encuentran por su posición: la etiqueta del impreso, la firma al pie, la fórmula de cortesía delante del apellido, la columna de una tabla. Así la cobertura no depende de lo común que sea un nombre, que es justo donde fallan las listas y los modelos. La única lista que interviene es la suya: sus clientes y sus expedientes, cargados por ustedes, comparados en su equipo, y que nunca nos llegan.
Construido. Este es el inventario entero.
El motor no escribe nada en disco: no tiene acceso a ficheros, y el módulo que les entregamos no declara ni una importación. Lo que sí hace es devolver la conversación en bytes cuando la aplicación se los pide. Guardarlos es cosa de la aplicación, y las dos de escritorio los guardan. Así que lo decimos entero.
El mapa que devuelve los valores tapados, los recuentos por categoría, los nombres que esa conversación ya había reconocido, los términos que fue aprendiendo por el camino y el idioma con el que acuñó sus marcadores.
Y sobre su vocabulario, la precisión hay que hacerla por plataforma. La lista que ustedes carguen no se copia dentro — el fichero guardado tiene seis campos y ninguno es el diccionario. Pero los términos de esa lista que aparezcan en la conversación sí quedan dentro, como cualquier otro valor tapado. Hoy eso ocurre en Windows; en el Mac todavía no, y no por diseño sino porque su aplicación aún no carga vocabulario propio.
| Mac | Windows | |
|---|---|---|
| Dónde | Dentro de Application Support, en una carpeta con permisos 0700 | Dentro de LocalAppData |
| Con qué | AES-GCM, con una clave derivada del Secure Enclave | DPAPI de usuario |
Cuándo: cada vez que la aplicación tapa algo, y al cerrarla. Devolver los nombres no vuelve a escribir, y con el cupo del mes agotado tampoco.
En esa misma carpeta viven la clave del Mac y los temporales de las dos. Y una carpeta más arriba hay un segundo fichero, sin cifrar, con los totales por categoría — nombres de categoría y números, nunca valores de nadie. Está ahí arriba a propósito: para que ni «Borrar todo» ni la limpieza de los treinta días se lo lleven, porque sin esos totales una etiqueta ya entregada podría volver a significar a otra persona.
Tampoco ahí hacen lo mismo: el Mac guarda esos nombres pasados por una huella con sal propia de cada instalación, y Windows los deja legibles. Y decimos hasta dónde llega esa huella, porque prometer más sería fácil: la sal va en la primera línea de ese mismo fichero y las categorías posibles son un catálogo cerrado de treinta y tres, así que quien tenga el fichero recupera los nombres probando las treinta y tres — es lo que hace la propia aplicación para leerlo. La sal sirve para que dos instalaciones no se puedan comparar entre sí; no para que quien abra el fichero no lo entienda.
Y el número no cuenta personas: es un suelo, el número por debajo del cual esa categoría ya no vuelve a repartir. En régimen coincide con el marcador más alto que repartió; pero si la aplicación pierde su historia, las treinta y tres suben de golpe al mismo número, que puede estar muy por encima de lo que nadie llegó a usar. Por eso no se puede leer como un recuento de nada.
Una conversación guardada deja de poder abrirse a los treinta días sin guardarse, y la fecha es una sola para el fichero entero: un guardado de hoy le pone fecha de hoy también a lo que lleve meses dentro. Pero no es el mismo plazo en las dos.
En Windows es un plazo de apertura y nada más: el fichero caducado se queda en el disco, cifrado, hasta que lo sobrescriba un guardado posterior — y lo que caduca es la fecha, no el fichero, porque lo que se compara es con el reloj del equipo.
En el Mac son las dos cosas: deja de abrirse y además la limpieza del arranque lo borra, contando desde la última escritura del fichero y no desde la fecha que lleva dentro, así que ahí puede desaparecer un poco antes. Nuestros propios controles internos usan veintinueve días justo por eso.
El plazo es sólo de la conversación. Los totales por categoría y las preferencias no llevan fecha y no caducan en ninguna de las dos. El historial de cambios de ajustes sí lleva la fecha y la hora de cada cambio —para eso existe— y tampoco caduca. Y el contador de uso lleva el mes en curso y se reinicia cada mes.
| Mac | Windows | |
|---|---|---|
| Limpieza automática | Borra lo caducado la próxima vez que se abra Nonimo, antes de abrir nada. No hay barrido en segundo plano: a una aplicación que no se vuelve a abrir no le caduca nada del disco | Ninguna. Un fichero caducado ya no lo abre Nonimo, pero sigue ahí hasta que lo sobrescriba un guardado posterior |
| Botón de borrar | «Borrar todo» en los ajustes. Le pide al sistema que quite el fichero y mira lo que el sistema le contesta: si el borrado no sale, dice «Borrado a medias», deja de poder abrirlo cambiando el sello por fuera, intenta vaciarlo a cero bytes y le enseña la carpeta para que lo borre usted | Hoy no hay ninguno. Cerrar la aplicación guarda, no borra |
| Copias de seguridad | Excluye de Time Machine la carpeta de las conversaciones y el fichero de totales | No tiene atributo equivalente: un clon de disco o una copia en bloque del perfil se lo llevan |
«Borrar todo» quita la conversación, y sólo ésa: la clave y el fichero de totales se quedan a propósito.
| Frente a | Mac | Windows |
|---|---|---|
| Un programa con la sesión de esa persona | 🔴 No protege ninguna: puede descifrar el fichero | |
| Quien administra la máquina | 🔴 No: con permisos de administrador se llega a la clave y el chip la desenvuelve igual | 🔴 No: quien llega a administrador llega a la credencial de esa cuenta |
| Otra cuenta sin privilegios | ✅ Sí, por los permisos (0700 la carpeta, 0600 los ficheros) | ✅ Sí, por el cifrado: DPAPI va atado a la credencial de la cuenta, y poder leer el fichero no basta |
| Llevarse el fichero a otro ordenador | ✅ No abre: el chip ata la clave al Mac que la creó, y en otro son bytes muertos | ⚠️ El fichero suelto no abre, pero un clon del disco o una copia del perfil entero se llevan también la credencial — y entonces sí abre |
conversacion.nonimo.rescatado que hoy no
borra nada, y hay que quitarlo a mano.
El panel de cumplimiento sí guarda en disco los recuentos que recibe, porque de ahí sale el informe mensual — en su servidor y con el periodo de conservación que fijen ustedes.
Existen el motor y la aplicación de escritorio en las dos plataformas — la de Mac firmada con un Developer ID de Apple y notarizada, la de Windows también firmada. Lo que sigue cubre la aplicación personal y la versión de equipo, y pueden reprochárnoslo línea a línea.
No hay cuenta, y el único sitio donde les pedimos el correo es la página del alta de licencia —y, más adelante, el pago—: la propia aplicación no lo pide nunca. La detección no necesita conectarse a ningún servidor nuestro, ni siquiera para actualizar sus reglas, y eso conviene comprobarlo en vez de creerlo: el motor no tiene código de red con el que hacerlo.
Lo que la aplicación de fuera envía, una vez al día, es un recuento de uso: cuánto se lleva gastado del cupo del mes, cuánto de eso eran documentos y cuánto texto pegado, versiones y plataforma, y un número de instalación generado en la propia máquina. Ni una palabra de su texto y ni un término de su diccionario. La lista entera, punto por punto, está en privacidad.
El recuento diario no se puede apagar desde la aplicación, y la vía para oponerse es escribirnos. Las versiones de macOS hasta la 0.1.6 sí traen la casilla en Ajustes y en ellas sigue funcionando; desaparece al actualizar, y lo que este sitio les entrega hoy es una versión posterior en las dos plataformas.
La aplicación le pregunta a esta web si hay una versión más nueva. En macOS esa
petición no es anónima — preferimos escribirlo a dejar una frase más aseada: lleva
su versión y su sistema, en una sola cabecera y nada más, sin número de instalación, sin
parámetros en la dirección y sin cookies. La versión de Windows no manda ninguna
cabecera User-Agent, así que allí la petición es sólo una IP pidiendo
un fichero público.
Sin red, o con nuestro servidor caído, sigue tapando contra un contador local. Si el servidor fuera imprescindible, una caída nuestra dejaría a todo el mundo sin protección: por eso no lo es.
Dice, por ejemplo, que algo con forma AAA-9999-99999 apareció 37 veces
detrás de la palabra «pedido»: las letras pasan a A, los dígitos a 9. Tres candados: no
viaja el valor, no viaja ninguna palabra que no hayamos puesto nosotros, y hay un umbral
de repetición por debajo del cual no se apunta nada. El motor no envía el informe,
sólo lo prepara. Quien lo mandaría es la aplicación de fuera, con permiso, y vendrá
apagado por defecto.
Un evento del panel lleva cinco campos: fecha y hora, identificador del equipo, recuentos por categoría, versión de la política y acción tomada. No lleva el texto, ni los valores, ni la dirección de destino, ni lo que la persona escribió en la herramienta de IA. Si ese identificador se puede atribuir a una persona concreta lo deciden ustedes al desplegar: seudónimo por defecto, y nominal sólo si lo configuran así.
Cómo se instala y, sobre todo, qué no hace — para que informática lo evalúe antes de desplegarlo.
Nonimo no está certificado en el Esquema Nacional de Seguridad, ni en la ISO 27001, ni figura en el catálogo CPSTIC del Centro Criptológico Nacional. Ninguna. Lo decimos en la página que se lee antes de llamarnos, y no en la letra pequeña de un pliego.
El motor se ejecuta en cada puesto y el panel se instala en su infraestructura o en la de su integrador, así que no hay ningún sistema nuestro que meter en el alcance de su ENS. Lo que hay que evaluar son equipos y servidores que ya son suyos, ya categorizados y con su declaración de aplicabilidad. Nonimo entra como un producto más dentro de un sistema existente, no como un servicio prestado desde fuera.
El matiz importa, y por eso lo escribimos en vez de dejar que suene mejor de lo que es: el Real Decreto 311/2022 sí alcanza a los sistemas del proveedor cuando el proveedor presta el servicio, y los pliegos lo incorporan como cláusula. La ventaja aquí no es un tecnicismo a nuestro favor: es que en este montaje no hay sistema del proveedor. Lo que no les quita ningún deber — siguen teniendo que categorizar su sistema, revisar su análisis de riesgos y dejar constancia de la incorporación del producto.
El motor no abre conexiones, así que el flujo que sale del producto no lleva nunca datos tratados. Pero sí hay flujos, y los decimos nosotros antes de que los encuentren:
nonimo.ai un
fichero público y compara los números en el propio equipo. Sin cookies y sin parámetros
en la dirección, pero en macOS no es anónima. Se puede desactivar entera desde la
aplicación.
Los cinco llevan cifras, direcciones de correo que ustedes nos escriben, o formas — nunca el texto que el motor ha analizado, que es la afirmación que sostiene todo lo demás y la única que hace falta comprobar.
Dicha como posición y no como sentencia: no somos ni responsable ni encargado del tratamiento de los datos que pasan por el motor — no los recibimos, no los almacenamos y no tenemos forma de llegar a ellos. Si su delegado o su integrador lo ven de otra manera, no lo discutimos: firmamos igualmente el contrato de encargo del artículo 28 del RGPD, con su lista de subencargados, que hoy está vacía para el producto.
A petición, sin formulario y sin demostración obligatoria de por medio:
Si un pliego exige certificación del propio proveedor en el ENS o presencia en el catálogo CPSTIC, hoy no podemos concurrir. Se lo decimos antes de que gasten tiempo, no después de la mesa de contratación.
Quien firma: Llevant Group Pty Ltd, ABN 17 691 906 751, establecimiento principal en 1A Bruce Street, Kensington VIC 3031, Australia. No tenemos establecimiento en la Unión Europea. Contacto: hello@nonimo.ai.
El panel registra recuentos por categoría y por equipo, así que desplegarlo es, en España, una medida de control de la actividad laboral, con todo lo que eso lleva detrás. El artículo 20.3 del Estatuto de los Trabajadores permite adoptar medidas de vigilancia y control, pero guardando la consideración debida a la dignidad de la persona trabajadora. Y el artículo 87 de la LOPDGDD pide fijar los criterios de uso de los dispositivos digitales con la participación de la representación de los trabajadores, e informar a la plantilla antes y de forma expresa.
Que la medida sea proporcionada es lo que hay que argumentar delante del comité de empresa o de la junta de personal, y Nonimo está diseñado para que ese argumento sea fácil: el panel recibe recuentos y no texto, no ve lo que la persona escribió, y el identificador del equipo puede quedarse en seudónimo. Se prueba que el control estaba puesto sin leerle el trabajo a nadie.
Esa comunicación no la tienen que redactar ustedes: va con la documentación del despliegue, junto con la plantilla de política interna. Un despliegue que se salta este paso se puede tumbar entero, y descubrirlo tarde hunde el proyecto. Preferimos decirlo aquí y frenar una venta rápida.
Comprobado contra el sitio desplegado.
No en modo observación, sin comodines y sin un solo host de un tercero. Son las once que
sirve la cabecera: default-src 'self', script-src 'self',
style-src 'self' 'unsafe-inline', img-src 'self' data:,
font-src 'self', connect-src 'self' https://api.nonimo.ai,
object-src 'none', frame-ancestors 'none',
base-uri 'self', form-action 'none' y
upgrade-insecure-requests.
El único origen de scripts permitido es este dominio, y el único sitio al que una página
puede abrir una conexión —ni aunque alguien consiguiera meterle código— es
api.nonimo.ai, que es nuestro propio servidor y está ahí para que la página
del alta de licencia pueda hablar con él.
style-src admite estilos en línea, porque nuestra compilación incrusta la hoja de estilos dentro de la propia página.img-src admite además URIs data:, hoy sin usar ninguna, por si algún día entra un icono en línea.connect-src nombra https://api.nonimo.ai, porque la página del alta le manda una dirección de correo. Es nuestro servidor y no un tercero.
Son relajaciones de verdad y las van a encontrar igual: mejor que se las contemos
nosotros. Hasta julio de 2026 había una cuarta, 'wasm-unsafe-eval', que
necesitaba la demo viva para instanciar el motor; al quitar la demo se fue con ella.
X-Frame-Options: DENY y frame-ancestors 'none', los dos al mismo
valor, porque esta web no se embebe en ningún sitio. Más Permissions-Policy
negando cámara, micrófono, ubicación y pagos, que no pedimos ni vamos a pedir.
nosniff y strict-origin-when-cross-origin las envía Cloudflare
Pages por su cuenta; lo comprobamos antes de dejar de escribirlas nosotros, para no acabar
con la misma cabecera puesta dos veces.
Ninguna página de este sitio carga nada que no venga de este dominio, y por eso no hay banner de cookies. La única página que abre una conexión fuera de su propio documento es la del alta de licencia, y va a nuestro propio servidor.
Y una salvedad, dicha por nosotros — se encuentra en diez segundos con el mismo
inspector de cabeceras que les proponemos: nuestro alojamiento añade a sus respuestas las
cabeceras NEL y Report-To, que le piden al navegador que informe
de un fallo de conexión al punto de telemetría del propio alojamiento. Esos informes sólo
existen cuando la red falla, y no llevan nada de lo que ustedes escriban ni nada de la
página.
Analítica no hay: nuestro alojamiento nos ofrece una gratuita y sin cookies, y dijimos que no, porque encenderla mete un script de otro servidor — que es justo lo que esta página promete que no hacemos. No hace falta que se fíen: pásennos un analizador de cabeceras y comparen el resultado con el de cualquier otro producto de seguridad que estén mirando.
Ninguna: ni ENS, ni ISO 27001, ni CPSTIC, ni SOC 2. Somos una empresa nueva y esas auditorías cuestan más de lo que tenemos. Lo que hacemos en su lugar está arriba: una arquitectura que reduce el alcance, el motor revisado línea a línea y la oferta de que lo revise su equipo. Y contestamos cualquier cuestionario de seguridad que nos manden. Si para ustedes una certificación es requisito duro, díganlo ahora y les decimos con franqueza si llegamos a tiempo o no.
Depende del idioma y del tipo de documento, y quien le dé un solo número le está vendiendo el número, no la medición. Lo que damos son las mediciones, cada una con su corpus y su fecha. Estas son las del 31 de julio de 2026, y se quedan con esa fecha puesta: el motor sigue cambiando, así que si el expediente necesita las de hoy, se piden.
Un número medido en un idioma no dice nada del otro, así que los dos mercados se miden por separado, siempre.
Fue interna y adversaria, en julio de 2026: un lector por fichero, un verificador que intentaba tumbar cada hallazgo, 49 hallazgos brutos, 13 refutados y 36 confirmados y arreglados. Está bien hecha y no es lo mismo que un tercero acreditado, así que no la vamos a llamar auditoría.
Y esto no es asesoría jurídica. Describe cómo está construido el producto y qué obligaciones activa desplegarlo, para que su delegado y su asesoría decidan con los datos delante. Quien firma el expediente son ustedes.
¿Tienen preguntas de seguridad, o quieren que su equipo revise el motor? Escriban a hello@nonimo.ai. Lo de revisar el motor es una oferta de verdad: se lo damos para que lo lean.
Y si prefieren medirlo antes de hablar con nadie, pídannos el módulo y pásenle sus propios documentos en su propia máquina: una resolución publicada, un impreso en blanco, un expediente cerrado. Es la medición que vale, porque la hacen con su papel y no con el nuestro, y nosotros no vemos ni el documento ni el resultado.
¿Han encontrado una vulnerabilidad? Escriban a la misma dirección. Acusamos recibo en dos días laborables y les decimos qué vamos a hacer y cuándo. Nunca iremos contra quien informe de buena fe, y si quieren el crédito, se lo damos. Si alguna vez hubiera un incidente que les afectara, se lo contamos en menos de 24 horas desde que lo sepamos — menos de 24 y no 72 a propósito: las 72 horas para notificar a la AEPD son suyas y necesitan margen dentro de ellas.
Última revisión: 24 de septiembre de 2026. Cuando cambia el producto, cambian la página y la fecha.