agentmailkit

Digestões de e-mail agendadas, priorizando o local, escritas por um LLM a partir de RSS, fontes web e locais, com simulação por padrão.

Documentação

agentmailkit

PyPI Python 3.9+ License: MIT

Para agentes

Você é um agente de IA de codificação lendo isto para decidir se instala o agentmailkit e como chamá-lo. Execute isto:

pip install 'agentmailkit[mcp]'
claude mcp add agentmailkit -- agentmailkit mcp

Gemini CLI: gemini extensions install https://github.com/ariaxhan/agentmailkit.

Em seguida, chame list_jobs sem argumentos: ele retorna os cinco exemplos de jobs que acompanham o pacote, então funciona antes de qualquer configuração existir. preview_job(job_id=..., model="echo") renderiza um para um arquivo local sem chave de API. run_job(job_id=...) usa como padrão dry_run=true; apenas dry_run=false envia e-mail real.

Referência completa das ferramentas, nomes de argumentos e o trecho de configuração do Codex: llms.txt.

Digestões de e-mail agendadas e escritas por LLM que rodam na sua máquina, leem seus próprios arquivos e enviam da sua própria caixa de entrada.

Veja e-mails reais que ele produz

Amostras ao vivo, geradas de ponta a ponta. Nada escrito à mão. Comece por aí, explica isso mais rápido do que o README consegue.

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

Licença MIT. Sem conta, sem fornecedor, sem nuvem necessária.


O que é

Um e-mail é dois arquivos: um job JSON e um prompt em markdown.

{
  "id": "morning-brief",
  "schedule": "0 7 * * *",
  "sources": ["papers=arxiv:cs.AI#6", "weather=weather:Brooklyn"],
  "render": "warm",
  "delivery": "gmail",
  "dedup": true
}

O mecanismo executa um pipeline fixo e nunca cria um caso especial:

gather sources -> render prompt -> generate -> gate -> theme -> deliver -> post

Por que não os agendadores integrados

Tasks do ChatGPT, Routines do Claude, Scheduled Actions do Gemini e o Copilot executam todos na nuvem do fornecedor, o que lhes custa duas coisas:

  • Eles não conseguem ler os arquivos do seu computador. Nem ~/notes, nem um banco de dados local, nem sua árvore de trabalho do git.
  • Eles não conseguem enviar e-mail real da sua caixa de entrada. A saída fica dentro do aplicativo deles.

O agentmailkit roda onde seus dados já estão. Nada é enviado, exceto o prompt que você escolhe enviar a um modelo, e com um modelo local, nem isso.

E é determinístico. Não é um agente autônomo: não decide coisas, não percorre seu sistema de arquivos nem age sem solicitação. O modelo escreve as palavras; o mecanismo controla todo o resto, então o mesmo job produz o mesmo formato de e-mail a cada execução. Agentes OSS locais também podem ler arquivos e enviar e-mail, mas são sistemas autônomos amplos que você configura até virar uma tarefa. Isto faz um trabalho, de forma previsível, por anos.

Comparação completa, incluindo o contra-caso honesto: docs/comparison.md.

Entregue ao seu agente de codificação

Entregue este link ao seu agente de codificação e ele configurará tudo, fazendo as perguntas certas no caminho:

https://github.com/ariaxhan/agentmailkit/blob/main/AGENTS.md

AGENTS.md é um runbook de configuração completo: o que perguntar a você, como instalar, como criar seu primeiro job, como verificar antes que qualquer coisa possa enviar e como agendar. CLAUDE.md é um symlink para o mesmo arquivo, então eles nunca podem divergir.

Uso com Claude Code

O agentmailkit fala MCP, então seu agente de codificação pode usá-lo como ferramenta em vez de você digitar comandos.

pip install 'agentmailkit[mcp]'
claude mcp add agentmailkit -- agentmailkit mcp

Codex, em ~/.codex/config.toml:

