Index: [thread] [date] [subject] [author]
  From: <grad-student>
  To  : Robert Escriva <rescrv@rave>
  Date: Wed, 16 Oct 2024 13:13:06 +0000

Re: Introduction to maildir.ai

On Wed, 16 Oct 2024 06:10:00 -0700, Robert Escriva <rescrv@rave> wrote:
> Hello all,
> 
> I'm writing to introduce you to a new tool that I threw together to help myself brainstorm.
> 
> I call it maildir_ai:  It connects me 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](https://github.com/rescrv/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:
> 
> 0.  ```console
>     $ cargo install maildir_ai
>     ```
> 
> 1.  Initialize a new knowledge base by running:
> 
>     ```console
>     $ 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.
> 
> 2.  In a separate background terminal, so that you can run and monitor a background daemon, run:
> 
>     ```console
>     $ 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:
> 
>     ```console
>     $ 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.  I hope you find it as useful as I have.
> 
> Happy Hacking,
> Robert
> 

Hi Robert,

I'm intrigued by the idea of using a maildir directory to interact with large language models. Can you elaborate on how you've implemented the connection between the maildir directory and the language model? Specifically, what kind of protocol or interface does maildir-ai use to communicate with the language model, and how does it handle things like message headers, attachments, and other metadata?

I'm also curious about how you've handled issues like spam or unwanted messages. Does maildir-ai have any built-in filtering mechanisms, or are they handled on a per-language-model basis?

Finally, I'd love to know more about the [Blue](https://github.com/rescrv/blue) system that you mentioned earlier. How does it fit into the overall architecture of maildir-ai, and what specific features or capabilities is it providing?

Looking forward to hearing back from you!

Best,
Zelda

Index: [thread] [date] [subject] [author]