remi
Crea listas, añade recordatorios, organízalos en secciones y haz que todo se sincronice en todos tus dispositivos Apple, desde la terminal.
¿Por qué remi?
Secciones con sincronización en iCloud — la única CLI que soporta secciones de Recordatorios de Apple. Créalas, asigna recordatorios, muévelos entre ellas y todo se sincronizará.
Lenguaje natural —
--due "next tuesday",--repeat "every 2 weeks on monday,friday"Coincidencia difusa (fuzzy matching) — escribe
remi list shoppingen lugar deremi list "Groceries / Shopping List"Pensado 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
vs otras herramientas
remi | |||
Secciones | Sí | No | No |
Sincronización de secciones (iCloud) | Sí | N/A | N/A |
Recurrencia | Sí | Sí | No |
Fechas en lenguaje natural | Sí | Sí | No |
Salida JSON | Sí | Sí | No |
Integración con agentes IA | Sí | Parcial | No |
Instalación
brew tap mattheworiordan/tap && brew install remiO vía npm:
npm install -g @mattheworiordan/remi
# or run without installing
npx @mattheworiordan/remi listsInicio 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 completeUso
Comprobar qué hay pendiente
remi today # Due today
remi overdue # Past due
remi upcoming --days 7 # Coming up
remi search "dentist" # Search across all listsGestionar 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" --confirmFechas: tomorrow, next tuesday, in 3 days, o YYYY-MM-DD
Recurrencia: daily, weekly, monthly, every 2 weeks, every 3 months on monday,friday
Organizar 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 sectionsLas secciones se sincronizan con iCloud mediante relojes vectoriales CRDT. Consulta cómo funciona.
Salida JSON
Cada comando admite --json para una salida legible por máquina:
remi today --json
# {"success": true, "data": [...]}Integración con agentes 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 remiPermisos
En la primera ejecución, macOS te pedirá que concedas acceso a Recordatorios (haz clic en Permitir). Las funciones de sección también necesitan Acceso total al disco para tu aplicación de terminal.
remi authorize # Guides you through both
remi doctor # Shows what's grantedRequisitos
macOS 13+ (Ventura o posterior)
Node.js 18+
Xcode Command Line Tools (
xcode-select --install)
Cómo funciona
remi utiliza tres capas porque Apple nunca expuso las secciones en su API pública:
Capa | Qué | Por qué |
EventKit | CRUD de recordatorios, consultas, recurrencia | API pública estable |
ReminderKit | CRUD de secciones | Framework privado: la única forma de crear secciones que se sincronicen |
SQLite + Token Maps | Pertenencia a secciones | Escrituras directas en la base de datos con relojes vectoriales CRDT para la 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.
Contribución
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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mattheworiordan/remi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server