Instalación de Engram

Por: Artiko
engraminstalacionhomebrewgowindowslinux

Antes de instalar

Engram es un binario Go estático. Esto significa que no necesitas instalar Go para usarlo a menos que elijas compilar desde fuente. En la mayoría de los casos, la instalación tarda menos de un minuto.

La base de datos SQLite se crea automáticamente en ~/.engram/engram.db la primera vez que ejecutas cualquier comando de Engram. No hay pasos de inicialización manuales.

Requisitos:

Instalación en macOS y Linux con Homebrew

Homebrew es el método recomendado para macOS y Linux porque gestiona actualizaciones automáticamente y no requiere configurar el PATH manualmente.

brew install gentleman-programming/tap/engram

Para actualizar a la versión más reciente:

brew update && brew upgrade engram

Si instalaste la versión Cask antigua (anterior a v1.0.1, cuando era distribuida como aplicación de escritorio):

brew uninstall --cask engram 2>/dev/null
brew install gentleman-programming/tap/engram

Verifica la instalación:

engram version
# Output: engram v1.x.x

Instalación en Linux sin Homebrew

Si no usas Homebrew, tienes dos opciones en Linux.

Opción A: Descargar el binario precompilado

Ve a GitHub Releases y descarga el archivo correspondiente a tu arquitectura:

ArquitecturaArchivo
Linux x86_64engram_<version>_linux_amd64.tar.gz
Linux ARM64engram_<version>_linux_arm64.tar.gz
# Ejemplo para x86_64
curl -L https://github.com/Gentleman-Programming/engram/releases/latest/download/engram_linux_amd64.tar.gz -o engram.tar.gz
tar -xzf engram.tar.gz
chmod +x engram
sudo mv engram /usr/local/bin/

Verifica:

engram version

Opción B: Compilar desde fuente

Si tienes Go 1.21+ instalado:

git clone https://github.com/Gentleman-Programming/engram.git
cd engram
go install ./cmd/engram

El binario se instala en $(go env GOPATH)/bin/engram. Si ese directorio está en tu PATH, ya puedes usar engram directamente.

Para compilar con el número de versión visible en engram version:

VERSION=$(git describe --tags --always)
go build -ldflags="-X main.version=$VERSION" -o engram ./cmd/engram
sudo mv engram /usr/local/bin/

Instalación en Windows

Windows tiene tres caminos. El más confiable para usuarios técnicos es go install porque compila el binario localmente, evitando alertas de antivirus.

Opción A: go install (recomendado)

Con Go instalado en tu sistema:

go install github.com/Gentleman-Programming/engram/cmd/engram@latest

El binario se instala en %GOPATH%\bin\engram.exe (típicamente %USERPROFILE%\go\bin\). Asegúrate de que esa ruta esté en tu variable de entorno PATH.

Para verificar:

engram version

Opción B: Compilar desde fuente

git clone https://github.com/Gentleman-Programming/engram.git
cd engram
go install ./cmd/engram

# Con número de versión:
$v = git describe --tags --always
go build -ldflags="-X main.version=local-$v" -o engram.exe ./cmd/engram

Opción C: Binario precompilado

Descarga engram_<version>_windows_amd64.zip desde GitHub Releases y extrae engram.exe a un directorio en tu PATH.

Expand-Archive engram_*_windows_amd64.zip -DestinationPath "$env:USERPROFILE\bin"
# Agrega al PATH permanentemente:
[Environment]::SetEnvironmentVariable(
  "Path",
  "$env:USERPROFILE\bin;" + [Environment]::GetEnvironmentVariable("Path", "User"),
  "User"
)

Nota sobre antivirus en Windows: Los binarios precompilados de proyectos open source pequeños pueden activar falsos positivos en Windows Defender y otros antivirus (alerta típica: Trojan:Script/Wacatac.H!ml). Esto ocurre porque el binario no está firmado digitalmente (los certificados de firma cuestan cientos de dólares anuales). El código fuente es completamente auditable en GitHub. Si tu antivirus bloquea el binario, usa la Opción A (go install) que compila en tu máquina local y no activa estas alertas.

Rutas de datos en Windows:

Variables de entorno

Engram respeta estas variables de entorno en todos los sistemas operativos:

VariableDescripciónValor por defecto
ENGRAM_DATA_DIRDirectorio para la base de datos SQLite~/.engram
ENGRAM_PORTPuerto del servidor HTTP7437
ENGRAM_PROJECTNombre del proyecto para el servidor MCPAuto-detectado via git

Puedes establecerlas en tu ~/.bashrc, ~/.zshrc, o equivalente:

export ENGRAM_DATA_DIR="$HOME/.config/engram"
export ENGRAM_PORT=8000

Verificar la instalación

Después de instalar, ejecuta estos comandos para confirmar que todo funciona:

# Verificar versión
engram version

# Verificar que la base de datos se puede crear
engram stats

# Ver todos los comandos disponibles
engram --help

La primera ejecución de engram stats crea automáticamente ~/.engram/engram.db si no existe. Deberías ver algo como:

Project: (ninguno detectado)
Observations: 0
Sessions: 0

Estructura de archivos creada

Después de la primera ejecución, Engram habrá creado:

~/.engram/
├── engram.db          # Base de datos SQLite principal
└── cloud.json         # Configuración cloud (se crea al configurar)

Eso es todo. No hay archivos de configuración adicionales, no hay demonios corriendo en segundo plano, no hay servicios systemd que configurar manualmente (aunque es posible hacerlo — ver capítulo 7).

Actualizar Engram

Homebrew:

brew update && brew upgrade engram

go install:

go install github.com/Gentleman-Programming/engram/cmd/engram@latest

Binario manual: Descarga la nueva versión desde GitHub Releases y reemplaza el binario anterior.

Importante después de actualizar cuando un cliente MCP está corriendo: Si Claude Code u otro agente MCP ya está en ejecución cuando actualizas el binario de Engram, necesitas reiniciar el agente para que recargue el subproceso MCP con la versión nueva. En Claude Code:

engram setup claude-code  # regenera los hooks y configs
# luego reinicia Claude Code

Actualizar el binario en disco no reemplaza un proceso MCP stdio ya corriendo.

Desinstalación

Si necesitas eliminar Engram completamente:

# Homebrew
brew uninstall engram

# Manual
sudo rm /usr/local/bin/engram    # o donde esté el binario
rm -rf ~/.engram                  # base de datos y configuración

Ten en cuenta que eliminar ~/.engram borra toda tu historia de memorias. Si quieres hacer una copia de seguridad antes:

engram export engram-backup-$(date +%Y%m%d).json

En el siguiente capítulo conectamos Engram con los distintos agentes de IA.