Atomicmail
Atomic-Mail/atomic-mail-agentic
Read and write email through the Atomic Mail from an AI agent.
A skill your agent uses when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted…
$ npx skills add Asymmetric-al/core --skill agent-email-inbox -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Asymmetric-al/core agent-email-inbox --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/agent-email-inbox .claude/skills/agent-email-inbox && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "agent-email-inbox" agent skill from https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inbox into .claude/skills/agent-email-inbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-email-inbox", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inboxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Asymmetric-al/core --skill agent-email-inbox -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Asymmetric-al/core agent-email-inbox --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/agent-email-inbox .agents/skills/agent-email-inbox && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-email-inbox" agent skill from https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inbox into .agents/skills/agent-email-inbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-email-inbox", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Asymmetric-al/core --skill agent-email-inbox -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Asymmetric-al/core agent-email-inbox --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/agent-email-inbox .cursor/skills/agent-email-inbox && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agent-email-inbox" agent skill from https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inbox into .cursor/skills/agent-email-inbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-email-inbox", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Asymmetric-al/core.git --path .agents/skills/agent-email-inbox--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Asymmetric-al/core --skill agent-email-inbox -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Asymmetric-al/core agent-email-inbox --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/agent-email-inbox .gemini/skills/agent-email-inbox && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agent-email-inbox" agent skill from https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inbox into .gemini/skills/agent-email-inbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-email-inbox", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Asymmetric-al/core agent-email-inboxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Asymmetric-al/core --skill agent-email-inbox -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/agent-email-inbox .github/skills/agent-email-inbox && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agent-email-inbox" agent skill from https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inbox into .github/skills/agent-email-inbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-email-inbox", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Asymmetric-al/core --skill agent-email-inbox -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Asymmetric-al/core agent-email-inbox --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/agent-email-inbox .opencode/skills/agent-email-inbox && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agent-email-inbox" agent skill from https://github.com/Asymmetric-al/core/tree/develop/.agents/skills/agent-email-inbox into .opencode/skills/agent-email-inbox/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-email-inbox", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agent-email-inboxA skill your agent uses when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted…
Agent Email Inbox is an agent skill from Asymmetric-al/core. Use when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted inbound email. Always use this skill when the user wants to receive emails and act on them programmatically, even if they don't mention "agent" — the skill contains critical security patterns (sender allowlists, content filtering, sandboxed processing) that prevent untrusted email from controlling your system.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/advanced-patterns.md`, `references/security-levels.md` and `references/webhook-setup.md`).
It sits in Productivity & Automation, covering Email management. The repository describes itself as: A high-performance, enterprise-grade Next.js 16 application for mission-focused non-profit organizations. Built for high impact teams. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 71b81fa. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
dns.emailFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
RESEND_API_KEYRESEND_WEBHOOK_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Agent Email Inbox loads about 4.1k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 126 tokens; SKILL.md has 1,216 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
nvironment file method:** Human creates `.env` file directly: `echo "RESEND_API_KEY=re_xxx" >> .env`Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Asymmetric-al/core at commit 71b81fa, republished under its MIT licence (© Asymmetric-al). 1,216 words, ~4,113 tokens.
.claude/skills/agent-email-inbox/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.This skill covers setting up a secure email inbox that allows your application or AI agent to receive and respond to emails, with content safety measures in place.
Core principle: An AI agent's inbox receives untrusted input. Security configuration is important to handle this safely.
Resend uses webhooks for inbound email, meaning your agent is notified instantly when an email arrives. This is valuable for agents because:
Sender → Email → Resend (MX) → Webhook → Your Server → AI Agent
↓
Security Validation
↓
Process or RejectThis skill requires Resend SDK features for webhook verification (webhooks.verify()) and email receiving (emails.receiving.get()). Always install the latest SDK version. If the project already has a Resend SDK installed, check the version and upgrade if needed.
| Language | Package | Min Version |
|---|---|---|
| Node.js | resend | >= 6.9.2 |
| Python | resend | >= 2.21.0 |
| Go | resend-go/v3 | >= 3.1.0 |
| Ruby | resend | >= 1.0.0 |
| PHP | resend/resend-php | >= 1.1.0 |
| Rust | resend-rs | >= 0.20.0 |
| Java | resend-java | >= 4.11.0 |
| .NET | Resend | >= 0.2.1 |
Install the resend npm package: npm install resend (or the equivalent for your language). For full sending docs, install the resend skill.
email.received events with security built in from the start. The webhook endpoint MUST be a POST route.Ask your human:
Don't paste API keys in chat! They'll be in conversation history forever.
Safer options:
.env file directly: echo "RESEND_API_KEY=re_xxx" >> .env<!-- pragma: allowlist secret -->If your human has an existing Resend account with other projects, create a domain-scoped API key:
Use your auto-generated address: <anything>@<your-id>.resend.app
No DNS configuration needed. Find your address in Dashboard → Emails → Receiving → "Receiving address".
The user must enable receiving in the Resend dashboard: Domains page → toggle on "Enable Receiving".
Then add an MX record:
| Setting | Value |
|---|---|
| Type | MX |
| Host | Your domain or subdomain (e.g., agent.example.com) |
| Value | Provided in Resend dashboard |
| Priority | 10 (must be lowest number to take precedence) |
Use a subdomain (e.g., agent.example.com) to avoid disrupting existing email services.
Tip: Verify DNS propagation at dns.email.
DNS Propagation: MX record changes can take up to 48 hours to propagate globally, though often complete within a few hours.
Choose your security level before setting up the webhook endpoint. An AI agent that processes emails without security is dangerous — anyone can email instructions that your agent will execute. The webhook code you write next should include your chosen security level from the start.
Ask the user what level of security they want, and ensure that they understand what each level means.
| Level | Name | When to Use | Trade-off |
|---|---|---|---|
| 1 | Strict Allowlist | Most use cases — known, fixed set of senders | Maximum security, limited functionality |
| 2 | Domain Allowlist | Organization-wide access from trusted domains | More flexible, anyone at domain can interact |
| 3 | Content Filtering | Accept from anyone, filter unsafe patterns | Can receive from anyone, pattern matching not foolproof |
| 4 | Sandboxed Processing | Process all emails with restricted agent capabilities | Maximum flexibility, complex to implement |
| 5 | Human-in-the-Loop | Require human approval for untrusted actions | Maximum security, adds latency |
For detailed implementation code for each level, see references/security-levels.md.
Only process emails from explicitly approved addresses. Reject everything else.
const ALLOWED_SENDERS = [
'you@youremail.com',
'notifications@github.com',
];
async function processEmailForAgent(
eventData: EmailReceivedEvent,
emailContent: EmailContent
) {
const sender = eventData.from.toLowerCase();
if (!ALLOWED_SENDERS.some(allowed => sender === allowed.toLowerCase())) {
console.log(`Rejected email from unauthorized sender: ${sender}`);
await notifyOwnerOfRejectedEmail(eventData);
return;
}
await agent.processEmail({
from: eventData.from,
subject: eventData.subject,
body: emailContent.text || emailContent.html,
});
}| Practice | Why |
|---|---|
| Verify webhook signatures | Prevents spoofed webhook events |
| Log all rejected emails | Audit trail for security review |
| Use allowlists where possible | Explicit trust is safer than filtering |
| Rate limit email processing | Prevents excessive processing load |
| Separate trusted/untrusted handling | Different risk levels need different treatment |
| Anti-Pattern | Risk |
|---|---|
| Process emails without validation | Anyone can control your agent |
| Trust email headers for authentication | Headers are trivially spoofed |
| Execute code from email content | Untrusted input should never run as code |
| Store email content in prompts verbatim | Untrusted input mixed into prompts can alter agent behavior |
| Give untrusted emails full agent access | Scope capabilities to the minimum needed |
After choosing your security level and setting up your domain, create a webhook endpoint. The webhook endpoint MUST be a POST route. Resend sends all webhook events as POST requests.
Critical: Use raw body for verification. Webhook signature verification requires the raw request body.
- Next.js App Router: Use
req.text()(notreq.json())- Express: Use
express.raw({ type: 'application/json' })on the webhook route
// app/webhook/route.ts
import { Resend } from 'resend';
import { NextRequest, NextResponse } from 'next/server';
const resend = new Resend(process.env.RESEND_API_KEY);
export async function POST(req: NextRequest) {
try {
const payload = await req.text();
const event = resend.webhooks.verify({
payload,
headers: {
'svix-id': req.headers.get('svix-id'),
'svix-timestamp': req.headers.get('svix-timestamp'),
'svix-signature': req.headers.get('svix-signature'),
},
secret: process.env.RESEND_WEBHOOK_SECRET,
});
if (event.type === 'email.received') {
// Webhook payload only includes metadata, not email body
const { data: email } = await resend.emails.receiving.get(
event.data.email_id
);
// Apply the security level chosen above
await processEmailForAgent(event.data, email);
}
return new NextResponse('OK', { status: 200 });
} catch (error) {
console.error('Webhook error:', error);
return new NextResponse('Error', { status: 400 });
}
}import express from 'express';
import { Resend } from 'resend';
const app = express();
const resend = new Resend(process.env.RESEND_API_KEY);
const ALLOWED_SENDERS = (process.env.ALLOWED_SENDERS || '').split(',').filter(Boolean);
const isAllowedSender = (sender) =>
ALLOWED_SENDERS.some(allowed => sender === allowed.toLowerCase());
app.post('/webhook', express.raw({ type: 'application/json' }), async (req, res) => {
try {
const payload = req.body.toString();
const event = resend.webhooks.verify({
payload,
headers: {
'svix-id': req.headers['svix-id'],
'svix-timestamp': req.headers['svix-timestamp'],
'svix-signature': req.headers['svix-signature'],
},
secret: process.env.RESEND_WEBHOOK_SECRET,
});
if (event.type === 'email.received') {
const sender = event.data.from.toLowerCase();
if (!isAllowedSender(sender)) {
console.log(`Rejected email from unauthorized sender: ${sender}`);
res.status(200).send('OK'); // Return 200 even for rejected emails
return;
}
const { data: email } = await resend.emails.receiving.get(event.data.email_id);
await processEmailForAgent(event.data, email);
}
res.status(200).send('OK');
} catch (error) {
console.error('Webhook error:', error);
res.status(400).send('Error');
}
});
app.get('/', (req, res) => res.send('Agent Email Inbox - Ready'));
app.listen(3000, () => console.log('Webhook server running on :3000'));For webhook registration via API, tunneling setup, svix fallback, and retry behavior, see references/webhook-setup.md.
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
async function sendAgentReply(to: string, subject: string, body: string, inReplyTo?: string) {
if (!isAllowedToReply(to)) {
throw new Error('Cannot send to this address');
}
const { data, error } = await resend.emails.send({
from: 'Agent <agent@example.com>',
to: [to],
subject: subject.startsWith('Re:') ? subject : `Re: ${subject}`,
text: body,
headers: inReplyTo ? { 'In-Reply-To': inReplyTo } : undefined,
});
if (error) throw new Error(`Failed to send: ${error.message}`);
return data.id;
}For full sending docs, install the resend skill.
# Required
RESEND_API_KEY=re_xxxxxxxxx
RESEND_WEBHOOK_SECRET=whsec_xxxxxxxxx
# Security Configuration
SECURITY_LEVEL=strict # strict | domain | filtered | sandboxed
ALLOWED_SENDERS=you@email.com,trusted@example.com
ALLOWED_DOMAINS=example.com
OWNER_EMAIL=you@email.com # For security notifications| Mistake | Fix |
|---|---|
| No sender verification | Always validate who sent the email before processing |
| Trusting email headers | Use webhook verification, not email headers for auth |
| Same treatment for all emails | Differentiate trusted vs untrusted senders |
| Verbose error messages | Keep error responses generic to avoid leaking internal logic |
| No rate limiting | Implement per-sender rate limits. See references/advanced-patterns.md |
| Processing HTML directly | Strip HTML or use text-only to reduce complexity and risk |
| No logging of rejections | Log all security events for audit |
| Using ephemeral tunnel URLs | Use persistent URLs (Tailscale Funnel, paid ngrok) or deploy to production |
Using express.json() on webhook route | Use express.raw({ type: 'application/json' }) — JSON parsing breaks signature verification |
| Returning non-200 for rejected emails | Always return 200 to acknowledge receipt — otherwise Resend retries |
| Old Resend SDK version | emails.receiving.get() and webhooks.verify() require recent SDK versions — see SDK Version Requirements |
Use Resend's test addresses for development:
delivered@resend.dev — Simulates successful deliverybounced@resend.dev — Simulates hard bounceFor security testing, send test emails from non-allowlisted addresses to verify rejection works correctly.
Quick verification checklist:
curl http://localhost:3000 should return a responsecurl https://<your-tunnel-url> should return the same responseresend skill© Asymmetric-al, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .agents/skills/agent-email-inbox of Asymmetric-al/core.
Open the folder on GitHubat commit 71b81fa
Agent Email Inbox next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Agent Email Inbox this skillAsymmetric-al/core | 381 | — | ~4.1k | Automated safety check: Notes | MIT | |
| AtomicmailAtomic-Mail/atomic-mail-agentic | 266 | 1 repos | ~2k | Automated safety check: Pass | MIT | |
| Gmail Emailopen-gitagent/gitagent | 714 | — | ~235 | Automated safety check: Notes | MIT | |
| Google Workspaceyc-software/qm | 15k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Email Draftingmgonto/executive-assistant-skills | 118 | — | ~2.8k | Automated safety check: Pass | None | |
| Tethertokencanopy/e2a | 193 | — | ~4.7k | Automated safety check: Pass | Apache-2.0 |
Atomic-Mail/atomic-mail-agentic
Read and write email through the Atomic Mail from an AI agent.
open-gitagent/gitagent
Send emails via Gmail SMTP using App Password authentication.
yc-software/qm
Read and act on the user's Gmail, Google Calendar, and Google Tasks through per-user OAuth.
mgonto/executive-assistant-skills
Draft email replies for Gonto's Gmail accounts (m@gon.to, gonto@hypergrowthpartners.com).
tokencanopy/e2a
Beta — Stay in the loop over email during a long-running coding session.
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
Asymmetric-al/core
Implement idempotency keys and handling to ensure operations can be safely retried without duplicate effects.
Asymmetric-al/core
Audit and fix accessibility in Core UI. An agent skill from Asymmetric-al/core.
Asymmetric-al/core
Build modern, composable, and accessible React UI components following the components.build specification.
Asymmetric-al/core
Guides a one-question-at-a-time design interview, captures alignment in agent/EVE-BRIEF.md, then scaffolds and implements a runnable eve agent with verbose teaching comments.
Asymmetric-al/core
Design engineering principles and patterns for building polished, accessible web interfaces.
Asymmetric-al/core
Use only when the user explicitly invokes grill-for-unknowns or asks for a map-vs-territory unknowns pass, blindspot discovery, unknown-known prototypes, or a subagent launch packet before…
Categories
A skill your agent uses when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted…. Agent Email Inbox is an agent skill from Asymmetric-al/core. Use when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted inbound email.
Agent Email Inbox fits situations like: building any system where email content triggers actions — AI agent inboxes; automated support handlers; email-to-task pipelines; any workflow processing untrusted inbound email.
Run `npx skills add Asymmetric-al/core --skill agent-email-inbox -a claude-code`. Or copy the skill folder (.agents/skills/agent-email-inbox in Asymmetric-al/core) into .claude/skills/agent-email-inbox in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Asymmetric-al/core --skill agent-email-inbox -a codex`. Or copy the skill folder (.agents/skills/agent-email-inbox in Asymmetric-al/core) into .agents/skills/agent-email-inbox in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Asymmetric-al/core --skill agent-email-inbox -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-email-inbox, .gemini/skills/agent-email-inbox, .github/skills/agent-email-inbox and .opencode/skills/agent-email-inbox in your project.
Going by SKILL.md and its folder, Agent Email Inbox needs the command-line tools its instructions call (curl and npm) and credentials named RESEND_API_KEY and RESEND_WEBHOOK_SECRET. Our summary lists: Python 3; Node.js; A credential in RESEND_API_KEY; A credential in RESEND_WEBHOOK_SECRET.
SKILL.md names 1 domain. As links in the text: dns.email. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Agent Email Inbox is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Agent Email Inbox: Atomicmail (Atomic-Mail/atomic-mail-agentic, 266 stars), Gmail Email (open-gitagent/gitagent, 714 stars), Google Workspace (yc-software/qm, 15k stars) and Email Drafting (mgonto/executive-assistant-skills, 118 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Asymmetric-al (a GitHub organization) maintains it in Asymmetric-al/core, which has 381 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on October 11, 2026.
Source: Asymmetric-al/core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.