project@lemoria:~$ cat README.md | head -5
 _     _____ __  __  ___  ____  ___    _    
| |   | ____|  \/  |/ _ \|  _ \|_ _|  / \   
| |   |  _| | |\/| | | | | |_) || |  / _ \  
| |___| |___| |  | | |_| |  _ < | | / ___ \ 
|_____|_____|_|  |_|\___/|_| \_\___/_/   \_\

Memory OS para tu desarrollo con IA

Orquesta proyectos de software con trazabilidad total usando Spec Driven Development, 8 agentes OpenCode y PostgreSQL como fuente de verdad. Desde la idea hasta el commit y la documentación.

8
Agentes
15
Pasos SDD
41
Tests
8
Enums
$ lemoria features --all

Características

Cada decisión, cada línea de código, cada conversación — todo queda registrado y trazable.

[01]

Spec Driven Development

Flujo completo: discovery → spec → PRD → tasks → architecture → implementation → testing → review → commit → push → documentation → memory.

[02]

Trazabilidad total

Cada task tiene un ID único. Commits con task-XXX. Todo conectado al PRD original.

[03]

8 Agentes OpenCode

Orquestador + implementation + frontend + DB + testing + GitHub + review + documentation. Cada uno con contexto limitado.

[04]

PostgreSQL fuente de verdad

Todo se persiste en PostgreSQL 16 con SQLAlchemy. La base de datos es el único fuente de verdad.

[05]

Conventional Commits

Commits con formato tipo(scope): descripción [task-XXX]. Trazabilidad automática código ↔ requerimientos.

[06]

Architecture Decision Records

Cada decisión técnica se registra con contexto, opciones consideradas y justificación.

[07]

State Machine Resumible

Cada paso del flujo se persiste en flow_steps. Si el contexto del LLM se pierde, se retoma desde donde quedó.

[08]

Vault Bidireccional

Exporta DB a markdown con wikilinks y restaura DB desde notas. Sin pérdida de datos.

[09]

Enums + CheckConstraints

8 enums tipados con restricciones a nivel DB. Sin strings mágicos.

[10]

109 Tests + CI Automático

Suite con pytest en SQLite in-memory + CI en GitHub Actions con matrix Python 3.11/3.12/3.13.

[11]

7 Skills Modulares

Skills especializadas: frontend, backend, database, testing, code-review, git-workflow, documentation.

[12]

Context7 MCP

Documentación en tiempo real de librerías y frameworks vía MCP server.

[13]

Telemetría de opencode

Lee opencode.db en modo read-only: sesiones, tokens y costo por agente. lemoria usage te da el total histórico, el desglose por modelo y por subagente.

[14]

Panel de Omarchy

Instala un plugin propio de Omarchy: total histórico siempre visible, presupuesto mensual y tabla por agente con modelo. No toca /usr/share/omarchy.

[15]

Modelos por agente

Fija modelo y reasoning effort por subagente. Por defecto heredan el de quien los invoca, y se cambian cuando quieras.

$ lemoria agents --list

Los 8 agentes

Cada agente tiene un rol específico, permisos ajustados y recibe solo el contexto que necesita.

orchestrator

Orquestador

Orquestador

Analiza el contexto, aplica SDD, delega tareas a subagentes y consolida resultados.

implementation-agent

Implementation

Implementación

Implementa lógica de backend, scripts, APIs y toda la lógica de negocio.

frontend-agent

Frontend

UI / UX

Implementa interfaces de usuario, componentes, estilos y routing.

db-agent

Database

Base de datos

Diseña esquemas, genera migraciones, optimiza consultas y asegura integridad referencial.

testing-agent

Testing

Pruebas

Escribe tests unitarios y de integración con pytest. Verifica cobertura.

github-agent

GitHub

Trazabilidad

Mantiene trazabilidad con GitHub: issues, PRs, milestones. Solo lectura.

review-agent

Review

Revisión técnica

Revisa código, arquitectura y decisiones técnicas. Solo observa y reporta.

documentation-agent

Documentación

Documentación

Genera y mantiene documentación en Obsidian vault, READMEs y markdown.

