Agent skill

Autopilot

by tokencanopy in tokencanopy/e2a

Conversationally configure and operate a policy-first, always-on local e2a email agent.

Apache-2.0Auto-check passedBackend & APIs

Install Autopilot

skills CLI
$ npx skills add tokencanopy/e2a --skill autopilot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tokencanopy/e2a autopilot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tokencanopy/e2a.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/e2a-labs/skills/autopilot .claude/skills/autopilot && rm -rf skills-src

Use ~/.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/

Facts

Skill name
autopilot
GitHub stars
192
Token cost
~2.3k tokens
SKILL.md length
1,144 words
Files
36
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Conversationally configure and operate a policy-first, always-on local e2a email agent.

  • Works in 10 steps: The task outcome. Offer the built-in… → For support: scope, exclusions, approved… → An existing e2a inbox and its human owner. → …
  • Someone wants an agent to monitor an inbox
  • SKILL.md covers Required conversational behavior, Confirmation is a hard boundary, Enforced architecture and Runtime isolation, plus 3 more sections
  • Runs JavaScript and Shell scripts from its folder

What it does

Autopilot is an agent skill from tokencanopy/e2a. Conversationally configure and operate a policy-first, always-on local e2a email agent. Use when someone wants an agent to monitor an inbox, handle support or another bounded task, review unauthorized senders, require human approval for outbound mail, CC an owner, or run Claude Code, Codex, Hermes Agent, or a custom runtime unattended.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 36 other files (for example `autopilot.sh`).

It sits in Backend & APIs, covering Email management and Transactional email. The repository describes itself as: Open-source email API for applications and AI agents. Managed hosting at e2a.dev, or self-host with Docker. The licence is Apache-2.0.

When your agent uses it

  • Someone wants an agent to monitor an inbox
  • Another bounded task
  • Review unauthorized senders
  • Require human approval for outbound mail

Example prompts

  • “/autopilot”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. The task outcome. Offer the built-in customer-support starter or a custom task.
  2. For support: scope, exclusions, approved knowledge, escalation conditions,
  3. An existing e2a inbox and its human owner.
  4. One inbound authorization mode: exact sender addresses or verified sender
  5. Non-matching inbound mail goes to e2a human review. Do not offer a silent
  6. Outbound review, default on. Turning it off requires the warning and the
  7. Owner CC on every reply, default on. Turning it off requires a warned
  8. Prompt-injection screening, recommended and default on. Turning it off
  9. Claude Code, Codex, Hermes Agent, or a custom executable; its
  10. launchd, systemd, or foreground operation.

What it can do on your machine

