Offline-Capable Email Agents with Jan

Use Jan's open-source desktop AI with MultiMail to build email agents that run locally — with an extension system for email workflows and human oversight.


Jan is an open-source desktop application for running AI models locally with a ChatGPT-like interface, extensions support, and offline capability. MultiMail provides the email infrastructure layer that enables Jan-based agents to send, receive, and manage email while keeping model inference private.

Jan's extension system can integrate MultiMail for email capabilities, creating a hybrid architecture where AI reasoning happens offline and email transport happens through MultiMail's cloud API. The default gated_send mode ensures every email drafted by a local model requires human approval before delivery.

Connect Jan to MultiMail through its OpenAI-compatible API endpoint or by building a custom Jan extension that calls the MultiMail REST API. Both approaches give your local AI email capabilities with human oversight built in.

Built for Jan developers

Offline-First with Cloud Email

Jan runs completely offline for model inference. MultiMail adds cloud email capabilities only when needed, creating a hybrid architecture that balances privacy with functionality.

Extension System Integration

Jan's plugin and extension system can wrap MultiMail's API calls into reusable email tools. Build once and your local AI gains email capabilities through a clean extension interface.

Safety Net for Local Models

Local models may produce inconsistent email quality. MultiMail's oversight modes ensure every outgoing email is reviewed before delivery, catching issues that offline models are more prone to.

Open Source Aligned

Jan is fully open source, and MultiMail provides a transparent API with clear documentation. Both tools align with the open-source philosophy of user control and transparency.

Graduated Trust via Oversight Modes

Start with gated_all (human approves every action) when testing new models in Jan, then progress to gated_send or monitored as you validate the model's email quality.


Try it with your agent

No code, no dashboard. Paste this to your AI agent — it connects MultiMail, creates an inbox, and builds the flow for you.

1. Read https://multimail.dev/llms.txt and use only the MultiMail MCP server instructions you find there. Connect the MultiMail MCP server, create a free inbox, and set up a verified sending domain before attempting any send. 2. Wire MultiMail into Jan through Jan’s MCP host: enable experimental features in General > Advanced, open Settings > MCP Servers, add the MultiMail MCP server, confirm it is active, choose a model with tool calling support, and enable the MultiMail tools for this chat. 3. Give this Jan agent only these MultiMail capabilities: check the inbox, compose or draft replies, and send or schedule email. Before using any tool, inspect the available MultiMail MCP tools and map those capabilities to the real tool names exposed by the server. 4. Send one test email from the verified sender to an address I provide. Use the free inbox to confirm the test path works, then summarize what was received and what reply you would draft. 5. Run in gated_send oversight mode for all outbound email. Never send or schedule without first showing me the recipient, subject, body, and intended action, then waiting for my explicit approval.

Step by step

1

Create a MultiMail Account and API Key

Sign up at multimail.dev, create a mailbox, and generate an API key from your dashboard. Your key will start with mm_live_.

2

Install Jan and Download a Model

Download Jan from jan.ai. Use the built-in model hub to download a model with function calling support, such as Llama 3.3.

3

Enable Jan's Local Server

Start Jan's local API server from the settings panel. By default, it runs on localhost:1337 with OpenAI-compatible endpoints.

4

Install Python Dependencies and Build the Agent

Install the OpenAI SDK pointed at Jan's local server and build the agent loop with MultiMail tools.

5

Approve Pending Emails

Review and approve pending emails in the MultiMail dashboard. This is especially important with local models that may produce lower-quality outputs.


Common questions

Does Jan support tool calling for email agents?
Jan provides an OpenAI-compatible API that supports function calling with compatible models. Models like Llama 3.3 and Mistral support tool calling through Jan's local server. Check Jan's model hub for models with function calling support.
Can I use Jan completely offline with MultiMail?
Model inference runs offline in Jan, but email delivery requires an internet connection to reach MultiMail's API. You can draft and queue emails while offline and have them sent when connectivity is restored, though this requires custom queuing logic in your agent.
How does Jan's extension system work with MultiMail?
Jan supports extensions that add functionality to its chat interface. You can build a MultiMail extension that registers email tools and handles API calls, making email capabilities available directly within Jan's UI without external scripts.
Why is oversight important for Jan-based email agents?
Local models running in Jan may have weaker instruction following than cloud models. They can produce inappropriate tone, factual errors, or formatting issues in emails. MultiMail's gated_send mode catches these problems before emails reach recipients.
Is there rate limiting on the MultiMail API?
Rate limits depend on your plan tier. The Starter (free) plan allows 200 emails per month, while paid plans range from 5,000 to 150,000. Combined with Jan's zero inference cost, the free tier is ideal for getting started.

Explore more

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a hosted MCP server. Formally verified in Lean 4.