Skip to content

Tori

All your mailboxes in one calm place, each keeping its own identity.

Status
Beta
Version
v0.2.0
Licence
AGPL-3.0
Runs on
React 19 and Vite

People who run their life or work across several mailboxes end up tab-switching between webmail interfaces that optimise for the provider's engagement, not for clearing the inbox.

What Tori does.

Reading

  • One unified inbox

    Connect Gmail, Outlook and any SMTP/IMAP account. Everything flows into one inbox, colour-coded per account.

  • Keyboard-first

    Triage, read, reply and move on without touching the mouse. Command palette included.

  • Quiet by design

    No promo tabs, no engagement chrome, no invented urgency. Dense where a mail client should be, calm everywhere else.

Accounts

  • Per-identity send-as

    Every connected account keeps its own name, address and signature. Replies go out from the right identity.

  • A client, never a provider

    Tori holds no mail of its own. You sign in with a Tori profile and connect the accounts you already have.

  • Guided account setup

    Auto-discovered settings for common providers; a few minutes to connect two or three accounts.

From profile to first reply.

  1. Create a local Tori profile. It is not a mail account.

  2. Connect unlimited external accounts; each brings its own identities.

  3. Read everything in one inbox, reply from the right identity, close the tab.

Tori is a multi-account mail workspace in the Thunderbird tradition: a client, not a provider. You sign in with a Tori profile, connect the accounts you already have, and read them all in one inbox. Each account keeps its own identity for sending.

It is in beta. The interaction model borrows from Thunderbird, Apple Mail and Linear; the aesthetic borrows from Japanese design, negative space, subtle elegance, restraint, with a single torii-red accent used sparingly.

Who it is for

People who process mail across a personal Gmail, a work Outlook and a custom-domain account, and want to triage all of it fast without the host webmail's noise. Power-leaning, often, but not exclusively.

Under the hood

A React single-page app over an Elysia API. A capability-based provider layer handles SMTP outbound through Nodemailer and IMAP inbound through ImapFlow, per connected account. Data lives in SQLite through Prisma: users, connected accounts, identities, drafts, templates, sent history, contacts and settings. Local Tori accounts use scrypt, and the session cookie is AES-256-GCM encrypted.

Want early access to Tori?

Join the waitlist

Now booking new projects

We reply within one working day.