Skip to content
HitmasuPublic

About

Disposable email built for AI agents, QA and automation

Resources

Contributing

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Latest commit

 

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ahrara macaw logo

Ahrara

Zero Retention. Simple. Free. Open Source.

Disposable email built for AI agents, QA and automation.

Website · Documentation · Português · Español · Sponsor

Ahrara gives you disposable email addresses with an inbox on your own computer. Receive any email, then read it in the terminal or browser, hand it to your AI agent through MCP, or assert on it from your test suite.

  • Zero Retention. The relay streams mail to your computer and keeps no inbox. Received mail stays in your encrypted local inbox until you delete it.
  • Built for automation. Plugins for 25 coding agents, an MCP server, a local HTTP API and SDKs for TypeScript, Python, .NET, Java, Go, Rust and k6.
  • Receive-only. Ahrara never sends email or relays it to other servers.
  • Free and open source under the MIT License.

📦 Install

Use Ahrara as a CLI on your computer, as an SDK inside your tests, as a plugin for your AI agent, or in the browser with nothing to install.

CLI: Shell, PowerShell, npm, Homebrew, Docker or a binary

macOS and Linux:

curl -fsSL https://ahrara.dev/install.sh | sh

Windows (PowerShell):

iwr https://ahrara.dev/install.ps1 -useb | iex

npm, on any of them:

npm install -g ahrara

Homebrew:

brew tap hitmasu/ahrara https://github.com/Hitmasu/Ahrara.git
brew install hitmasu/ahrara/ahrara

Docker, on Linux x64 and ARM64. Add any command after the image name; the ahrara volume keeps your identity and inbox between runs:

docker run --rm -it -v ahrara:/home/nonroot ghcr.io/hitmasu/ahrara

Every method installs one executable for Linux, macOS or Windows on x64 or ARM64; they are also on GitHub Releases (manual install). Run ahrara --version to confirm the installation.

SDKs: TypeScript, Python, .NET, Java, Go, Rust and k6
Language Install
TypeScript / JavaScript npm install @ahrara/sdk
Python pip install ahrara
.NET dotnet add package Ahrara
Java Maven dependency io.github.hitmasu:ahrara
Go go get github.com/Hitmasu/Ahrara/src/sdks/go@latest
Rust From source, see the Rust guide
k6 Custom k6 build, see the k6 guide
AI agents: plugins for Claude Code, Codex, Copilot CLI, Gemini CLI and 21 more
Agent Install
Claude Code /plugin marketplace add Hitmasu/Ahrara, then /plugin install ahrara@ahrara
Codex codex plugin marketplace add Hitmasu/Ahrara, then codex plugin add ahrara@ahrara
GitHub Copilot CLI copilot plugin marketplace add Hitmasu/Ahrara, then copilot plugin install ahrara@ahrara
Gemini CLI gemini extensions install https://github.com/Hitmasu/Ahrara

Plugins need Node.js 20+. Cursor, Windsurf, Cline, OpenCode, Kiro and 16 other agents are supported through plugins, rules or instructions; see the agents guide.

Browser: nothing to install

Open app.ahrara.dev; see the Web interface.

🚀 Quick start

ahrara
  1. Wait for Connected. Your first address is created automatically and shown in the Email row; press C to copy it.
  2. Send a message to that address, or use it in the app you are testing.
  3. Select the received message with ↑/↓ and press Enter to read it.

Keep Ahrara running to receive email: mail is not queued while you are offline. Press / for address, Web and MCP commands, and Ctrl+C to stop. The user guide covers every command and setting.

🤖 AI agents

With its plugin, your agent installs and starts Ahrara itself. Through MCP it can create addresses, wait for verification codes, read messages and check email templates. Any other MCP host can run Ahrara over stdio:

{
  "mcpServers": {
    "ahrara": {
      "command": "ahrara",
      "args": ["mcp", "--transport", "stdio"]
    }
  }
}

