Setting up the AI Rewrite Plugin
Matcha includes an ai_rewrite.lua plugin that allows you to rewrite email drafts using an AI model. By default, it works with any OpenAI-compatible API.
To get started, install the plugin:
matcha install https://raw.githubusercontent.com/floatpane/matcha/master/plugins/ai_rewrite.lua
You can then edit ~/.config/matcha/plugins/ai_rewrite.lua to configure it for your preferred AI provider (matcha config ai_rewrite). Since the plugin relies on the OpenAI chat completions format, it seamlessly integrates with OpenAI, local providers like Ollama, and other services that offer an OpenAI-compatible endpoint (like Gemini). For providers without native OpenAI compatibility (like Claude), you can use a local proxy like LiteLLM.
Here are the configuration snippets for various popular AI providers. Update the variables at the top of your ai_rewrite.lua file.
Ollama (Local)
Ollama provides a local, private OpenAI-compatible endpoint out of the box. Make sure you have pulled a model first (e.g., ollama run llama3).
-- Configuration for Ollama
local API_URL = "http://localhost:11434/v1/chat/completions"
local API_KEY = "" -- Not needed for Ollama
local MODEL = "llama3" -- Replace with your downloaded model name
OpenAI
To use OpenAI's models, you will need an API key from your OpenAI platform dashboard.
-- Configuration for OpenAI
local API_URL = "https://api.openai.com/v1/chat/completions"
local API_KEY = "sk-proj-YOUR_OPENAI_API_KEY"
local MODEL = "gpt-4o-mini" -- Or "gpt-4o", "gpt-3.5-turbo", etc.
Google Gemini
Google Gemini recently introduced an OpenAI-compatible endpoint. You can use your Gemini API Key directly.
-- Configuration for Google Gemini
local API_URL = "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions"
local API_KEY = "YOUR_GEMINI_API_KEY"
local MODEL = "gemini-1.5-flash" -- Or "gemini-1.5-pro"
Anthropic Claude
Anthropic's API does not natively use the OpenAI format. However, you can easily use Claude by running a lightweight local proxy like LiteLLM, which translates OpenAI-formatted requests into Anthropic's format.
- Install and start LiteLLM with your Anthropic key:
pip install litellmlitellm --model claude-3-5-sonnet-20241022 --api_key YOUR_ANTHROPIC_API_KEY
- LiteLLM will start a local server, usually on port
4000.
Configure the plugin to point to your LiteLLM instance:
-- Configuration for Claude (via LiteLLM proxy)
local API_URL = "http://localhost:4000/v1/chat/completions"
local API_KEY = "" -- Handled by LiteLLM
local MODEL = "claude-3-5-sonnet-20241022" -- Must match the LiteLLM model
Usage
Once configured:
- Restart Matcha to load the plugin.
- Open the composer.
- Draft your email.
- Press
ctrl+rto trigger the AI Rewrite prompt. - Provide an instruction (e.g., "Make it more formal", "Fix typos", "Shorten it").
- The AI will rewrite your draft and replace the body content automatically.