CarlyEmail docs

Examples

Agents with a real email address, each one run for real, with the mail they sent in the README.

Every example in UseCarly/carlyemail-examples was run for real, and its README quotes the mail. Clone one, fill in two keys, and you have an agent with an address.

What it does Shows off
Coding agent Email it a task about a repository. It clones, makes the change on a branch, opens a pull request, and replies with the link. Reply on the thread and it resumes the same session. Built on the Claude Agent SDK. A shell behind an address, made safe by code; a thread as a session
Support desk Answers support mail from the product's own docs, citing the page. Hands the rest to a person with a summary, tells the customer who has it, nudges the person a day later, and relays their answer back. Labels every thread. Triage you can see in the inbox; escalation that does not die; a prompt injection handled
Verification codes An address your agent signs up for things with. The site emails a code; wait_for_code() hands it back. Sixty lines, no model. Agents that can complete a sign-up

The wiring

frameworks/ The smallest useful email agent on the OpenAI Agents SDK, LangChain and the Claude Agent SDK — over hosted MCP, no tool wrappers.
email-claude/ You write, Claude answers. No tools, no persona.
sandbox-assistant/ Email it a task; a Claude agent with a shell does it in Anthropic's cloud and replies.
replit-email-agent/ The same, one click, with the public URL problem solved for you.

Running one

git clone https://github.com/UseCarly/carlyemail-examples
cd carlyemail-examples/support-desk
pip install -r requirements.txt
cp .env.example .env            # a model key, a CarlyEmail key, an inbox
python agent.py                 # one pass over the inbox

An inbox and a key come from sign-up. Each example's webhook.py runs the same pass when mail arrives — see receiving mail for registering one.

See also