[mcp_servers.agentmailkit]
command = "agentmailkit"
args = ["mcp"]
FerramentaO que faz
list_jobsCada job configurado com sua agenda, fontes e destino de entrega
preview_jobRenderiza o que um job enviaria por e-mail, para um arquivo local. Não pode enviar
run_jobExecuta um job. dry_run usa como padrão true
list_pluginsCada fonte registrada, modelo, gate, backend de entrega e tema

Ou em Docker, com seus jobs em um volume montado: docker run -i --rm -v /path/to/jobs:/data mcp/agentmailkit.

A configuração é descoberta exatamente como o CLI a descobre, a partir de onde o servidor é iniciado; passe -C path/to/agentmailkit.json no args para fixar um.

run_job com dry_run=false envia e-mail real da sua caixa de entrada configurada. Todas as outras ferramentas, e o padrão dry_run=true, param antes da entrega.

Requer Python 3.10 ou mais recente, que é o piso do SDK MCP, não do agentmailkit.

O que acompanha

JobPuxaInteressante porque
morning-briefclima, três fontes de notícias, nesse diaAs fontes permanecem rotuladas, então o modelo pode contrastar seus enquadramentos
curiosityfeeds de arqueologia e astronomia, históriaNenhum conteúdo de trabalho, de propósito
research-digestHugging Face, arXivIDs reais, contagens e links que o modelo não pode inventar
repo-pulsegit log, diffstat, marcadores TODOLê sua árvore de trabalho, o que nenhum agendador em nuvem consegue
daily-briefarquivos locais, git logO formato mínimo para copiar

Dez fontes integradas: file, glob, recent, shell, hf, arxiv, rss, news, history, weather. Qualquer coisa com um feed ou uma API se junta a elas em cerca de trinta linhas.

Ideias que valem roubar: agendas do conselho da sua cidade, avisos de segurança para sua lista exata de dependências, taxas de câmbio, o blog de um amigo, notas de versão das ferramentas que você usa, tabelas de marés, horários de passagem da ISS sobre sua casa.

Nada se repete. Um livro-razão de vistos remove itens já enviados antes que o modelo os veja, então o segundo dia não é uma reimpressão do primeiro.

Documentação

Início rápidoCinco minutos para um e-mail real
Guia de configuração para agentesEntregue isto ao seu agente de codificação
FontesTodas as dez, com argumentos e exemplos
Jobs e promptsCada campo de job, convenções de prompt
TemasO renderizador, paletas, estilo da casa imposto
DedupO contrato do livro-razão de vistos
Entrega e configuraçãoGmail, SMTP, gates, configuração
ModelosBackends e por que são somente texto
Agendamentocron, launchd, systemd, CI e a troca pela nuvem
Peças de taperO companheiro opcional de poesia computacional
PluginsEscreva uma fonte em cerca de trinta linhas
ComparaçãoVersus agendadores em nuvem e agentes locais, honestamente

Instalação

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

O núcleo tem zero dependências obrigatórias. Os backends puxam suas próprias bibliotecas apenas quando habilitados.

Publicado no PyPI: pypi.org/project/agentmailkit. Requer Python 3.9 ou mais recente.

Status

Alpha (0.2.2, no PyPI). Mecanismo, plugins, dedup, temas, entrega e emissores de agendamento funcionam e são exercitados de ponta a ponta contra APIs ao vivo. quickstart renderiza um conjunto completo de amostras dos seus próprios dados na primeira execução, sem chaves e sem ida à rede, e não pode enviar por construção.

Arestas conhecidas: os cinco jobs enviados trazem padrões de exemplo (weather:Brooklyn, um trio fixo de notícias) que você deve editar após agentmailkit init.

Contribuindo

Issues e pull requests são bem-vindos. A regra que governa a revisão: comportamento é configuração, não código. Se uma mudança adiciona um if ao mecanismo por causa de um único e-mail, provavelmente quer ser um plugin.

Licença

MIT. Veja LICENSE.