HTN 2025, making your clipboard a supertool
Tango is an AI-powered macOS assistant that enhances your clipboard functionality. It can read and modify text, create memes, remove image backgrounds, and remember your preferences using persistent memory. Powered by LLMs, Tango provides a seamless experience that Siri could have been to help you with everyday tasks.
Check out the demo videos: https://youtu.be/sK-WvZZubcc
The following environment variables are required:
GROQ_API_KEY: Your Groq API key (required if using Groq provider)GEMINI_API_KEY: Your Google Gemini API key (required if using Gemini provider)MODEL_PROVIDER: Choose the AI provider (groqorgemini, defaults togroq)ENABLE_MEMORY: Enable memory functionality (trueorfalse, defaults tofalse)
Memory functionality is disabled by default for faster, simpler operation. You can enable it if you need persistent memory across sessions:
# Disable memory (default - faster and simpler)
export ENABLE_MEMORY=false
# or simply omit the variable
# Enable memory (slower startup, but remembers interactions)
export ENABLE_MEMORY=trueWhen memory is disabled:
- Faster startup time
- No ChromaDB dependencies
- Simpler prompts focused on clipboard operations
- Actions limited to: copy text, make memes, short replies
When memory is enabled:
- Full memory search and save capabilities
- Remembers user preferences and past interactions
- Additional actions: search memory, save to memory
You can switch between different AI providers by setting the MODEL_PROVIDER environment variable:
# Use Groq (default)
export MODEL_PROVIDER=groq
export GROQ_API_KEY=your_groq_api_key
# Use Google Gemini
export MODEL_PROVIDER=gemini
export GEMINI_API_KEY=your_gemini_api_key- Install dependencies:
pip install -r app/requirements.txt- Set up your environment variables in a
.envfile or export them directly - Run the application:
cd app
python main.py- Groq:
llama-3.3-70b-versatile(default Groq model) - Gemini:
gemini-2.5-flash-lite(optimized for cost efficiency and low latency)
When using Gemini as the provider, the application automatically enhances responses with real-time web search when queries contain keywords like:
- "current", "recent", "latest", "news", "today", "now", "update"
This provides access to the most current information beyond the model's training cutoff date.
The application will automatically fall back to Groq if Gemini initialization fails.