Skip to content

wess/keyline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keyline

A privacy-first desktop email client with AI built in. Your inbox stays on your machine.

Keyline is a fast, native desktop email client for macOS, Linux, and Windows. It speaks plain IMAP/SMTP, so your data lives where it always has — your provider and your local disk. The intelligence layer (classification, summaries, smart replies, an "Ask Keyline" agent that can search and act on your inbox) runs against either a model on your machine or your own Claude API key. No cloud sync, no telemetry, no account to create.

Why Keyline

  • You own your data. No proprietary backend. Connect any IMAP account — iCloud, Fastmail, your own server, Gmail/Outlook via OAuth.
  • AI that respects you. Pick a local model (runs entirely on your machine, no internet needed) or bring your own Claude key. Both share the same tool surface, so the agent works the same either way.
  • Smart without being noisy. Heuristic classifier sorts mail into Important / Conversation / Notification / CI/CD / Tickets / Newsletter / Promo / Bulk. Tracker pixels and remote analytics are stripped by default. New-mail notifications digest non-VIPs.
  • Triage that scales. Smart rules (write them in plain English; the AI compiles to a structured rule), smart folders, snooze, send-later with undo, calendar RSVP, blocked senders, VIPs.
  • Fast, native, small. Bun runs the host process; a system webview renders the UI. Single ~60 MB binary, no Electron in sight.

Built-in features

Search FTS5 across every stored message
Smart categories Heuristic classifier with VIP override
Smart rules Natural-language → compiled rule schema, with backfill
Smart folders Rule-driven views in the sidebar
Compose Rich-text editor, signatures, AI rewrite/tone/grammar, smart replies
Calendar invites Inline RSVP — sends a METHOD:REPLY to the organizer
Send later Schedule per-draft, plus 8 s undo on every send
Snooze / VIP / Block Quick presets, always-notify VIPs, blocked senders hidden
Unsubscribe One-click via List-Unsubscribe-Post when supported
Auto-mark read Mail.app-style 1.5 s dwell
Tracker stripping 1×1 pixels, common analytics domains, remote images blocked by default
Ask Keyline Right-side agent panel with full tool access (search, summarize, draft, snooze, block, etc.)
Layouts Column, Classic, Compact — all panes resizable & collapsible
Keyboard-first Mail.app + Gmail bindings (j/k, c, r, e, #, s, u, /, ?, ⌘;, ⌘\)
Offline-aware IDLE-based real-time sync, CONDSTORE/QRESYNC for incremental, banner when offline

Quick start

Requires Bun ≥ 1.1 and the Butter framework cloned next to this repo at ../butter.

bun install
bun run doctor   # verify your toolchain
bun run dev      # opens the app

First run: open Settings → Accounts → Add account, paste your email and password (or click Sign in with Google / Microsoft for OAuth). For most providers Keyline auto-detects IMAP/SMTP via Mozilla's autoconfig service.

To enable the AI features, open Settings → AI:

  • Local — download Llama 3.2 3B or Qwen 2.5 7B once; it runs offline forever after.
  • Claude — paste an API key. Stored in your OS keychain, never on disk.

Documentation

Full index in docs/.

Development

bun install
bun run dev          # start the desktop app
bun run test         # run the suite
bunx tsc --noEmit    # type-check

The project follows a strict file convention: lowercase, no -/_/spaces, subfolder structure (src/foo/{index.ts, profile.ts} not src/foo-profile.ts), functional style, Bun never npm. See docs/contributing.md.

License

Apache 2.0. See LICENSE.

About

AI powered better email client

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages