Skip to content
@emailens

emailens

Email QA SaaS: audit and preview how HTML, react.email, mjml and maizzle emails render across 21 clients. Web app, REST API, MCP server, GitHub Action, and CLI
Emailens

The rendering linter for email

Write once. Know how it behaves across 21 email clients.

npm engine tests npm cli npm mcp GitHub Action license


Web App · Documentation · State of Email CSS Report


Your email looks perfect in Apple Mail. Gmail strips half the CSS. Outlook renders it in Microsoft Word.
Across 298 CSS and HTML features tracked, only 6 are fully supported across all 21 email clients.
Emailens catches the other 292 before your users do: in the engine, in your terminal, in CI, and in AI coding agents.

emailens terminal lint output

Frameworks: React Email  ·  MJML  ·  Maizzle  ·  Tailwind CSS  ·  Raw HTML
Clients: Gmail  ·  Outlook  ·  Apple Mail  ·  Yahoo Mail  ·  Thunderbird  ·  HEY  ·  Superhuman  ·  Samsung  ·  Proton


🛠️ Developer Ecosystem

Package Status Use It For Quick Start
@emailens/engine v0.12.3 (npm) Core email compatibility & CSS scoring (298 features, 21 clients) npm install @emailens/engine
@emailens/cli v0.6.0 (npm) Terminal linting & automated CI/CD exit codes npx @emailens/cli lint email.html
@emailens/mcp v0.8.0 (npm) Email QA in Claude Code, Cursor, and AI agents claude mcp add emailens -- npx -y @emailens/mcp
emailens/action v1 (Action) Pull request quality gate in GitHub Actions uses: emailens/action@v1
emailens/vscode In Development Editor linting & side-by-side Outlook preview Coming soon to Marketplace

⚡ 1. The Core Engine (@emailens/engine)

The open-source core powers all Emailens tooling. It parses HTML, simulates client quirks, transforms CSS per client, and evaluates 298 rules with 1,288 automated tests.

npm install @emailens/engine
import { auditEmail } from "@emailens/engine";

const report = await auditEmail(htmlSource, {
  clients: ["gmail-web", "outlook-windows", "apple-mail"],
});

console.log(report.overallCompatibility); // 0-100 worst-client score
console.log(report.compatibility);        // per-client scores & issues
console.log(report.spam);                 // heuristic spam flags
console.log(report.accessibility);        // WCAG contrast & alt checks

💻 2. Terminal Linting (@emailens/cli)

Analyze files locally or fail CI pipelines on breaking markup:

# Analyze a single email
npx @emailens/cli analyze email.html

# Lint an entire template directory with a minimum score threshold
npx @emailens/cli lint ./emails --threshold 80

🤖 3. AI Coding Workflow (@emailens/mcp)

AI models write great code, but routinely generate email HTML that fails in Outlook, strips styles in Gmail, and breaks dark mode.

Connect Emailens to Claude Code or Cursor so your agent can lint, audit, and self-repair emails directly:

claude mcp add emailens -- npx -y @emailens/mcp

Included tools: preview_email, analyze_email, audit_email, fix_email, diff_emails, check_deliverability, list_clients.


🚀 4. GitHub Actions (emailens/action)

Block pull requests that introduce email regressions:

- uses: emailens/action@v1
  with:
    pattern: "emails/**/*.html"
    threshold: "75"

☁️ Hosted QA SaaS (emailens.dev)

While the core tools run 100% offline, emailens.dev provides hosted infrastructure for teams:

  • Real Browser Screenshots: High-fidelity captures across 21 real clients in light and dark mode.
  • Client Share Links: Share preview audits with stakeholders without requiring an account.
  • Visual Diff Engine: Pixel-level regression comparisons between email revisions.
  • Pre-Send Delivery Gate: REST API and webhook blocking deliverability and spam issues before launch.
  • Self-Healing AI Builder: Describes and compiles templates, automatically running self-repair loops until output passes 90+ on every client.

Made with care for developers who hate broken inboxes.
emailens.dev

Popular repositories Loading

  1. engine engine Public

    The rendering linter for email, in your terminal and CI. HTML, react.email, mjml and maizzle checked against 255 CSS and HTML features across 21 clients, with file:line positions and exit codes. Of…

    TypeScript 14 2

  2. cli cli Public

    The rendering linter for email, in your terminal and CI. HTML, react.email, mjml and maizzle checked against 255 CSS and HTML features across 21 clients, with file:line positions and exit codes for…

    TypeScript 12 1

  3. mcp mcp Public

    MCP server for email compatibility analysis: preview, audit, fix, diff, and check deliverability across 21 email clients.

    TypeScript 7 1

  4. action action Public

    GitHub Action that fails the build when an email regresses. Checks HTML, react.email, mjml and maizzle across 21 clients against a per-client score threshold, via the emailens.dev API.

    5

  5. vscode vscode Public

    See which email clients your HTML breaks in, while you write it. 298 CSS and HTML features across 21 clients, with a per-client preview and Quick Fixes. Offline, in VS Code.

    TypeScript 1

  6. .github .github Public

Repositories

Showing 6 of 6 repositories

Top languages

Loading…

Most used topics

Loading…