← AgentiSendCONTENT HISTORY
WHAT CHANGED
changed
changed
changed
Update to AgentiSend
Snapshot Nov 1, 2026 · 00:09 UTC · version 1.2.0
Collection source: downloaded plugin package.
Instructions updated for agentisend
Full description — Now says: applications and
Observed in instructions or declared skills. Runtime behavior has not been tested.
Save AgentiSend and check future changes in Following.
Up to 10 plugins free · no card required.
All fields and original values.
Full description
Before
Oct 31, 2026 · 06:10 UTC
After
Nov 1, 2026 · 00:09 UTC
applications and
Skill instructions
Before
Oct 31, 2026 · 06:10 UTC
After
Nov 1, 2026 · 00:09 UTC
applications and
Supporting files
Before
Oct 31, 2026 · 06:10 UTC
[{"relative_path":"references/errors.md","size_in_bytes":15491}]
After
Nov 1, 2026 · 00:09 UTC
[{"relative_path":"references/errors.md","size_in_bytes":17949}]
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
--- before +++ after @@ -1,6 +1,6 @@ --- name: agentisend -description: AgentiSend is a transactional email API for AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send. +description: AgentiSend is a transactional email API for applications and AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send. --- # Sending email with AgentiSend
Full technical diff · 3 changed fields
changed /description
BEFORE
"AgentiSend is a transactional email API for AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send."
AFTER
"AgentiSend is a transactional email API for applications and AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send."
changed /included_files
BEFORE
[
{
"relative_path": "references/errors.md",
"size_in_bytes": 15491
}
]AFTER
[
{
"relative_path": "references/errors.md",
"size_in_bytes": 17949
}
]changed /skill_md_contents
BEFORE
"---\nname: agentisend\ndescription: AgentiSend is a transactional email API for AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send.\n---\n\n# Sending email with AgentiSend\n\nYou are sending real mail to real people through the account the person\nconnected. Three things make that safe, and each is one tool call.\n\n## 1. Before anything else: what may you do?\n\nCall `whoami`. It returns the scopes you hold, the tools those scopes reach,\nthe budget remaining and when it refills, whether a kill switch is on, the\naccount's trust standing, and `can_send_now` as the summary. Read it before\nthe first send and again after any refusal.\n\nIf `can_send_now` is false, say why in the person's words and stop. A paused\nkey or an unverified domain is a decision someone made; retrying does not\nchange it.\n\n## 2. Test the send before you make it\n\nRun the payload through `preflight_email` first. It runs every gate a real\nsend runs (validation, sending domain, suppression, budget, loop guard, trust\nstanding, content scan), sends nothing, and costs nothing. A preflight that\ncomes back `ok: false` carries the same `code`, `message` and `fix` the\nreal send would have. Fix what `fix` names and preflight again.\n\nThen `send_email`. Always pass `idempotency_key` when a retry is possible:\nthe same key returns the first result instead of sending twice. For many\ndifferent messages use `send_batch` (up to 500 items, one result each, in\norder). For a later time pass `scheduled_at`; `cancel_email` and\n`reschedule_email` change it.\n\nAn address ending in `@simulator.agentisend.com` costs nothing, reaches\nnobody, and works before any domain is verified. Use it to show the person\nwhat a send looks like.\n\n## 3. When a send is risky, ask a person\n\nLarge recipient lists, unusual hours, anything irreversible, anything the\nperson said to check first: do not send and do not silently refuse. Call\n`request_approval` with the payload and a reason. Nothing is sent and no\nbudget is spent. `list_agent_actions` tells you what the person decided and\nwhy. No tool approves one, including for you.\n\n## When you are refused\n\nBranch on the error's `code` and `retryable`, never on the prose.\n\n- `rate_limit_exceeded` or `rate_ceiling_exceeded`: the only class where\n waiting works. Wait `retry_after_seconds` and repeat the same call.\n- `agent_budget_exceeded`: the period's allowance is spent. A person raises\n the number or the period rolls over. Do not retry in a loop.\n- `kill_switch_active`: a person stopped this key. Tell them. Only they can\n resume it.\n- `approval_required`: the loop guard held this send. It is in the approvals\n inbox; `list_agent_actions` shows its state.\n- `trust_paused`: delivery outcomes moved the account down the ladder.\n `get_trust_standing` explains each reason.\n- `suppressed_recipient`: that address asked not to be contacted, or it hard\n bounced. Do not remove the suppression to get around it.\n- `domain_not_verified`: publish the DNS records from `get_domain`, then\n `verify_domain` or `wait_for_domain`.\n\nEverything else: read `fix`. It names the tool or the person. When nothing\nobvious is wrong, `why_was_this_not_sent` lists every blocker on the key and\nthe account, with `is_normal_wait` to tell a scheduled send from a paused key.\n\n## After the fact: what happened to that message?\n\n`get_email` returns the message with its event timeline. `explain_email`\nreturns the verdict after a bounce or complaint, the evidence, whether the\nidentical send can be retried, and the remediation as steps you can call.\nFollow those; do not invent an endpoint.\n\n## Setting up a sending domain\n\n`create_domain` registers the name. `get_domain` lists every DNS record\nwith host, type, value and whether it is required. The person publishes them\nat their DNS provider; then `verify_domain` re-checks, or `wait_for_domain`\nwaits for the server's own checks. If an SPF record already exists on the\nname, merge the value into it. A second SPF record invalidates both.\n\n## What you cannot do here\n\n- Lift a kill switch, or approve a held send.\n- Read the contents of a message you were stopped from sending; you see\n shapes (recipient counts, whether there is a body).\n- Send unsolicited mail to people who did not ask for it. There is no tool\n for it, and asking for one is out of scope.\n\n## Reference\n\n`references/errors.md` lists every refusal code, whether waiting helps, and\nwhat to do.\n"
AFTER
"---\nname: agentisend\ndescription: AgentiSend is a transactional email API for applications and AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send.\n---\n\n# Sending email with AgentiSend\n\nYou are sending real mail to real people through the account the person\nconnected. Three things make that safe, and each is one tool call.\n\n## 1. Before anything else: what may you do?\n\nCall `whoami`. It returns the scopes you hold, the tools those scopes reach,\nthe budget remaining and when it refills, whether a kill switch is on, the\naccount's trust standing, and `can_send_now` as the summary. Read it before\nthe first send and again after any refusal.\n\nIf `can_send_now` is false, say why in the person's words and stop. A paused\nkey or an unverified domain is a decision someone made; retrying does not\nchange it.\n\n## 2. Test the send before you make it\n\nRun the payload through `preflight_email` first. It runs every gate a real\nsend runs (validation, sending domain, suppression, budget, loop guard, trust\nstanding, content scan), sends nothing, and costs nothing. A preflight that\ncomes back `ok: false` carries the same `code`, `message` and `fix` the\nreal send would have. Fix what `fix` names and preflight again.\n\nThen `send_email`. Always pass `idempotency_key` when a retry is possible:\nthe same key returns the first result instead of sending twice. For many\ndifferent messages use `send_batch` (up to 500 items, one result each, in\norder). For a later time pass `scheduled_at`; `cancel_email` and\n`reschedule_email` change it.\n\nAn address ending in `@simulator.agentisend.com` costs nothing, reaches\nnobody, and works before any domain is verified. Use it to show the person\nwhat a send looks like.\n\n## 3. When a send is risky, ask a person\n\nLarge recipient lists, unusual hours, anything irreversible, anything the\nperson said to check first: do not send and do not silently refuse. Call\n`request_approval` with the payload and a reason. Nothing is sent and no\nbudget is spent. `list_agent_actions` tells you what the person decided and\nwhy. No tool approves one, including for you.\n\n## When you are refused\n\nBranch on the error's `code` and `retryable`, never on the prose.\n\n- `rate_limit_exceeded` or `rate_ceiling_exceeded`: the only class where\n waiting works. Wait `retry_after_seconds` and repeat the same call.\n- `agent_budget_exceeded`: the period's allowance is spent. A person raises\n the number or the period rolls over. Do not retry in a loop.\n- `kill_switch_active`: a person stopped this key. Tell them. Only they can\n resume it.\n- `approval_required`: the loop guard held this send. It is in the approvals\n inbox; `list_agent_actions` shows its state.\n- `trust_paused`: delivery outcomes moved the account down the ladder.\n `get_trust_standing` explains each reason.\n- `suppressed_recipient`: that address asked not to be contacted, or it hard\n bounced. Do not remove the suppression to get around it.\n- `domain_not_verified`: publish the DNS records from `get_domain`, then\n `verify_domain` or `wait_for_domain`.\n\nEverything else: read `fix`. It names the tool or the person. When nothing\nobvious is wrong, `why_was_this_not_sent` lists every blocker on the key and\nthe account, with `is_normal_wait` to tell a scheduled send from a paused key.\n\n## After the fact: what happened to that message?\n\n`get_email` returns the message with its event timeline. `explain_email`\nreturns the verdict after a bounce or complaint, the evidence, whether the\nidentical send can be retried, and the remediation as steps you can call.\nFollow those; do not invent an endpoint.\n\n## Setting up a sending domain\n\n`create_domain` registers the name. `get_domain` lists every DNS record\nwith host, type, value and whether it is required. The person publishes them\nat their DNS provider; then `verify_domain` re-checks, or `wait_for_domain`\nwaits for the server's own checks. If an SPF record already exists on the\nname, merge the value into it. A second SPF record invalidates both.\n\n## What you cannot do here\n\n- Lift a kill switch, or approve a held send.\n- Read the contents of a message you were stopped from sending; you see\n shapes (recipient counts, whether there is a body).\n- Send unsolicited mail to people who did not ask for it. There is no tool\n for it, and asking for one is out of scope.\n\n## Reference\n\n`references/errors.md` lists every refusal code, whether waiting helps, and\nwhat to do.\n"
Full snapshot data
{
"description": "AgentiSend is a transactional email API for applications and AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send.",
"included_files": [
{
"relative_path": "references/errors.md",
"size_in_bytes": 17949
}
],
"name": "agentisend",
"skill_md_contents": "---\nname: agentisend\ndescription: AgentiSend is a transactional email API for applications and AI agents. Use when asked to send a receipt, password reset, sign-in code, alert or any transactional email, to check what an email send would do before doing it, to find out why an email was not sent or bounced, to set up or verify a sending domain, or to ask a person before a risky send.\n---\n\n# Sending email with AgentiSend\n\nYou are sending real mail to real people through the account the person\nconnected. Three things make that safe, and each is one tool call.\n\n## 1. Before anything else: what may you do?\n\nCall `whoami`. It returns the scopes you hold, the tools those scopes reach,\nthe budget remaining and when it refills, whether a kill switch is on, the\naccount's trust standing, and `can_send_now` as the summary. Read it before\nthe first send and again after any refusal.\n\nIf `can_send_now` is false, say why in the person's words and stop. A paused\nkey or an unverified domain is a decision someone made; retrying does not\nchange it.\n\n## 2. Test the send before you make it\n\nRun the payload through `preflight_email` first. It runs every gate a real\nsend runs (validation, sending domain, suppression, budget, loop guard, trust\nstanding, content scan), sends nothing, and costs nothing. A preflight that\ncomes back `ok: false` carries the same `code`, `message` and `fix` the\nreal send would have. Fix what `fix` names and preflight again.\n\nThen `send_email`. Always pass `idempotency_key` when a retry is possible:\nthe same key returns the first result instead of sending twice. For many\ndifferent messages use `send_batch` (up to 500 items, one result each, in\norder). For a later time pass `scheduled_at`; `cancel_email` and\n`reschedule_email` change it.\n\nAn address ending in `@simulator.agentisend.com` costs nothing, reaches\nnobody, and works before any domain is verified. Use it to show the person\nwhat a send looks like.\n\n## 3. When a send is risky, ask a person\n\nLarge recipient lists, unusual hours, anything irreversible, anything the\nperson said to check first: do not send and do not silently refuse. Call\n`request_approval` with the payload and a reason. Nothing is sent and no\nbudget is spent. `list_agent_actions` tells you what the person decided and\nwhy. No tool approves one, including for you.\n\n## When you are refused\n\nBranch on the error's `code` and `retryable`, never on the prose.\n\n- `rate_limit_exceeded` or `rate_ceiling_exceeded`: the only class where\n waiting works. Wait `retry_after_seconds` and repeat the same call.\n- `agent_budget_exceeded`: the period's allowance is spent. A person raises\n the number or the period rolls over. Do not retry in a loop.\n- `kill_switch_active`: a person stopped this key. Tell them. Only they can\n resume it.\n- `approval_required`: the loop guard held this send. It is in the approvals\n inbox; `list_agent_actions` shows its state.\n- `trust_paused`: delivery outcomes moved the account down the ladder.\n `get_trust_standing` explains each reason.\n- `suppressed_recipient`: that address asked not to be contacted, or it hard\n bounced. Do not remove the suppression to get around it.\n- `domain_not_verified`: publish the DNS records from `get_domain`, then\n `verify_domain` or `wait_for_domain`.\n\nEverything else: read `fix`. It names the tool or the person. When nothing\nobvious is wrong, `why_was_this_not_sent` lists every blocker on the key and\nthe account, with `is_normal_wait` to tell a scheduled send from a paused key.\n\n## After the fact: what happened to that message?\n\n`get_email` returns the message with its event timeline. `explain_email`\nreturns the verdict after a bounce or complaint, the evidence, whether the\nidentical send can be retried, and the remediation as steps you can call.\nFollow those; do not invent an endpoint.\n\n## Setting up a sending domain\n\n`create_domain` registers the name. `get_domain` lists every DNS record\nwith host, type, value and whether it is required. The person publishes them\nat their DNS provider; then `verify_domain` re-checks, or `wait_for_domain`\nwaits for the server's own checks. If an SPF record already exists on the\nname, merge the value into it. A second SPF record invalidates both.\n\n## What you cannot do here\n\n- Lift a kill switch, or approve a held send.\n- Read the contents of a message you were stopped from sending; you see\n shapes (recipient counts, whether there is a body).\n- Send unsolicited mail to people who did not ask for it. There is no tool\n for it, and asking for one is out of scope.\n\n## Reference\n\n`references/errors.md` lists every refusal code, whether waiting helps, and\nwhat to do.\n"
}SHA-256 of public snapshot: f83ec4e6850a0bc49c014da22374e898143859f794d08ccf1839a0dfdaced63d