Email Organizer
Organiza tu Gmail con el CLI gog. Mueve, archiva, etiqueta
y limpia correos en batch.
Cuándo usar esta skill
- "Mueve los correos de facturacion@empresa.com a la carpeta Facturas"
- "Archiva todos los correos de más de 6 meses"
- "Marca como leídos todos los newsletters"
- "Elimina el spam"
- "Destaca los correos de mi jefe"
- "Limpia mi bandeja de entrada"
- "Borra todos los correos de promociones de más de 30 días"
Operaciones disponibles
Buscar correos para operar sobre ellos
Primero busca los IDs de los correos objetivo:
# Correos de un remitente específico
gog gmail search 'from:facturacion@empresa.com' --max 100 --json
# Spam antiguo
gog gmail search 'in:spam older_than:7d' --max 500 --json
# Newsletters no leídas de más de 30 días
gog gmail search 'label:newsletters older_than:30d is:unread' --max 100 --json
# Correos sin etiquetar y antiguos
gog gmail search 'in:inbox older_than:180d -is:starred' --max 200 --json
Enviar correos a la papelera (trash)
# Un correo por ID
gog gmail trash <MESSAGE_ID>
# Varios a la vez — obtener IDs del search y hacer loop
gog gmail search 'in:spam older_than:7d' --max 500 --json \
| jq -r '.[].id' \
| xargs -I{} gog gmail trash {}
Archivar correos (quitar de inbox, no borrar)
# Archivar correos antiguos del inbox
gog gmail search 'in:inbox older_than:180d -is:starred' --max 200 --json \
| jq -r '.[].id' \
| xargs -I{} gog gmail archive {}
Marcar como leído
gog gmail mark-read <MESSAGE_ID>
# En batch
gog gmail search 'label:newsletters is:unread' --max 100 --json \
| jq -r '.[].id' \
| xargs -I{} gog gmail mark-read {}
Marcar como no leído
gog gmail mark-unread <MESSAGE_ID>
Destacar / quitar estrella
gog gmail star <MESSAGE_ID>
gog gmail unstar <MESSAGE_ID>
Etiquetar correos
# Añadir etiqueta a un correo
gog gmail label add <MESSAGE_ID> "Clientes"
# Quitar etiqueta
gog gmail label remove <MESSAGE_ID> "INBOX"
# Mover = añadir etiqueta destino + quitar INBOX
gog gmail label add <MESSAGE_ID> "Proyectos"
gog gmail label remove <MESSAGE_ID> "INBOX"
Enviar correo directamente (sin pasar por trash)
# Borrado permanente — ⚠️ IRREVERSIBLE
gog gmail delete <MESSAGE_ID>
Flujo de limpieza de spam
Cuando el usuario pide limpiar el spam:
- Buscar cuántos hay:
gog gmail search 'in:spam' --max 500 --json | jq 'length'
- Mostrar resumen al usuario y pedir confirmación:
🗑️ Encontré 87 correos en spam.
¿Los elimino permanentemente? (sí/no)
- Si confirma, borrar:
gog gmail search 'in:spam' --max 500 --json \
| jq -r '.[].id' \
| xargs -I{} gog gmail trash {}
Flujo de organización automática por remitente
Cuando el usuario dice "organiza mis correos de facturacion@empresa.com":
- Buscar todos sus correos:
gog gmail search 'from:facturacion@empresa.com' --max 200 --json
- Proponer acción al usuario:
📂 Encontré 23 correos de facturacion@empresa.com
Propuesta: mover todos a la etiqueta "Facturas"
¿Confirmas? (sí/no)
- Si confirma, mover en batch.
Protocolo de confirmación — OBLIGATORIO
NUNCA ejecutar acciones destructivas sin confirmación explícita.
Antes de cualquier borrado o movimiento masivo, mostrar siempre:
⚠️ Estoy a punto de:
→ [ACCIÓN] sobre [N] correos
→ Afecta correos de: [REMITENTES]
→ Esta acción [es/no es] reversible
¿Confirmas? (sí/no)
Solo continuar si el usuario responde afirmativamente.
Registro de acciones
Guardar cada acción en ~/.openclaw/workspace/email_audit.log:
2026-02-25 10:30 | TRASH | 87 correos | SPAM
2026-02-25 10:31 | MOVE | 23 correos | INBOX → Facturas
2026-02-25 10:32 | READ | 45 correos | newsletters
Esto permite al usuario pedir "deshaz lo último" consultando el log.