Yugo - a high-level and easy to use IMAP client

I recently had a project that needed to be able to poll emails from an IMAP server, and was disappointed with the lack of a good IMAP library. All of the existing libraries were very low level and required a lot of knowledge of the underlying protocol to understand how to use them, so I was inspired to write my own.

Introducing Yugo (GitHub, docs) - a friendly IMAP client library for humans.


  • Supports the IMAP IDLE extension, to receive realtime push notifications from the server. In case the server doesn’t support the IDLE extension, Yugo will gracefully fall back to using normal polling.
  • Embraces OTP patterns - processes can “subscribe” to a connected IMAP client to receive messages whenever a new email arrives.
  • Filters enable you to narrow down emails and only be notified about the ones you care about. Yugo is smart about running these filters, and will only fetch the minimum amount of data needed from the server.
  • Doesn’t require intimate knowledge of RFC9051 to use :wink:

Please feel free to take a look and give me any feedback you have!