Ahrara
Language: English
Install

Ahrara

Zero Retention. Simple. Free. Open Source.

Disposable email built for AI agents, QA and automation

Receive any email right in your browser or in an inbox on your computer. Use it from the terminal, your AI agent or your tests.

What, How & Why Ahrara

What is Ahrara?
Disposable email addresses with an inbox on your computer. Read messages in the terminal or browser, or automate with MCP, the local API and the SDKs.
How does it work?
Ahrara generates addresses locally. While it runs, the relay streams incoming emails over an encrypted connection to the inbox on your computer.
Why use Ahrara?
Test signups, verification codes and email templates with dedicated addresses. Keep test emails out of your personal inbox and let your agent handle repetitive checks.

How to use

Read your email in the browser or the terminal, hand it to your AI agent, or assert on it from your tests.

In the browser

Nothing to install: open the web app, create your address and read your emails right there. Your inbox stays in your browser.

Open the web app

Keep the tab open to receive emails. What the browser version supports.

Example of the Ahrara web app with two received emails.

Inbox 2

  • GitHubYour verification code: 482916
  • LinearYou're invited to the workspace

CLI

Install Ahrara, then just run ahrara in your terminal. Your email address is created automatically.

Linux, macOS and Windows on x64 and ARM64.

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

macOS and Linux.

Keep Ahrara running to receive emails.

Example Ahrara terminal session with two received emails.
ahrara
v0.1.0
Status
[+] Connected
Email
nIvUcbwtK1bCU7Ivf6iXR1WFXe9NL8Pl@ahrara.dev (+3 more)
Web
http://127.0.0.1:8787
MCP
http://127.0.0.1:8787/mcp
Inbox — Page 1 — newest first
SelectedReceived (local)FromSubjectSize
Selected emailGitHub <noreply@github.com>Your verification code: 4829161.0 KiB
Linear <notifications@linear.app>You're invited to the workspace1.4 KiB

AI agents

The agent itself manages Ahrara.

Plugins, rules and MCP for 25 coding agents.

/plugin marketplace add Hitmasu/Ahrara /plugin install ahrara@ahrara

Run inside Claude Code, then reload plugins. The plugin needs Node.js 20+.

Using another agent? See agent installation for every supported host.

E2E testAhrara MCP
You

Run an E2E test on my app. Use Ahrara to sign up.

Agent

I'll sign up with an Ahrara address, verify the account and check the emails.

  1. Disposable address createdListening for emails through Ahrara MCP.
  2. Account created in your appSubmitted the signup form with the Ahrara address.
  3. Email verifiedUsed code 482916 from the verification email to confirm the account.
  4. Email templates validatedChecked subjects, plain text and HTML in the verification and welcome emails.

E2E passed. Account verified and email templates matched expectations.

SDKs

Give each test its own inbox. Use its address in a signup or password-reset flow, then wait for the email and extract a code or link. Each inbox connects directly to the relay, with no CLI running alongside.

Packages include the native library. Validated on Linux x64.

npm install @ahrara/sdk

Node.js 20+.

See the SDK guide for filters, links, attachments and reusing an inbox.

Extract a verification code
import { Ahrara } from '@ahrara/sdk';

const inbox = await Ahrara.createInbox();
try {
  // The application requests a verification email for inbox.address here.
  const match = await inbox.waitForRegexMatch('[0-9]{6}', {
    timeoutMs: 30_000,
    filter: { subject: 'Verification' },
  });
  // The extracted code is available to the application.
  const code = match.value;
} finally {
  await inbox.close();
}

Test frameworks

Create the inbox in your test setup, use its address in the flow under test and close it in teardown.

Use the SDK from the framework you already run.

npm install @ahrara/sdk

Own the inbox in a Node test fixture.

The same APIs work with xUnit, NUnit, MSTest, pytest and JUnit, and with Selenium through the Java SDK.

Extract a verification code in a test
import { test, expect } from '@playwright/test';
import { Ahrara } from '@ahrara/sdk';

test.use({ baseURL: 'https://app.example.com' });

test('receives the email', async ({ page }) => {
  const inbox = await Ahrara.createInbox();
  try {
    await page.goto('/signup');
    await page.getByLabel('Email', { exact: true }).fill(inbox.address);
    await page.getByRole('button', { name: 'Sign up', exact: true }).click();
    const match = await inbox.waitForRegexMatch('[0-9]{6}', {
      timeoutMs: 30_000,
      filter: { subject: 'Verification' },
    });
    await page.getByLabel('Verification code').fill(match.value);
    await page.getByRole('button', { name: 'Verify', exact: true }).click();
    await expect(page.getByText('Verified', { exact: true })).toBeVisible();
  } finally {
    await inbox.close();
  }
});

Zero Data Retention

The Ahrara server saves no emails or address records. Its stateless design keeps delivery simple, with no server inbox to maintain.

You own your email

Your addresses are generated locally and tied to your cryptographic Identity. Your private key stays on your computer and proves ownership when you connect.

  1. Incoming emailDelivered in real time
  2. Ahrara serverNo email retained
  3. Your computerYour local inbox

Your emails and addresses are saved only on your computer.

100% Free

All Ahrara features are free to use. No account needed. Open source.

Donations are welcome and entirely optional.

FAQ

Does Ahrara store my emails or addresses on its servers?

No. Messages pass through the server without being saved, and email addresses are not registered there. Your inbox and addresses are stored locally on your computer.

Can I send emails with Ahrara?

No. Ahrara only receives emails. It does not support sending messages or replying to them.

Is Ahrara an open email relay?

No. Senders can deliver email without logging in, but Ahrara never relays it to external mail servers. Messages go only to the authenticated Ahrara client for the receiving address.

Can I use my own domain?

Yes. Set up forwarding from your domain to an Ahrara address, then add the domain in Ahrara. New addresses will use your domain instead of ahrara.dev. See the custom domain guide for setup instructions.