Describe the feature
A first-class email client lets you find any message in seconds. Right now matcha can only filter what's loaded into the current folder view.
Ship a local full-text search index (SQLite FTS5 or Bleve) that:
- ingests every fetched message body + headers
- indexes per-account, per-folder
- supports prefix, phrase, and field-qualified queries (
from:alice subject:invoice)
- updates incrementally on IDLE notifications
- exposes a TUI search modal (
/) and a matcha search CLI command
Why this matters
Search is table stakes for any mail client; Mutt, aerc, neomutt, Thunderbird all have it. Without it the user has to fall back to grepping raw IMAP downloads.
Notes
- SQLite FTS5 is probably the cheapest path: zero deps, atomic writes, ~tens of MB for a heavy inbox.
- Index should live in
~/.cache/matcha/search.db so it can be rebuilt without losing config.
- Tokenizer needs to handle CJK / Cyrillic / accented Latin reasonably (FTS5 unicode61 tokenizer).
Describe the feature
A first-class email client lets you find any message in seconds. Right now matcha can only filter what's loaded into the current folder view.
Ship a local full-text search index (SQLite FTS5 or Bleve) that:
from:alice subject:invoice)/) and amatcha searchCLI commandWhy this matters
Search is table stakes for any mail client; Mutt, aerc, neomutt, Thunderbird all have it. Without it the user has to fall back to grepping raw IMAP downloads.
Notes
~/.cache/matcha/search.dbso it can be rebuilt without losing config.