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

PyPI Python 3.9+ License: MIT

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"]
HerramientaQué hace
list_jobsCada trabajo configurado con su horario, fuentes y destino de entrega
preview_jobRenderiza lo que un trabajo enviaría por correo, a un archivo local. No puede enviar
run_jobEjecuta un trabajo. dry_run por defecto es true
list_pluginsCada 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

TrabajoExtraeInteresante porque
morning-briefclima, tres medios de noticias, en este díaLos medios permanecen etiquetados, para que el modelo pueda contrastar sus enfoques
curiosityfuentes de arqueología y astronomía, historiaSin contenido de trabajo en absoluto, a propósito
research-digestHugging Face, arXivIDs reales, conteos y enlaces que el modelo no puede inventar
repo-pulsegit log, diffstat, marcadores TODOLee tu árbol de trabajo, que ningún programador en la nube puede
daily-briefarchivos locales, git logLa 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ápidoCinco minutos para un correo real
Guía de configuración para agentesEntrégalo a tu agente de codificación
FuentesLas diez, con argumentos y ejemplos
Trabajos y promptsCada campo de trabajo, convenciones de prompts
TemasEl renderizador, paletas, estilo de casa impuesto
DeduplicaciónEl contrato del libro de contabilidad de vistos
Entrega y configuraciónGmail, SMTP, compuertas, configuración
ModelosBackends, y por qué son solo texto
Programacióncron, launchd, systemd, CI y la compensación de la nube
Piezas de taperEl compañero opcional de poesía computacional
PluginsEscribe una fuente en unas treinta líneas
ComparaciónContra 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.