Back to the homepage

mailagents.dev / foundations

Clarity, by design.

A shared language for the website, the console, and every conversation in between.

01

Color tokens

Graphite, cool white, and restrained spectral accents. Switch themes to compare.

Canvas--canvas
Surface--surface
Elevated--elevated
Text--text
Secondary--muted
Accent--accent
Success--success
Warning--warning
Danger--danger
Geist Variable / Display

Made for
the next reply.

Precise, open, and easy to read.
Geist Mono Variable / Code & data

inbox.created
agent: research-agent
status: ready

A distinct voice for technical information.

Spacing scale

4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96

Space separates sections and keeps related content together. Borders define controls, panels, and rows that need a clear boundary.

Corner radii

468
02

Actions & feedback

One clear primary action. Familiar, accessible states.

Primary · Secondary · Ghost · Disabled · Loading

DeliveredReceivedNeeds attentionFailedDraft
03

Controls with context

Labels, helpful validation, and explicit feedback.

A readable name for your agent’s inbox.

04

Nothing gets left blank.

Every state tells you what happened and what comes next.

Your first conversation starts here.

Create an inbox to give your agent an address.

05

Put the pieces to work.

The same components, assembled into a complete interaction.

From request to inboxInteractive demo
import { MailAgents } from "mailagents";
 
const client = new MailAgents({ apiKey });
 
const inbox = await client.inboxes.create({
  name: "research-agent",
});
 
console.log(inbox.address);
Live inbox / demo

This is where replies land.

Run the request to create a demo inbox.

API preview. Email is simulated locally.

A request. An inbox. A conversation.

Keyboard-accessible tabs, copy feedback, loading states, and an inspectable result. This is the same component used on the homepage.

Run the request, simulate an incoming email, then reply as an agent.

Both dark and light themes are supported. Motion respects your system’s reduced-motion preference.