To connect over HTTP instead, see the MCP guide.

🧩 SDKs

Give each test its own inbox. SDKs connect directly to the relay, so no CLI needs to run alongside your tests (install).

import { Ahrara } from '@ahrara/sdk';

const inbox = await Ahrara.createInbox();
try {
  // Use inbox.address wherever the app under test sends email.
  const match = await inbox.waitForRegexMatch('[0-9]{6}', {
    timeoutMs: 30_000,
    filter: { subject: 'Verification' },
  });
  console.log(match.value); // The verification code.
} finally {
  await inbox.close();
}

The SDKs work with Playwright, Cypress, Robot Framework, Selenium, pytest, xUnit and JUnit. The SDK guide covers filters, links, attachments and keeping an inbox between runs.

🌐 Web interface

The Web interface starts with ahrara. Open the URL in the terminal's Web row to search and read messages, view HTML, download EML and attachments, and manage addresses. See the Web guide for passwords and LAN access.

To use it without installing anything, open app.ahrara.dev: the same interface connects to the relay from your browser and keeps your inbox there. Keep a tab open to receive email; the browser app guide explains how to move an Identity between the browser and the CLI.

🏗️ How it works

%%{init: {"flowchart": {"curve": "basis", "wrappingWidth": 400}}}%%
flowchart LR
    Sender(["`📨 **Sender**`"]) -- Email --> Relay["`🛰️ **Ahrara Relay**`"]
    Relay -- 🔐 Encrypted --> Ahrara

    subgraph Computer["💻 Your computer"]
        direction LR
        Ahrara["`🦜 **Ahrara**
        Terminal · SDK · AI · Web`"] --> Inbox[("`🗄️ **Encrypted inbox**`")]
    end

    classDef sender fill:#fff4e5,stroke:#f59e0b,stroke-width:2px,color:#7c2d12
    classDef relay fill:#e8f1ff,stroke:#2563eb,stroke-width:2px,color:#1e3a8a
    classDef ahrara fill:#ffecec,stroke:#e11a1c,stroke-width:2px,color:#7f1d1d
    classDef inbox fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b
    class Sender sender
    class Relay relay
    class Ahrara ahrara
    class Inbox inbox
    style Computer fill:transparent,stroke:#94a3b8,stroke-width:1.5px,stroke-dasharray:6 4
    linkStyle default stroke:#64748b,stroke-width:2px
Loading
  1. A sender delivers mail to your Ahrara address.
  2. The relay streams it to your connected client over an encrypted connection and keeps no copy.
  3. Your client saves it to the encrypted inbox and confirms; only then does the relay accept the delivery from the sender.

See how delivery works and the server documentation to run your own relay.

🔐 Security

  • Your Identity is created on your computer. The Recovery Key restores it and unlocks your inbox, so keep it private.
  • Mail is encrypted on its way to your client and in your local inbox.
  • Ahrara is not end-to-end encrypted: senders, forwarding providers and the relay can read messages.
  • Web, MCP and the API listen only on your computer by default, and MCP and the API require a token. The browser app keeps its Identity and inbox in that browser's storage.
  • Treat email as untrusted input, especially when an AI agent reads it.

See SECURITY.md for security boundaries and how to report a vulnerability.

💖 Support

Ahrara is free to use. If it saves you time, consider sponsoring the project on GitHub to help keep it online and evolving.

🤝 Contributing

See CONTRIBUTING.md for the development setup, checks and pull requests, and the release guide for publishing a release. Report reproducible bugs through issues.

🙏 Acknowledgments

The relay's integrated Cloudflare Tunnel connector is derived from libcfd by apersomany. Thank you for building a programmable Tunnel client in Rust; Ahrara's connector starts from it under the Apache-2.0 license, as recorded in the server notice.

📄 License

MIT. Vendored dependencies, derived code, and icons retain their licenses: shared dependencies, server, and icons.

About

Disposable email built for AI agents, QA and automation

Resources

Contributing

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages