The execution layer for AI agents

Your agent decided to send it. Truncus makes sure it actually happened.

The only execution layer built for autonomous agents. EU-resident sending (AWS SES, Ireland), durable retry queue, fail-fast circuit breakers, and governance — infrastructure that never fails silently on your agent workflows.

Traditional email APIs weren't built for agents

They return a message ID and hope for the best. Your agent can't hope. It needs to know:

  • Did the email actually get delivered?
  • If it bounced, why? Is it retryable?
  • If the provider went down, did it fail silently?
  • Is the agent sending too many emails?
  • Can I kill this agent's email access instantly if something goes wrong?

Truncus answers all of these. In the same API call.

Agent sends invoice with delivery proof

Synchronous — agent knows immediately if it worked

agent.py
from truncus import Truncus

truncus = Truncus(api_key="tr_live_xxx")

# Synchronous — agent knows immediately if it worked
result = truncus.emails.send_sync(
    from_address="billing@yourapp.com",
    to=customer.email,
    subject=f"Invoice #{invoice.id}",
    html=render_invoice(invoice),
)

if result.status == "delivered":
    mark_invoice_sent(invoice.id)
    log(f"Delivered in {result.latency_ms}ms")
elif result.status == "bounced":
    flag_invalid_email(customer.id)
    log(f"Bounce: {result.intelligence.explanation}")

Durable operation with automatic retry

Truncus retries on SES with backoff until it succeeds or exhausts the policy

agent.py
# Create a durable operation — Truncus retries for you
op = truncus.operations.create(
    type="email.send",
    delivery_guarantee="at_least_once",
    params={
        "from": "support@yourapp.com",
        "to": user.email,
        "subject": "Your account is ready",
        "html": welcome_html,
    },
    retry_policy={"max_retries": 3, "backoff_ms": 5000},
)

# Check later (or let the webhook notify you)
status = truncus.operations.get(op.operation_id)
# { status: "completed", attempts: 1, provider: "ses" }
# Retries happen on SES (eu-west-1) with backoff — never silently dropped

Pre-flight check before sending

Validate before wasting a send or risking reputation

agent.py
# Validate before wasting a send
check = truncus.emails.validate(
    from_address="agent@yourapp.com",
    to=prospect.email,
)

if check.recommendation == "do_not_send":
    skip_prospect(prospect.id, reason=check.checks.spam_risk)
elif check.confidence_score > 0.8:
    truncus.emails.send_sync(...)

Everything agents need

Execution certainty

send_sync

Synchronous delivery confirmation. 1.04s average. One call, one answer.

Operations API

Durable operations with lifecycle tracking. Create, retry, cancel.

Delivery guarantees

best_effort / at_least_once / exactly_once. Choose per email.

Reliability

EU-resident sending

AWS SES in Ireland (eu-west-1). Circuit breakers detect failures fast and surface the exact error — no silent failures.

Zero email loss

Failed emails enter a durable retry queue (30s/2m/8m/30m/2h backoff). Dead-letter recovery. Replay API.

EU data residency

Sending from Ireland, email data stored in Frankfurt. GDPR-native. Your agent emails never leave Europe.

Intelligence

Pre-send validation

Confidence scoring, spam risk, domain health. Know before you send.

Post-send intelligence

Failure explanations and recommended next actions.

Inbound classification

Detect replies, unsubscribes, complaints, auto-replies.

Safety

Kill switch

Instant shutdown per agent or account. One API call.

Recipient cooldowns

Prevent over-emailing the same address.

Reputation engine

Auto-throttle agents with high bounce or complaint rates.

Works with your agent stack

MCP

8 Truncus tools — Claude Code, Cursor, VS Code

Python SDK

pip install truncus

Node SDK

npm install @truncus/email

REST API

Any language, any framework

CLI

npm install -g @vanmoose/truncus-cli

Use Truncus inside your AI editor

Generate an API key once at truncus.co/dashboard/settings/api-keys, drop it into your editor's MCP config, and your agent can send and verify email without leaving the IDE. Works in any MCP client — Claude Code, Cursor, VS Code (Cline / Continue), Claude Desktop, Windsurf.

Claude Code

One command in your terminal

terminal
# Register the 8 Truncus tools in one command
claude mcp add truncus \
  --env TRUNCUS_API_KEY=tr_live_xxx \
  -- npx -y @vanmoose/mcp-server

Cursor · VS Code · Claude Desktop · Windsurf

Add to your MCP config file (e.g. ~/.cursor/mcp.json)

mcp.json
{
  "mcpServers": {
    "truncus": {
      "command": "npx",
      "args": ["-y", "@vanmoose/mcp-server"],
      "env": { "TRUNCUS_API_KEY": "tr_live_xxx" }
    }
  }
}

8 Truncus tools, ready to call

truncus_sendtruncus_send_synctruncus_validatetruncus_get_emailtruncus_list_eventstruncus_get_statstruncus_list_domainstruncus_check_suppression

Your Agent (LangChain / CrewAI / AutoGen / Custom)

Truncus

Execute, validate, govern, observe

AWS SES — Ireland (eu-west-1)

EU-resident sending

Pricing

All plans include send_sync, Operations API, delivery guarantees, and governance.

Free

$0

3,000 emails/month

Pro

$19/mo

50,000 emails/month

Scale

$99/mo

300,000 emails/month

Send your first email with delivery confirmation

Free tier. 3,000 emails/month. No credit card. 30 seconds to first send.

Start free
Truncus for AI Agents — The Execution Layer for Agent Communication