Asistente personal que conecta Ollama / Claude Code con tu vault de Obsidian para actuar como un "segundo cerebro": guarda aprendizajes, soluciones de errores y notas directamente como Markdown dentro del vault, y antes de cada respuesta busca contexto relevante en tus notas existentes.
- 🚀 Instala Ollama automáticamente si no está en el sistema (Linux/macOS/Windows).
- 🔄 Arranca
ollama servesi no está corriendo. - 🤖 Descarga el modelo configurado si no existe (
ollama pull). - 🤖 Soporta dos backends: Claude Code (vía
ollama launch claude) u Ollama directo. - 🔍 Búsqueda por keywords en el vault (RAG ligero, sin embeddings).
- 📝 Guarda aprendizajes como notas Markdown con frontmatter compatible con Obsidian.
- 💻 REPL con historial, autocompletado y comandos slash.
- 🐧🐍 Portable a Linux, macOS y Windows.
| Componente | Versión |
|---|---|
| Python | 3.11+ (probado en 3.13) |
| Ollama | 0.10+ (probado en 0.32.1) |
| Claude Code CLI | opcional, sólo si usas BACKEND=claude-code |
| Obsidian vault | cualquier ruta accesible |
# 1. Instala Ollama si no lo tienes
curl -fsSL https://ollama.com/install.sh | sh
# 2. (Opcional) Instala Claude Code
# Ver: https://docs.claude.com/en/docs/claude-code
# 3. Clona o copia este proyecto
mkdir -p ~/Proyectos/second-brain
cd ~/Proyectos/second-brain
# (copia los archivos .py aquí)
# 4. Instala dependencias
python3 -m pip install -r requirements.txt
# 5. Configura
cp .env.example .env
# (edita .env si necesitas cambiar rutas o modelo)# 1. Instala Ollama para Windows desde https://ollama.com/download
# 2. (Opcional) Instala Claude Code
# 3. Clona o copia este proyecto a una carpeta (ej: C:\Users\<tu-usuario>\Proyectos\second-brain)
cd C:\Users\<tu-usuario>\Proyectos\second-brain
# 4. Instala dependencias
python -m pip install -r requirements.txt
# 5. Configura
copy .env.example .env
# (edita .env con la ruta a tu vault)python3 second_brain.pyAl arrancar, el script verifica paso a paso:
- Vault de Obsidian detectado (auto o vía
.env). - Ollama instalado → si no, pregunta e instala (Linux/Windows/macOS).
- Servicio
ollama servecorriendo → si no, lo arranca. - Modelo descargado → si no, pregunta y descarga (
ollama pull). - Backend activo y REPL abierto.
Opciones CLI (sobrescriben .env):
python3 second_brain.py --vault ~/Proyectos/ObsidianVault
python3 second_brain.py --backend ollama --model qwen3.6:latest
python3 second_brain.py --backend claude-code --model minimax-m3:cloud
python3 second_brain.py -y # auto-instala Ollama sin preguntar
python3 second_brain.py --no-install # aborta si Ollama no está
python3 second_brain.py --no-model-pull # aborta si el modelo no está| Flag | Descripción |
|---|---|
--vault <ruta> |
Ruta al vault de Obsidian |
--backend <nombre> |
claude-code u ollama |
--model <nombre> |
Modelo a usar |
--auto-install / -y |
Instala Ollama sin pedir confirmación |
--no-install |
Aborta si Ollama no está (no instala) |
--no-model-pull |
No descarga el modelo aunque no esté |
--no-auto-ollama |
No arranca ollama serve automáticamente |
| Comando | Descripción |
|---|---|
/help |
Muestra ayuda |
/save |
Guarda el último intercambio como nota de aprendizaje |
/recall <texto> |
Busca notas por keyword (sin enviar al LLM) |
/list |
Lista las primeras 20 notas del vault |
/index |
Reconstruye el índice de notas |
/restart |
Reinicia el backend |
/clear |
Limpia la pantalla |
/vault |
Muestra la ruta del vault |
/backend |
Muestra el backend activo |
/exit |
Sale del programa |
Cualquier otro texto se envía al LLM como pregunta. El sistema busca automáticamente notas relevantes en el vault y las inyecta como contexto.
Por defecto, el script busca el vault en estas rutas (en orden):
Linux:
~/Proyectos/ObsidianVault~/Documentos/ObsidianVault~/Documents/ObsidianVault~/ObsidianVault~/Obsidian
Windows:
%USERPROFILE%\Documents\ObsidianVault%USERPROFILE%\Documents\Obsidian%USERPROFILE%\ObsidianVault
Para usar otra ruta, define VAULT_PATH en .env o pásala con --vault.
second-brain/
├── second_brain.py # Entry point
├── config.py # Carga de configuración
├── vault.py # Lectura/escritura de notas Markdown
├── memory.py # Índice + búsqueda por keywords
├── learning.py # Creación de notas de aprendizaje
├── ollama_backend.py # Backends: Claude Code / Ollama directo
├── installer.py # Detección + instalación de Ollama
├── ui.py # REPL con prompt_toolkit + rich
├── requirements.txt # Dependencias Python
├── .env.example # Plantilla de configuración
└── README.md # Este archivo
- Verifica que la ruta existe y contiene
.obsidian/. - Define
VAULT_PATHen.envcon la ruta absoluta.
- Instala Claude Code o cambia
BACKEND=ollamaen.env. - Verifica que
claudeestá en tu PATH:which claude(Linux) owhere claude(Windows).
"Ollama no responde en http://127.0.0.1:11434"
- Arranca manualmente:
ollama serve. - O usa
--no-auto-ollama false(default: arranca solo). - Verifica que el puerto no esté bloqueado por firewall.
- Linux: necesitas
sudopara escribir en/usr/local/bin. Si no tienes sudo, instala manualmente: https://ollama.com/download/linux - Windows: el instalador puede requerir UAC (popup de permisos de admin). Ejecuta la consola como Administrador o instala manualmente: https://ollama.com/download/windows
- macOS: si no tienes Homebrew, descarga el .dmg desde https://ollama.com/download y arrastra a Aplicaciones.
- Usa
--no-installpara desactivar la instalación automática y gestionar tú mismo.
- Prueba un modelo más ligero:
gemma4:12b(7.6 GB) en lugar deqwen3.6(23 GB). - Cambia el modelo en
.env:OLLAMA_MODEL=gemma4:12b.
- Verifica permisos de escritura en el vault.
- Revisa que
LEARNINGS_SUBDIR(defaultAprendizajes) no esté en.gitignorede Obsidian.
MIT