Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Second Brain — CLI Python

second brain 1 second brain 2

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.

Características

  • 🚀 Instala Ollama automáticamente si no está en el sistema (Linux/macOS/Windows).
  • 🔄 Arranca ollama serve si 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.

Requisitos

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

Instalación

Linux

# 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)

Windows

# 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)

Uso

python3 second_brain.py

Al arrancar, el script verifica paso a paso:

  1. Vault de Obsidian detectado (auto o vía .env).
  2. Ollama instalado → si no, pregunta e instala (Linux/Windows/macOS).
  3. Servicio ollama serve corriendo → si no, lo arranca.
  4. Modelo descargado → si no, pregunta y descarga (ollama pull).
  5. 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á

Flags disponibles

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

Comandos del REPL

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.

Detección del vault

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.

Estructura del proyecto

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

Troubleshooting

"No se encontró un vault de Obsidian"

  • Verifica que la ruta existe y contiene .obsidian/.
  • Define VAULT_PATH en .env con la ruta absoluta.

"Binario claude no encontrado"

  • Instala Claude Code o cambia BACKEND=ollama en .env.
  • Verifica que claude está en tu PATH: which claude (Linux) o where 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.

"No se pudo instalar Ollama"

  • Linux: necesitas sudo para 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-install para desactivar la instalación automática y gestionar tú mismo.

El modelo tarda mucho / responde en otro idioma

  • Prueba un modelo más ligero: gemma4:12b (7.6 GB) en lugar de qwen3.6 (23 GB).
  • Cambia el modelo en .env: OLLAMA_MODEL=gemma4:12b.

Las notas no se guardan

  • Verifica permisos de escritura en el vault.
  • Revisa que LEARNINGS_SUBDIR (default Aprendizajes) no esté en .gitignore de Obsidian.

Licencia

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages