The ecosystem

Every repository that matters

The honest map of the Pimalaya organisation: what you can install today, what is brewing, and what has been retired. Statuses are curated by hand; when in doubt, the repository's README is the truth.

Roadmap

Mail is now the most complete domain of the ecosystem, especially with Himalaya v2. The focus therefore moves to what surrounds it: sync, watch, then contacts, then calendar.

Sync comes first, as a consolidation: everything sync-related converges into one stack, the Neverest CLI on top of io-pimdir, which holds both the pimdir store and its sync engine. Watch joins the same movement with Carillon, formerly mirador.

Once sync and watch settle, the contacts domain gets the same treatment around Cardamum, then the calendar domain follows around Calendula.

Libraries

The foundation: every app is a thin frontend over these Rust crates. A curated selection, as the organisation holds more (per-store coroutines, toolkit crates, experiments). The io- prefix marks I/O-free, sans-I/O coroutine libraries: you bring the sockets, they bring the protocol.

NameDomainKindStatusWhat it does
ical-rsCalendarLibraryearlyiCalendar parser, validator, editor, merger and builder, with a byte-faithful round-trip.
io-gcalCalendarLibraryearlyI/O-free Google Calendar REST API client.
io-gmailEmailLibraryearlyI/O-free Gmail REST API client.
io-gpeopleContactsLibraryearlyI/O-free Google People REST API client. Formerly io-people.
io-httpTransportLibrarystableI/O-free HTTP client core the other crates build on.
io-imapEmailLibrarystableI/O-free IMAP client.
io-jmapEmailLibraryearlyI/O-free JMAP client.
io-m2dirEmailLibraryearlyI/O-free m2dir store.
io-maildirEmailLibraryearlyI/O-free Maildir store.
io-managesieveEmailLibraryearlyI/O-free ManageSieve client, to manage server-side mail filters.
io-msgraphEmail + ContactsLibraryearlyI/O-free Microsoft Graph client (mail and contacts).
io-oauthAuthLibrarystableI/O-free OAuth 2.0 flows: authorization code, device, dynamic registration.
io-pim-discoveryPlumbingLibrary + CLIearlyDiscover a provider’s IMAP, SMTP, CardDAV and CalDAV services from an email address. The CLI ships as an off-by-default cargo feature.
io-pimdirStorageLibraryearlyThe pimdir store and its sync engine: one local store for mail, contacts and calendars.
io-proxyTransportLibraryearlyI/O-free SOCKS5 and HTTP CONNECT proxy tunnels.
io-saslAuthLibraryearlyI/O-free SASL client mechanisms.
io-smtpEmailLibrarystableI/O-free SMTP client.
io-webdavContacts + CalendarLibraryearlyI/O-free CardDAV and CalDAV clients over WebDAV.
mmlEmailLibrary + CLIstableCompose MIME messages as human-editable markup (MML), Emacs-style.
streamTransportLibrarystableStandard I/O connectors that drive the I/O-free crates.
vcard-rsContactsLibraryearlyvCard parser, validator, editor, merger and builder, with a byte-faithful round-trip.

Apps

End-user tools. Anything marked in development has no release yet and is not advertised on the home page.

NameDomainKindStatusWhat it does
calendulaCalendarCLIearlyManage calendars over CalDAV.
cardamumContactsCLIearlyManage contacts over CardDAV, Google, Microsoft and JMAP address books.
carillonPlumbingCLIearlyWatch mail, contact and calendar collections for changes. Formerly mirador.
comodoroTimeCLIstableManage Pomodoro-style timers from the command line.
himalayaEmailCLIstableManage emails from the command line, over IMAP, SMTP, JMAP, Maildir, Gmail and Microsoft.
himalaya-tuiEmailTUIin developmentA full-screen terminal UI for reading and writing emails.
himalaya-vimEmailVim pluginstableManage emails from Vim, on top of the Himalaya CLI.
m2mEmailCLIin developmentConvert mail stores between Maildir, Maildir++ and m2dir.
neverestEmailCLIbetaSynchronize and back up emails between two backends.
ortiePlumbingCLIstableManage OAuth 2.0 tokens for your accounts, with a provider wizard.
pimalaya-androidEmail + Contacts + CalendarAndroid appin developmentMail, contacts and calendars in one Android app, over one local store and one account list. Contacts are the mature domain; mail and calendar are read-only for now.
pimalaya-linuxEmail + ContactsDesktop appin developmentA native GTK4 and libAdwaita desktop app for mail and contacts, sharing its configuration file with the command-line tools.
sirupPlumbingCLIearlySpawn pre-authenticated IMAP and SMTP sessions, exposed over Unix sockets.
tcalCalendarCLIearlyEdit iCalendar events as friendly TOML.
tcardContactsCLIearlyEdit vCards as friendly TOML.

From the community

Front-ends and integrations built by other people on top of the tools and the crates, none of them maintained by the organisation. The list is curated by hand and certainly incomplete: if you built something, open a pull request on the websites repository and it lands here.

NameAuthorKindWhat it does
himalaya-emacsdantecatalfamoEmacs pluginBrowse, read, write and organize emails from Emacs, on top of the Himalaya CLI. Published on MELPA.
mailbrusantonoDesktop and web appA keyboard-driven, plain-text-first email client built on the io-email and io-maildir crates, shipped as a Tauri app and a progressive web app.
himalaya.nvimknownasnaffyNeovim pluginA native Neovim interface to the Himalaya CLI, written in Lua on top of nui.nvim.
himalaya.nvimJostBrandNeovim pluginA Neovim port of himalaya-vim, with folder pickers backed by fzf or Telescope.
himalaya-nvimxav-ieNeovim pluginA heavily modified Lua fork of himalaya-vim, with threaded views, structured search, HTML rendering and flag management.
himalaya-wraprobertmetaEmacs pluginAn Emacs front-end to the Himalaya CLI designed for Emacspeak users, working straight against the remote server with no local maildir.
himalayajnsRaycast extensionRead and manage the emails of your default account from the Raycast launcher on macOS.
dfzfparisniSway and i3 toolkitA fuzzy-finder desktop toolkit whose dfzf-mail viewer runs on the Himalaya CLI and mml.
himalaya SKILLopenclawAgent skillTeaches the OpenClaw coding agent to manage emails through the Himalaya CLI.

Frozen and retired

Kept public for history and existing users, but receiving no new features. Frozen aggregators are superseded by protocol-direct clients; deprecated crates should not be depended on.

NameDomainKindStatusWhat it does
io-addressbookContactsLibraryfrozenMulti-backend contacts aggregator; superseded by protocol-direct clients.
io-calendarCalendarLibraryfrozenMulti-backend calendar aggregator; superseded by protocol-direct clients.
io-emailEmailLibraryfrozenMulti-backend email aggregator; superseded by protocol-direct clients.
io-fsStorageLibrarydeprecatedShared filesystem coroutines; each store now defines its own.
io-keyringSystemLibrarydeprecatedKeyring coroutines; tools now document third-party keyring CLIs instead.
io-processSystemLibrarydeprecatedProcess-spawning coroutines.
io-replicaStorageLibrarydeprecatedSync engine, now folded into io-pimdir.
mimosaSystemCLIdeprecatedSecret-management CLI, retired with io-keyring.

Experiments

Running on the side, each experiment validates one idea before it is allowed to shape the roadmap.

Carillon explores watching as a service: a server holds the IMAP connections, waits for changes, and turns them into notifications, so no client has to keep a connection (and a battery) alive. It validated the watch flow end to end against real providers; that flow is what the roadmap folds into the watch tooling. Its paid, hosted side is paused for now.

pimalaya-android validates that the I/O-free Rust libraries can power a real mobile app: the protocol logic runs in Rust, compiled for Android, while the platform side (TLS, storage, the system contacts) stays native. It started as a contacts app and became the whole thing, mail, contacts and calendars behind one store and one account list, which is the second point it validates: the three domains belong in one app, not three. Contacts is where it is mature; mail and calendar read today and will write later. A blog post about the approach is coming soon.

pimalaya-linux carries the same idea to a third ecosystem: a native GTK4 and libAdwaita desktop app for mail and contacts, built on the very same Rust cores, to prove the libraries fit any UI (terminal, mobile or desktop) without rewriting the protocols. It reads the same configuration file as the command-line tools, so one account definition serves all of them. Only the application shell exists so far.

See all repositories on GitHub