Nous: preguntar a tus notas en lenguaje natural, con IA local y sin pagar por uso
Ficha Técnica del Proyecto
Mes
Mes 2
Proyecto
Nous
Stack Tecnológico
Herramientas IA
Yo tengo mis notas repartidas entre el Bloc de notas del Mac, Apple Notes en el móvil y un Notion que abandoné hace un año. Nunca encuentro nada cuando lo necesito y, cuando por fin aparece algo, no recuerdo con qué otra nota estaba relacionado.
Nous es mi respuesta: escribo notas en texto plano y le pregunto en lenguaje natural. No es un buscador con plantillas encima, sino una respuesta generada de verdad y siempre apoyada en lo que hay escrito. Es el segundo proyecto de mi reto de 12 meses, 12 proyectos.
El problema
La información útil acaba repartida en varias herramientas, y cada una guarda un trocito. Buscar entre ellas cuesta tiempo, y un buscador de palabras clave solo ayuda si recuerdas cómo escribiste la nota. Lo que falta casi siempre es la conexión: saber qué otra cosa tenías apuntada sobre lo mismo.
Poner una IA encima parece la salida obvia, pero tiene dos costes. Con un servicio externo se paga por uso, y para buscar en mis propias notas no me compensaba. Y las notas privadas tendrían que viajar a un tercero, algo que no quería hacer.
La solución
Nous tiene dos pantallas: Notas y Chat. Las notas son texto plano con etiquetas, sin carpetas ni jerarquías forzadas. La primera línea es el título y punto.

Entre notas se puede enlazar escribiendo el título de otra entre dobles corchetes, y la nota enlazada muestra automáticamente cuáles la mencionan. Así se ven las conexiones sin tener que mantenerlas a mano.

El chat es lo que cambia la forma de usarlo. Preguntas con tus palabras y la respuesta se genera a partir de tus notas. Recuerda la conversación, así que puedes preguntar «¿y sobre el viaje?» sin repetir el contexto, y la respuesta va apareciendo palabra a palabra en vez de hacerte esperar con una rueda de carga.

Todo corre en mi propio ordenador. La IA es Ollama, sin factura ni clave de API, y ni una nota sale de casa. También se instala como app en el móvil.
Qué demuestra este proyecto
- Aplicar IA sin depender de servicios externos ni de su coste: el motor corre en local, sin factura por uso y sin clave de API.
- No quedar atado a un proveedor: el proveedor de IA es intercambiable por diseño. Detrás puede haber Ollama en local, una API de pago (Voyage más Claude) o uno simulado para los tests.
- Cuidar la privacidad de los datos: las notas no salen de la máquina y el proveedor de IA no ve ninguna.
- Resolver la búsqueda por significado sin montar infraestructura extra: va sobre pgvector dentro del mismo Postgres, sin un servicio de base de datos vectorial aparte.
- Revisar a fondo antes de enseñar el trabajo: en la revisión previa a publicarlo salieron un fallo real y capturas que decían ser de datos ficticios y eran mis notas.
El resultado técnico
Para quien quiera el detalle: React y TypeScript en el frontend, Node con Fastify en el backend, PostgreSQL con pgvector y Playwright para las pruebas. Arquitectura hexagonal, con la generación de respuestas y los embeddings como dos puertos independientes. Por defecto uso mxbai-embed-large y qwen2.5:7b-instruct sobre Ollama, en un Mac mini.
- Al añadir los enlaces entre notas, la pantalla pasó a pedir la lista al backend dos veces. Rompía un test y dejaba desactualizados los enlaces tras editar una nota con un filtro activo. Lo resolví quedándome con una única fuente de datos y filtrando en el cliente, así que el fallo desaparece por diseño.
- Las capturas del README decían ser de datos ficticios, pero eran mis notas reales y no existía script de datos de ejemplo. Las regeneré con una base de datos de prueba aislada y notas inventadas, con el motor real respondiendo.
- Dependabot había separado la actualización de react y react-dom en dos Pull Requests, y cada una por separado rompía el build. Las apliqué juntas.
La primera versión mostraba bajo cada respuesta las notas de origen y tenía una pantalla de búsqueda aparte. En uso real sobraba: rompía la sensación de conversación. El backend sigue filtrando por relevancia lo que pasa al modelo, así que las respuestas siguen ancladas a las notas, solo que ya no hace falta enseñarlo.
En su momento decidí no montar una demo pública, porque la idea de Nous es que tus notas no salen de tu máquina y una demo alojada la contradecía. El repositorio es público y se puede clonar.
Ver el repositorio de Nous en GitHub
Si tienes un problema parecido, mucha información escrita que nadie consigue aprovechar, cuéntamelo.