Read from SKILL.md and the folder at commit 776fe2c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (JavaScript and Shell, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Autopilot loads about 2.3k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 1,144 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

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.

SKILL.md

The full file from tokencanopy/e2a at commit 776fe2c, republished under its Apache-2.0 licence (© tokencanopy). 1,144 words, ~2,257 tokens.

Download SKILL.mdSave it as .claude/skills/autopilot/SKILL.md (or your agent's skills folder). This skill also uses 35 other files; get the full folder from GitHub.
name
autopilot
description
Conversationally configure and operate a policy-first, always-on local e2a email agent. Use when someone wants an agent to monitor an inbox, handle support or another bounded task, review unauthorized senders, require human approval for outbound mail, CC an owner, or run Claude Code, Codex, Hermes Agent, or a custom runtime unattended.
version
2

e2a Autopilot

Autopilot turns one existing e2a inbox into an always-on local agent trigger. It uses the current e2a protection and CLI surfaces; it does not require or propose server, API, database, SDK, MCP, or core-CLI changes.

Use tether instead when the owner wants to steer an already-running interactive session by email. Use a cloud webhook instead when a stable public service should own the workflow. Autopilot is the local-machine daemon: e2a listen connects outbound, so the machine does not need a public endpoint.

Required conversational behavior

Conduct onboarding as a conversation. Ask one logical question at a time, reflect material answers, explain a tradeoff before asking for a risky opt-out, and skip facts the user already supplied. Do not paste the entire questionnaire.

The interview must establish:

  1. The task outcome. Offer the built-in customer-support starter or a custom task.
  2. For support: scope, exclusions, approved knowledge, escalation conditions, tone/signature, response expectations, and refund/billing/security/legal limits.
  3. An existing e2a inbox and its human owner.
  4. One inbound authorization mode: exact sender addresses or verified sender domains. The current protection gate cannot mix both modes on one inbox.
  5. Non-matching inbound mail goes to e2a human review. Do not offer a silent bypass or “any authenticated internet sender”; the current surface cannot express the latter safely.
  6. Outbound review, default on. Turning it off requires the warning and the exact acknowledgement requested by the interview.
  7. Owner CC on every reply, default on. Turning it off requires a warned acknowledgement.
  8. Prompt-injection screening, recommended and default on. Turning it off requires a warned acknowledgement.
  9. Claude Code, Codex, Hermes Agent, or a custom executable; its absolute path, workspace, and isolation mode. (OpenClaw is unavailable in this release: its invocation flags are unverified.) Hermes and custom executables require an acknowledged external isolation boundary because Autopilot cannot verify one for them. A built-in container runner is not implemented in this release; use an explicitly reviewed custom wrapper.
  10. launchd, systemd, or foreground operation.

Use the plugin-local entrypoint for the authoritative interview and policy. autopilot.sh sits in this skill's own directory, next to this SKILL.md. Substitute its absolute path for $AUTOPILOT in every command below; the script resolves its own resources, so any working directory works.

bash
"$AUTOPILOT" interview

It saves after every answer and can resume.

Confirmation is a hard boundary

Render the deterministic plan after onboarding:

bash
"$AUTOPILOT" plan

Show the complete output, limitations, and 64-character plan digest to the user. Then ask for confirmation of that exact digest. A casual earlier “yes,” approval of the design, or permission to continue polishing is not installation approval.

Only after the user confirms the displayed digest may you run:

bash
"$AUTOPILOT" install --confirm <digest>

install is visibly mutating. It uses the operator's current account-scoped e2a CLI session to verify inbox ownership, save the existing protection document, mint one dedicated agent-scoped supervisor key, apply the confirmed protection, verify it, and create owner-only local state and a secret-free service definition. It rolls back protection and revokes the new key if installation fails. It never stores the account credential.

Installation deliberately does not start the service. Starting an always-on agent is a second intentional action. Ask before running:

bash
"$AUTOPILOT" start --agent support@example.com

Never start Autopilot merely because install succeeded.

Enforced architecture

The supervisor owns the agent-scoped e2a key. A task runtime never receives an e2a key, MCP credential, forward token, or arbitrary mailbox access. Each job gets a new local socket and capability exposing only:

  • current-message (read)
  • current-thread (read)
  • reply (submit)
  • escalate
  • complete

The gateway binds reads and replies to the current job, chooses reply recipients from the existing thread, and injects the owner CC when configured. It has no list, search, delete, arbitrary-recipient, key-management, protection, or review- approval operation. Do not “help” a runtime by adding direct e2a MCP or CLI access.

Inbound delivery is defense in depth:

  • e2a's existing protection gate allows the selected authenticated senders and sends every non-match to human review;
  • the local receiver independently refuses an event that does not match policy;
  • prompt-injection screening is a separate content check for allowed mail; and
  • a message released by a reviewer is found by listener delivery or periodic unread reconciliation.

Durable metadata-only jobs move through pending, running, retry, done, and dead. Message bodies are fetched only for the active job and are not written to the spool or logs. Stale running jobs recover after restart. Listener bouncing and independent unread reconciliation cover silent WebSocket gaps.

Show full SKILL.md (417 more words)Show less

Runtime isolation

Adapters are one-shot and receive a sanitized environment plus the job gateway. Claude Code and Codex run with their session-persistence, MCP inheritance, and user config disabled; Hermes uses one-shot safe mode. None of these adapter flags is treated as an isolation boundary by itself.

For every job the harness also wraps the runtime process in a per-job OS sandbox when one is available: sandbox-exec on macOS (an allow-default profile with file-read* denies) or bwrap on Linux (tmpfs mask over the install root). The sandbox denies reads of the Autopilot install root's credential, policy, state, and log files while leaving the confirmed workspace and the network usable — coding agents need their own LLM APIs. When neither tool exists the runtime runs unwrapped, and the acknowledged external-isolation model below remains the mitigation.

The OS account is still a trust boundary. A hostile process running as the same user may inspect owner-readable files outside the denied set or process state. A prompt that says “do not read secrets” is not a sandbox; do not describe it as one.

Operations

bash
# Foreground debugging
"$AUTOPILOT" run --agent support@example.com

# Service lifecycle
"$AUTOPILOT" start --agent support@example.com
"$AUTOPILOT" stop --agent support@example.com

# Local status; --verify temporarily uses the current account CLI session to
# compare observable e2a protection fields with the installed policy.
"$AUTOPILOT" status --agent support@example.com
"$AUTOPILOT" status --agent support@example.com --verify

# Paths only by default; add --follow to tail
"$AUTOPILOT" logs --agent support@example.com --follow

After starting, verify all of these before declaring success:

  1. Status reports the service running and status --verify reports matches-policy.
  2. Logs show the loopback receiver and supervisor starting without secret values.
  3. An authorized synthetic sender creates one job and a reply stays in-thread, CCs the owner, and enters outbound review when enabled.
  4. A non-authorized synthetic sender is held by e2a review and creates no local runtime job.
  5. Releasing that held message makes reconciliation enqueue it once.
  6. Restarting the service neither loses nor duplicates durable work.

Use only synthetic addresses and content in repository fixtures and public logs.

Uninstall

Show the uninstall plan and require the literal confirmation DELETE:

bash
"$AUTOPILOT" uninstall \
  --agent support@example.com --confirm DELETE

Uninstall stops the service, revokes its dedicated key, removes the service definition, and moves local state to a recoverable timestamped archive. It does not restore the pre-install protection automatically: an administrator may have changed it later, and a blind restore could overwrite intentional security work.

Truthful limitations

Always disclose these in the plan:

  1. Owner CC is enforced by the local gateway, not the server.
  2. Account administrators can later change protection; the daemon has no durable revision signal. status --verify is an explicit drift check.
  3. The current CLI puts the listener forward token in a child-process argument, visible to the same OS user.
  4. Public-any-authenticated-sender mode is not supported in this release.
  5. Human reviewers are trusted and can edit an approved outbound message.

© tokencanopy, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 35 other files in plugins/e2a-labs/skills/autopilot of tokencanopy/e2a.

  • SKILL.md
  • autopilot.mjs
  • autopilot.sh
  • config.mjs
  • daemon.mjs
  • gateway.mjs
  • installer.mjs
  • interview.mjs
  • job-tool.mjs
  • lock.mjs
  • mail-client.mjs
  • operator.mjs
  • policy.mjs
  • runner.mjs
  • runtime.mjs
  • service.mjs
  • setup.mjs
  • spool.mjs
  • supervisor.mjs
  • test/autopilot-cli.test.mjs
  • … and 16 more

Open the folder on GitHubat commit 776fe2c

Compare with similar skills

Autopilot 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.

Autopilot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Autopilot this skilltokencanopy/e2a192—~2.3kAutomated safety check: PassApache-2.0
Email Deliverability Auditgrowthenginenowoslawski/coldoutboundskills740—~3.4kAutomated safety check: PassMIT
Himalaya Email CLIPrismer-AI/PrismerCloud1.6k2 repos~2.3kAutomated safety check: PassMIT
Smtp Email Senderopenakita/openakita2k—~693Automated safety check: NotesAGPL-3.0
Email AuditAgriciDaniel/claude-email128—~3kAutomated safety check: NotesMIT
Deliverability Test Publicgrowthenginenowoslawski/coldoutboundskills740—~1kAutomated safety check: PassMIT

Similar skills

  • Email Deliverability Audit

    growthenginenowoslawski/coldoutboundskills

    Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.

    740 GitHub stars~3.4k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Himalaya Email CLI

    Prismer-AI/PrismerCloud

    Operates a mailbox from the terminal with the external Himalaya CLI over IMAP, SMTP, Notmuch or Sendmail, separate from any built-in email gateway adapter.

    1.6k GitHub starsUsed in 2 repos~2.3k tokens
    Backend & APIsAuto-check passed
  • Smtp Email Sender

    openakita/openakita

    Send emails via SMTP (Gmail, Outlook, etc.). An agent skill from openakita/openakita.

    2k GitHub stars~693 tokensUpdated 13 days ago
    Backend & APIsAuto-check: notes
  • Email Audit

    AgriciDaniel/claude-email

    Audits email domain deliverability setup (SPF, DKIM, DMARC, MX records, blacklists, TLS) and generates health score (0-100) with prioritized fix list.

    128 GitHub stars~3k tokensUpdated 4 mo ago
    Backend & APIsAuto-check: notes
  • Deliverability Test Public

    growthenginenowoslawski/coldoutboundskills

    Compare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account.

    740 GitHub stars~1k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Deliverability Ops

    gtmagents/gtm-agents

    A skill your agent uses when investigating inbox placement, reputation, and compliance signals across senders.

    412 GitHub starsUsed in 2 repos~385 tokens
    Backend & APIsAuto-check passed

More from tokencanopy/e2a

All 8 skills in this repo
  • E2a

    tokencanopy/e2a

    A skill your agent uses when operating an already-connected e2a inbox over MCP: reading, composing, sending, replying, forwarding, handling attachments, managing contacts/outreach, scheduling mail…

    192 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Email Evals

    tokencanopy/e2a

    Author and safely run deterministic email-agent evaluation suites with dedicated e2a test agents.

    192 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Tether

    tokencanopy/e2a

    Beta — Stay in the loop over email during a long-running coding session.

    192 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Agentify

    tokencanopy/e2a

    Beta — Deploy the autonomous-repo feedback loop into a GitHub repo.

    192 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • E2a Doctor

    tokencanopy/e2a

    A skill your agent uses when an existing e2a MCP connection, inbox, custom domain, protection policy, webhook, or message delivery is failing or unclear.

    192 GitHub stars~994 tokensUpdated yesterday
    Auto-check passed
  • E2a Integrate

    tokencanopy/e2a

    A skill your agent uses when adding e2a email capabilities to an application or codebase: outbound sending, inbound signed webhooks, REST polling, or SDK integration.

    192 GitHub stars~840 tokensUpdated yesterday
    Auto-check passed

Questions about Autopilot

What does Autopilot do?

Conversationally configure and operate a policy-first, always-on local e2a email agent. Autopilot is an agent skill from tokencanopy/e2a. Conversationally configure and operate a policy-first, always-on local e2a email agent.

When should I use Autopilot?

Autopilot fits situations like: someone wants an agent to monitor an inbox; another bounded task; review unauthorized senders; require human approval for outbound mail.

How do I install Autopilot in Claude Code?

Run `npx skills add tokencanopy/e2a --skill autopilot -a claude-code`. Or copy the skill folder (plugins/e2a-labs/skills/autopilot in tokencanopy/e2a) into .claude/skills/autopilot in your project. Claude Code loads it when a task matches its description.

How do I install Autopilot in Codex?

Run `npx skills add tokencanopy/e2a --skill autopilot -a codex`. Or copy the skill folder (plugins/e2a-labs/skills/autopilot in tokencanopy/e2a) into .agents/skills/autopilot in your project. Codex loads it when a task matches its description.

Can I use Autopilot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tokencanopy/e2a --skill autopilot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/autopilot, .gemini/skills/autopilot, .github/skills/autopilot and .opencode/skills/autopilot in your project.

What does Autopilot need to run?

Going by SKILL.md and its folder, Autopilot needs JavaScript and a shell for the scripts in its folder. Our summary lists: Node.js; A Bash shell.

Does Autopilot access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Autopilot safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Autopilot use?

Autopilot is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Autopilot use?

About 2.3k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Autopilot?

Skills that share tags, products or a category with Autopilot: Email Deliverability Audit (growthenginenowoslawski/coldoutboundskills, 740 stars), Himalaya Email CLI (Prismer-AI/PrismerCloud, 1.6k stars), Smtp Email Sender (openakita/openakita, 2k stars) and Email Audit (AgriciDaniel/claude-email, 128 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Autopilot?

tokencanopy (a GitHub organization) maintains it in tokencanopy/e2a, which has 192 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

Source: tokencanopy/e2a on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.