4 releases (breaking)

0.4.0 Oct 20, 2024
0.3.0 Oct 20, 2024
0.2.0 Oct 18, 2024
0.1.0 Oct 18, 2024

#72 in Email

Download history 279/week @ 2024-10-15 37/week @ 2024-10-22

316 downloads per month

Apache-2.0

27KB
560 lines

maildir-ai

A way to live in the past of the future.

Seeing it in Action

Visit the non-interactive demo of maildir-ai in action.

What is maildir-ai?

maildir.ai connects to large language models via an email interface. Specifically, maildir_ai watches a maildir directory for new messages, and then sends them to a language model for processing. The language model then generates a response, which maildir_ai "sends" back to the sender.

I've been using it to help me brainstorm ideas for my research. Specifically, I've been using it to help myself solidify my thoughts on Blue, a new system I've been working on in my spare time.

The interface to maildir-ai is not complex. If you have ollama running, set the OLLAMA_HOST variable to point to it. Then:

  1. $ cargo install maildir_ai
    
  2. Initialize a new knowledge base by running:

    $ maildir-ai init ~/knowledge-base "Your Name Here"
    

    This will do two things: It will initialize a standard maildir at ~/knowledge-base (you can change this to anything you like), and it will configure a .muttrc within knowledge-base that is a starting point for interacting with the maildir-ai as "Your Name Here". Obviously, if that's not your name you should change it.

  3. In a separate background terminal, so that you can run and monitor a background daemon, run:

    $ maildir-ai maintain ~/knowledge-base
    

    This will watch the maildir for new messages in Sent and process them. It will send the email as the prompt verbatim to the language model, and then save the response in INBOX. This sounds backwards, but the next step will explain why.

  4. In your main terminal, run:

    $ maildir-ai mail ~/knowledge-base
    

    This will open mutt, my favorite email client, with the maildir-ai knowledge base. It opens to INBOX, which is where the responses are saved. You can then compose new messages or reply to existing messages and they will be saved to Sent as if you really composed them in an email. No actual email is sent, it just gets saved to ~/knowledge-base/Sent/cur/. The maintain process watches this directory for new messages and processes them, moving the saved message back to the INBOX when it begins processing the message. This way, you can see the response to your prompt in the same thread as the prompt itself.

That's it. That's the basics of maildir-ai.

Dependencies

~12–24MB
~361K SLoC