agentify
Beta — Deploy the autonomous-repo feedback loop into a GitHub repo. Scaffolds the lane workflows, the runtime skill, and one…
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
$ npx -y skills add tokencanopy/e2a --skill autopilot --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/autopilotContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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
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.
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.
"$AUTOPILOT" interview
It saves after every answer and can resume.
Render the deterministic plan after onboarding:
"$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:
"$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:
"$AUTOPILOT" start --agent support@example.com
Never start Autopilot merely because install succeeded.
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:
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:
sends every non-match to human review;
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.
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
Open-source email API for applications and AI agents. Managed hosting at e2a.dev, or self-host with Docker.
Beta — Deploy the autonomous-repo feedback loop into a GitHub repo. Scaffolds the lane workflows, the runtime skill, and one…
Runtime procedures for the autonomous-repo feedback loop — triage incoming feedback into GitHub issues, prepare human-gated fix…
Beta — Stay in the loop over email during a long-running coding session. The agent sends threaded status updates to your inbox as…
Use when an existing e2a MCP connection, inbox, custom domain, protection policy, webhook, or message delivery is failing or…
Use when adding e2a email capabilities to an application or codebase: outbound sending, inbound signed webhooks, REST polling, or…
Use when a user wants to connect or authorize the e2a MCP server, select or create an agent inbox, verify first-run readiness, or…