{"repo":"NousResearch/hermes-agent","public_id":"329","display_label":"AgentMail integration for agent-owned email inboxes","summary":"These items all relate to adding AgentMail support, enabling agents to own and operate email inboxes. The work spans a feature request, a native tool implementation, and a skill addition.","subsystem":"optional-skills/email","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":330,"merged_at":"2026-03-09T06:33:08+00:00"},"resolution":{"state":"resolved","by":"pr-330"},"freshness":{"state":"stale","last_verified_at":"2026-03-09T06:33:08+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":329,"pr_number":330,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-03-09T06:33:08+00:00"}],"members":[{"kind":"issue","number":329,"title":"Feature: AgentMail Integration — Agent-Owned Email Inboxes","url":null,"state":"closed"},{"kind":"pr","number":330,"title":"feat: add AgentMail skill for agent-owned email inboxes","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["skills/email/agentmail/SKILL.md"],"fix_hunks":[{"file":"skills/email/agentmail/SKILL.md","hunks":["@@ -0,0 +1,131 @@\n+---\n+name: agentmail\n+description: Give the agent its own dedicated email inbox via AgentMail. Send, receive, and manage email autonomously using agent-owned email addresses (e.g. [redacted:email]).\n+version: 1.0.0\n+metadata:\n+  hermes:\n+    tags: [email, communication, agentmail, mcp]\n+    category: email\n+---\n+\n+# AgentMail — Agent-Owned Email Inboxes\n+\n+## When to Use\n+Use this skill when you need to:\n+- Give the agent its own dedicated email address\n+- Send emails autonomously on behalf of the agent\n+- Receive and read incoming emails\n+- Manage email threads and conversations\n+- Sign up for services or authenticate via email\n+- Communicate with other agents or humans via email\n+\n+This is NOT for reading the user's personal email (use himalaya or Gmail for that).\n+AgentMail gives the agent its own identity and inbox.\n+\n+## Setup\n+\n+### 1. Get an API Key\n+- Go to https://console.agentmail.to\n+- Create an account (free tier: 3 inboxes, 3,000 emails/month)\n+- Generate an API key (starts with `am_`)\n+\n+### 2. Configure Hermes\n+Add to `~/.hermes/.env`:\n+```\n+AGENTMAIL_API_KEY=[redacted:secret-assignment]\n+```\n+\n+Add to `~/.hermes/config.yaml`:\n+```yaml\n+mcp_servers:\n+  agentmail:\n+    command: \"npx\"\n+    args: [\"-y\", \"agentmail-mcp\"]\n+    env:\n+      AGENTMAIL_API_KEY: \"[redacted:secret-assignment]\"\n+```\n+\n+### 3. Verify Node.js is installed\n+```bash\n+node --version  # Should be 18+\n+```\n+\n+### 4. Restart Hermes\n+```bash\n+hermes\n+```\n+All 11 AgentMail tools are now available automatically.\n+\n+## Available Tools (via MCP)\n+\n+| Tool | Description |\n+|------|-------------|\n+| `list_inboxes` | List all agent inboxes |\n+| `get_inbox` | Get details of a specific inbox |\n+| `create_inbox` | Create a new inbox (gets a real email address) |\n+| `delete_inbox` | Delete an inbox |\n+| `list_threads` | List email threads in an inbox |\n+| `get_thread` | Get a specific email thread |\n+| `send_message` | Send a new email |\n+| `reply_to_message` | Reply to an existing email |\n+| `forward_message` | Forward an email |\n+| `update_message` | Update message labels/status |\n+| `get_attachment` | Download an email attachment |\n+\n+## Procedure\n+\n+### Create an inbox and send an email\n+1. Create a dedicated inbox:\n+   - Use `create_inbox` with a username (e.g. `hermes-agent`)\n+   - The agent gets address: `[redacted:email]`\n+2. Send an email:\n+   - Use `send_message` with `inbox_id`, `to`, `subject`, `text`\n+3. Check for replies:\n+   - Use `list_threads` to see incoming conversations\n+   - Use `get_thread` to read a specific thread\n+\n+### Check incoming email\n+1. Use `list_inboxes` to find your inbox ID\n+2. Use `list_threads` with the inbox ID to see conversations\n+3. Use `get_thread` to read a thread and its messages\n+\n+### Reply to an email\n+1. Get the thread with `get_thread`\n+2. Use `reply_to_message` with the message ID and your reply text\n+\n+## Example Workflows\n+\n+**Sign up for a service:**\n+```\n+1. create_inbox (username: \"signup-bot\")\n+2. Use the inbox address to register on the service\n+3. list_threads to check for verification email\n+4. get_thread to read the verification code\n+```\n+\n+**Agent-to-human outreach:**\n+```\n+1. create_inbox (username: \"hermes-outreach\")\n+2. send_message (to: [redacted:email], subject: \"Hello\", text: \"...\")\n+3. list_threads to check for replies\n+```\n+\n+## Pitfalls\n+- Free tier limited to 3 inboxes and 3,000 emails/month\n+- Emails come from `@agentmail.to` domain on free tier (custom domains on paid plans)\n+- Node.js (18+) is required for the MCP server (`npx -y agentmail-mcp`)\n+- The `mcp` Python package must be installed: `pip install mcp`\n+- Real-time inbound email (webhooks) requires a public server — use `list_threads` polling via cronjob instead for personal use\n+\n+## Verification\n+After setup, test with:\n+```\n+hermes --toolsets mcp -q \"Create an AgentMail inbox called test-agent and tell me its email address\"\n+```\n+You should see the new inbox address returned.\n+\n+## References\n+- AgentMail docs: https://docs.agentmail.to/\n+- AgentMail console: https://console.agentmail.to\n+- AgentMail MCP repo: https://github.com/agentmail-to/agentmail-mcp\n+- Pricing: https://www.agentmail.to/pricing\n"]}]},{"kind":"pr","number":398,"title":"feat(agentmail): native AgentMail tool for agent-owned email inboxes","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#330","number":330},{"kind":"pr","value":"#329","number":329}],"category":"superseded_by_pr","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}