remi

CLI y servidor MCP de Apple Reminders con soporte de secciones y sincronización con iCloud: la única herramienta que puede crear, gestionar y sincronizar secciones entre dispositivos.

Documentación

remi

remi

La CLI que Apple debería haber creado para Recordatorios.

Crea listas, añade recordatorios, organízalos en secciones y sincroniza todo entre tus dispositivos Apple — desde la terminal.

remi demo

¿Por qué remi?

  • Secciones con sincronización de iCloud — la única CLI que admite secciones de Recordatorios de Apple. Créalas, asigna recordatorios, muévelos entre ellas, y todo se sincroniza.
  • Lenguaje natural--due "next tuesday", --repeat "every 2 weeks on monday,friday"
  • Coincidencia difusa — escribe remi list shopping en lugar de remi list "Groceries / Shopping List"
  • Prioridad para agentes — salida JSON estructurada, plugin para Claude Code, skill para skills.sh, compatible con OpenClaw
  • Rápido — helpers compilados en Swift, sin Electron, sin interfaz gráfica

Comparación con otras herramientas

remiremindctlreminders-cli
SeccionesNoNo
Sincronización de secciones (iCloud)N/AN/A
RecurrenciaNo
Fechas en lenguaje naturalNo
Salida JSONNo
Integración con agentes de IAParcialNo

Instalación

brew tap mattheworiordan/tap && brew install remi

O mediante npm:

npm install -g @mattheworiordan/remi
# or run without installing
npx @mattheworiordan/remi lists

Inicio rápido

remi lists                                              # See all lists
remi list "Groceries"                                   # View a list (fuzzy: remi list groceries)
remi add "Groceries" "Buy milk" --section "Dairy"       # Add to a section
remi today                                              # What's due today?
remi complete "Groceries" "milk"                        # Fuzzy complete

Uso

Consulta lo que vence

remi today                    # Due today
remi overdue                  # Past due
remi upcoming --days 7        # Coming up
remi search "dentist"         # Search across all lists

Gestiona recordatorios

remi add "Work" "Review PR" --due "next friday" --priority high
remi add "Work" "Standup" --due tomorrow --repeat daily
remi complete "Work" "standup"
remi update "Work" "Review PR" --due "in 3 days"
remi delete "Work" "Review PR" --confirm

Fechas: tomorrow, next tuesday, in 3 days, o YYYY-MM-DD Recurrencia: daily, weekly, monthly, every 2 weeks, every 3 months on monday,friday

Organiza con secciones

remi sections "Groceries"                                # List sections
remi create-section "Groceries" "Produce"                # Create a section
remi add "Groceries" "Bananas" --section "Produce"       # Add to a section
remi move "Groceries" "Bananas" --to-section "Dairy"     # Move between sections

Las secciones se sincronizan con iCloud mediante relojes vectoriales CRDT. Consulta cómo funciona.

Salida JSON

Cada comando admite --json para salida legible por máquinas:

remi today --json
# {"success": true, "data": [...]}

Integración con agentes de IA

remi está diseñado para agentes de IA. Úsalo como servidor MCP, plugin de Claude Code o skill:

Servidor MCP

{
  "mcpServers": {
    "remi": {
      "command": "remi",
      "args": ["--mcp"]
    }
  }
}

16 herramientas: remi_lists, remi_add, remi_complete, remi_move, remi_today, remi_search, y más — todas con coincidencia difusa y respuestas estructuradas.

Otras integraciones

# Claude Code plugin
claude plugin marketplace add mattheworiordan/remi

# skills.sh
npx skills add mattheworiordan/remi

# OpenClaw
clawhub install remi

Permisos

En el primer uso, macOS te pedirá que concedas acceso a Recordatorios (haz clic en Permitir). Las funciones de secciones también necesitan Acceso Total al Disco para tu aplicación de terminal.

remi authorize    # Guides you through both
remi doctor       # Shows what's granted

Requisitos

  • macOS 13+ (Ventura o posterior)
  • Node.js 18+
  • Herramientas de línea de comandos de Xcode (xcode-select --install)

Cómo funciona

remi usa tres capas porque Apple nunca expuso las secciones en su API pública:

CapaQuéPor qué
EventKitCRUD de recordatorios, consultas, recurrenciaAPI pública estable
ReminderKitCRUD de seccionesFramework privado — única forma de crear secciones que se sincronicen
SQLite + Mapas de tokensPertenencia a seccionesEscrituras directas en la base de datos con relojes vectoriales CRDT para sincronización con iCloud

La historia completa de ingeniería inversa explica lo que descubrimos sobre la arquitectura de sincronización no documentada de Apple.

Contribuciones

git clone https://github.com/mattheworiordan/remi.git && cd remi
npm install && npm run build:swift && npm run build
npm test                        # Unit tests
npm run test:integration        # Integration tests (needs Reminders access)

Licencia

MIT — Matthew O'Riordan