Un CRM personal para cuidar tus relaciones

Autoalojado. Personas, fechas importantes y recordatorios, con notas y adjuntos cifrados.

Ver en GitHubInstalarDocker Compose. Tus datos se quedan en tu servidor.
Listado de personas de Simple CRM en tema oscuro, con tarjetas que muestran tags, estado de contacto y filtros por cadencia.

La app, tal como es

Capturas reales de la aplicación con datos de demostración.

Elige un fotograma o usa las teclas 1 a 5.

Pantalla de inicio de Simple CRM en tema oscuro: calendario del mes, recordatorios pendientes, personas favoritas, próximas fechas y sugerencias para contactar.
Calendario, pendientes, próximas fechas y a quién te toca escribir.
Listado de personas de Simple CRM en tema oscuro, con tarjetas que muestran tags, estado de contacto y filtros por cadencia.
Tarjetas con tags, filtros por cadencia y estado de contacto.
Tablero de recordatorios de Simple CRM en tema oscuro, con las columnas Pendiente, En curso y Hecho.
Recordatorios en columnas: pendiente, en curso y hecho.
Ajustes, pestaña Integraciones, de Simple CRM: interruptor de acceso MCP, URL del servidor, token y fragmentos para configurar el cliente.
Ajustes > Integraciones: URL, token y el bloque listo para tu cliente.
Pantalla de inicio de Simple CRM en tema claro, con el mismo calendario, pendientes, favoritos y próximas fechas.
Tema claro u oscuro, con el color de acento que elijas.

Instalación

Necesitas Docker con Compose v2 y Python 3 (solo para generar los secretos).

Levantamiento rápido

  1. Clona y genera los secretos

    El script crea .env.docker con la clave de Django, la clave de cifrado y la contraseña de Postgres.

  2. Levanta el stack

    Docker Compose construye y arranca la base de datos, el backend, el frontend y el proxy.

  3. Abre la app

    Entra a 127.0.0.1:8080 y crea tu cuenta en /register/. El registro se cierra después del primer usuario.

bash
git clone https://github.com/chaska-dev/SimpleCRM.git
cd SimpleCRM
python scripts/generate-secrets.py
docker compose --env-file .env.docker up -d --build

Luego abre http://127.0.0.1:8080 y crea la primera cuenta en /register/.

Guarda una copia de FIELD_ENCRYPTION_KEYS fuera del servidor: si la pierdes, las notas y los adjuntos cifrados no se pueden recuperar. En Linux o macOS el script puede llamarse python3.

Qué incluye

  • Personas y contactos

    Una ficha por persona con varios canales, tags, favoritos, cadencia de contacto y un registro de interacciones.

  • Cumpleaños y fechas

    Fechas anuales con la edad calculada y una vista de las próximas.

  • Recordatorios y tablero

    Estados (pendiente, en curso, hecho), recurrencia y una vista de tablero además de la lista.

  • Instituciones

    Universidades, empresas y otras organizaciones, con logo y membresías de cada persona.

  • Notas y adjuntos cifrados

    Cifrado Fernet en reposo. La clave vive en tu .env.docker, no en la base de datos.

  • Importar y exportar

    vCard (.vcf) y CSV de Google Contacts, con detección de duplicados.

  • Agentes de IA por MCP

    Claude Code, Claude Desktop, Cursor o VS Code leen y crean datos con un token revocable.

  • Español e inglés, temas y acento

    Interfaz en español e inglés, tema claro y oscuro, y el color de acento que prefieras.

Conecta un agente de IA

El servidor MCP es opcional y viene apagado. Lo activas desde la app y revocas el acceso cuando quieras.

  1. Actívalo

    En Ajustes > Integraciones, enciende “Permitir acceso de agentes de IA (MCP)”.

  2. Copia URL y token

    En Conexión copia la URL del servidor y el token. Si no hay token, pulsa “Generar token”; “Probar conexión” lo verifica.

  3. Pega el bloque

    En Configura tu cliente elige Claude Code, Claude Desktop, Cursor o VS Code y pega el bloque, que ya lleva tu URL y tu token.

Así se ve el bloque de cada cliente

Claude Code
claude mcp add --transport http simple-crm http://127.0.0.1:8080/mcp/ --header "Authorization: Bearer <TOKEN>"
Claude Desktop
{
  "mcpServers": {
    "simple-crm": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://127.0.0.1:8080/mcp/", "--header", "Authorization:Bearer <TOKEN>"]
    }
  }
}
Cursor
{
  "mcpServers": {
    "simple-crm": {
      "url": "http://127.0.0.1:8080/mcp/",
      "headers": { "Authorization": "Bearer <TOKEN>" }
    }
  }
}
VS Code
{
  "servers": {
    "simple-crm": {
      "type": "http",
      "url": "http://127.0.0.1:8080/mcp/",
      "headers": { "Authorization": "Bearer <TOKEN>" }
    }
  }
}

En la app ya vienen con tu URL y tu token reales; aquí <TOKEN> es un marcador. Claude Desktop necesita Node.js.

Una URL localhost solo funciona en el mismo equipo. Para conectar desde otro dispositivo, abre la app con la IP de tu red y publica el puerto (guía de configuración en el repositorio).

Importar y exportar contactos

En Ajustes > Importar y exportar. Nada se escribe hasta que revisas la vista previa.

Importar

Sube un .vcf exportado desde Android, iPhone (iCloud) o Google Contactos, o un CSV de Google Contactos. Verás los duplicados y eliges si omitirlos, completarlos o crearlos igual.

Exportar

Exporta a vCard o a CSV de Google, todos los contactos o los de un tag. Las notas solo se incluyen si lo pides, y entonces salen sin cifrar.