- 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.
Create a local Tori profile. It is not a mail account.
Connect unlimited external accounts; each brings its own identities.
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?
Now booking new projects
We reply within one working day.