agentmailkit
Resúmenes de correo programados, locales primero, escritos por un LLM a partir de fuentes RSS, web y locales, con ejecución de prueba por defecto.
Documentación
agentmailkit
Para agentes
Eres un agente de IA de codificación que lee esto para decidir si instalar agentmailkit y cómo llamarlo. Ejecuta esto:
pip install 'agentmailkit[mcp]'
claude mcp add agentmailkit -- agentmailkit mcp
Gemini CLI: gemini extensions install https://github.com/ariaxhan/agentmailkit.
Luego llama a list_jobs sin argumentos: devuelve los cinco trabajos de ejemplo que vienen dentro del paquete, por lo que funciona antes de que exista cualquier configuración. preview_job(job_id=..., model="echo") renderiza uno a un archivo local sin clave de API. run_job(job_id=...) por defecto es dry_run=true; solo dry_run=false envía correo real.
Referencia completa de herramientas, nombres de argumentos y el fragmento de configuración de Codex: llms.txt.
Resúmenes de correo programados y escritos por LLM que se ejecutan en tu máquina, leen tus propios archivos y se envían desde tu propia bandeja de entrada.
→ Mira los correos reales que produce
Muestras en vivo, generadas de principio a fin. Nada escrito a mano. Empieza ahí, explica esto más rápido de lo que el README puede.
pip install agentmailkit
agentmailkit run morning-brief --dry-run # five example jobs ship with it, so this works immediately
agentmailkit quickstart # render all five to a local HTML gallery; never sends
agentmailkit init # copy them into ./jobs to make them yours
Licencia MIT. Sin cuenta, sin proveedor, sin nube requerida.
Qué es
Un correo es dos archivos: un trabajo JSON y un prompt en markdown.
{
"id": "morning-brief",
"schedule": "0 7 * * *",
"sources": ["papers=arxiv:cs.AI#6", "weather=weather:Brooklyn"],
"render": "warm",
"delivery": "gmail",
"dedup": true
}
El motor ejecuta un pipeline fijo y nunca crece un caso especial:
gather sources -> render prompt -> generate -> gate -> theme -> deliver -> post
Por qué no los programadores integrados
ChatGPT Tasks, Claude Routines, Gemini Scheduled Actions y Copilot se ejecutan todos en la nube del proveedor, lo que les cuesta dos cosas:
- No pueden leer los archivos de tu computadora. Ni
~/notes, ni una base de datos local, ni tu árbol de trabajo de git. - No pueden enviar correo real desde tu bandeja de entrada. La salida permanece dentro de su aplicación.
agentmailkit se ejecuta donde tus datos ya están. Nada se sube excepto el prompt que eliges enviar a un modelo, y con un modelo local, ni siquiera eso.
Y es determinista. No es un agente autónomo: no decide cosas, no deambula por tu sistema de archivos ni actúa sin que se lo pidas. El modelo escribe las palabras; el motor controla todo lo demás, por lo que el mismo trabajo produce el mismo correo con la misma forma en cada ejecución. Los agentes OSS locales también pueden leer archivos y enviar correo, pero son sistemas autónomos amplios que configuras hasta una tarea. Esto hace un trabajo, de forma predecible, durante años.
Comparación completa incluyendo el contra-caso honesto: docs/comparison.md.
Entrégalo a tu agente de codificación
Dale a tu agente de codificación este enlace y configurará todo, haciéndote las preguntas correctas en el proceso:
https://github.com/ariaxhan/agentmailkit/blob/main/AGENTS.md
AGENTS.md es un manual de configuración completo: qué preguntarte, cómo instalar, cómo construir tu primer trabajo, cómo verificar antes de que algo pueda enviarse y cómo programarlo. CLAUDE.md es un enlace simbólico al mismo archivo, por lo que nunca pueden divergir.
Uso desde Claude Code
agentmailkit habla MCP, por lo que tu agente de codificación puede manejarlo como una herramienta en lugar de que tú escribas comandos.
pip install 'agentmailkit[mcp]'
claude mcp add agentmailkit -- agentmailkit mcp
Codex, en ~/.codex/config.toml:
[mcp_servers.agentmailkit]
command = "agentmailkit"
args = ["mcp"]
| Herramienta | Qué hace |
|---|---|
list_jobs | Cada trabajo configurado con su horario, fuentes y destino de entrega |
preview_job | Renderiza lo que un trabajo enviaría por correo, a un archivo local. No puede enviar |
run_job | Ejecuta un trabajo. dry_run por defecto es true |
list_plugins | Cada fuente registrada, modelo, compuerta, backend de entrega y tema |
O en Docker, con tus trabajos en un volumen montado: docker run -i --rm -v /path/to/jobs:/data mcp/agentmailkit.
La configuración se descubre exactamente como la descubre el CLI, desde donde se inicie el servidor; pasa -C path/to/agentmailkit.json en el args para fijar uno.
run_job con dry_run=false envía correo real desde tu bandeja de entrada configurada. Cada otra herramienta, y el dry_run=true por defecto, se detiene antes de la entrega.
Requiere Python 3.10 o más reciente, que es el mínimo del SDK de MCP, no el de agentmailkit.
Qué incluye
| Trabajo | Extrae | Interesante porque |
|---|---|---|
morning-brief | clima, tres medios de noticias, en este día | Los medios permanecen etiquetados, para que el modelo pueda contrastar sus enfoques |
curiosity | fuentes de arqueología y astronomía, historia | Sin contenido de trabajo en absoluto, a propósito |
research-digest | Hugging Face, arXiv | IDs reales, conteos y enlaces que el modelo no puede inventar |
repo-pulse | git log, diffstat, marcadores TODO | Lee tu árbol de trabajo, que ningún programador en la nube puede |
daily-brief | archivos locales, git log | La forma mínima para copiar |
Diez fuentes integradas: file, glob, recent, shell, hf, arxiv, rss, news, history, weather. Cualquier cosa con un feed o una API se une a ellas en unas treinta líneas.
Ideas que vale la pena robar: las agendas del concejo de tu ciudad, avisos de seguridad para tu lista exacta de dependencias, tipos de cambio, el blog de un amigo, notas de versión para las herramientas que usas, tablas de mareas, horarios de paso de la ISS sobre tu casa.
Nada se repite. Un libro de contabilidad de vistos elimina los elementos ya enviados antes de que el modelo los vea, por lo que el día dos no es una reimpresión del día uno.
Documentación
| Inicio rápido | Cinco minutos para un correo real |
| Guía de configuración para agentes | Entrégalo a tu agente de codificación |
| Fuentes | Las diez, con argumentos y ejemplos |
| Trabajos y prompts | Cada campo de trabajo, convenciones de prompts |
| Temas | El renderizador, paletas, estilo de casa impuesto |
| Deduplicación | El contrato del libro de contabilidad de vistos |
| Entrega y configuración | Gmail, SMTP, compuertas, configuración |
| Modelos | Backends, y por qué son solo texto |
| Programación | cron, launchd, systemd, CI y la compensación de la nube |
| Piezas de taper | El compañero opcional de poesía computacional |
| Plugins | Escribe una fuente en unas treinta líneas |
| Comparación | Contra programadores en la nube y agentes locales, honestamente |
Instalación
pip install agentmailkit # core, standard library only
pip install agentmailkit[gmail] # + Gmail delivery
pip install agentmailkit[all] # + Anthropic and OpenAI backends
pip install agentmailkit[mcp] # + the MCP server, to drive it from a coding agent
El núcleo tiene cero dependencias requeridas. Los backends traen sus propias bibliotecas solo cuando están habilitados.
Publicado en PyPI: pypi.org/project/agentmailkit. Requiere Python 3.9 o más reciente.
Estado
Alfa (0.2.2, en PyPI). El motor, plugins, deduplicación, temas, entrega y emisores de programación funcionan y se ejercitan de extremo a extremo contra APIs en vivo. quickstart renderiza un conjunto de muestras completo desde tus propios datos en la primera ejecución, sin claves y sin ida y vuelta de red, y no puede enviar por construcción.
Bordes ásperos conocidos: los cinco trabajos incluidos llevan valores predeterminados de ejemplo (weather:Brooklyn, un trío de noticias fijo) que se espera que edites después de agentmailkit init.
Contribuciones
Se aceptan problemas y solicitudes de extracción. La regla que gobierna la revisión: el comportamiento es configuración, no código. Si un cambio agrega un if al motor por el bien de un correo, probablemente quiera ser un plugin.
Licencia
MIT. Ver LICENSE.