$ lemoria flow --help

Spec Driven Development

15 pasos desde la idea hasta la memoria actualizada. Cada paso queda registrado en PostgreSQL.

1DiscoveryPreguntas esenciales
2SpecEspecificación detallada
3PRDProduct Requirements
4TasksDesglose en tareas
5ArchitectureDiseño arquitectónico
6ImplementationCódigo por agentes
7TestingTests unitarios + integración
8ReviewRevisión técnica
9CommitConventional Commit
10PushSubida a GitHub
11DocumentationDocumentación generada
12Memory UpdateActualizar memoria
13State Machineflow_steps en DB
$ lemoria usage --json

Tu consumo, de verdad

Lemoria lee opencode.db en modo read-only y convierte el consumo disperso en una sola lectura: cuánto llevas, en qué modelos y qué agente lo gastó.

user@host — lemoria usage
$lemoria usage
Total 273.8M tokens (2026-08-17 → 2026-09-28)
  101 sessions · 4187 prompts · 11 active days
By model (all-time)
opencode/big-pickle 232.8M in 9.5M · out 220.8M · cache 2.6M
nvidia/…nemotron-3.5-lightning 40.8M in 2.0M · out 38.6M
By agent (all-time)
orchestrator 160.3M 8 sessions
build 46.2M 5 sessions
implementation-agent 35.7M 36 sessions
$ ./install.sh

Listo en 3 pasos

Clona, corre el instalador y abre OpenCode. El script resuelve la base de datos y el paquete de Python por vos.

project@lemoria — ~/lemoria
$git clone https://github.com/devcristianlopez/lemoria.git
$cd lemoria
$./install.sh
→ uv uv 0.12.1 (primario)
→ postgres localhost:5432 (ya respondía — no se tocó)
✓ Lemoria instalado vía: uv
$lemoria project create "Mi proyecto" -d "Descripción"
$lemoria flow start <project-id> "Mi idea"
$opencode .
$ ./install.sh [1/9] Verificando requisitos

Lo que revisa antes de instalar

El instalador no adivina: mira tu máquina y elige el camino más limpio que funcione. Esto es lo que decide.

PostgreSQL

Tiene que responder algo en localhost:5432. Si tu servidor ya está corriendo, el instalador lo respeta y no lo toca: solo verifica que las credenciales de .env sirvan.

  • A · recomendado
    • $sudo pacman -S postgresql # Arch / Omarchy
    • $sudo systemctl enable --now postgresql
    • $sudo -u postgres psql -c "CREATE USER lemoria WITH PASSWORD 'lemoria';"
    • $sudo -u postgres createdb -O lemoria lemoria

    Debian/Ubuntu: sudo apt install postgresql · Fedora: sudo dnf install postgresql · macOS: brew install postgresql

  • B · alternativa
    • $sudo pacman -S docker docker-compose
    • $sudo systemctl enable --now docker
    • $docker compose up -d (lo levanta el instalador)
    Sobre sudo usermod -aG docker $USER: el grupo docker equivale a root sin contraseña. Tener acceso al socket del daemon permite montar /, editar /etc/shadow y correr contenedores privilegiados. Lemoria no lo recomienda: usá la vía A, que no pide ese privilegio.

El paquete de Python

Se prueban en orden y cada uno es más invasivo que el anterior. Solo se cae al siguiente si el anterior falló.

uv → venv → pip

  • 1 · uv
    • $sudo pacman -S uv # Arch / Omarchy
    • $uv tool install --editable ".[dev]"

    Fuera de Arch, uv no está en los repos: se instala desde su propia documentación. No pide sudo ni toca el intérprete del sistema.

  • 2 · venv propio
    • $python3 -m venv ~/.local/share/lemoria/venv
  • 3 · pip (último recurso)
    Por qué pip install -e . falla en Arch + Python 3.14: Arch separa pip del intérprete — python3 -m pip responde No module named pip — y PEP 668 marca el intérprete del sistema como EXTERNALLY-MANAGED. Romper eso con --break-system-packages desactiva la protección y puede arrastrar a otras herramientas.