Multi-provider AI chat interface supporting 9+ LLM providers (Anthropic, OpenAI, xAI, Cohere, Mistral, Perplexity, Gemini, HuggingFace, Groq)
Project description
🎨 LLM Slate
Web interface for chatting with 9+ AI providers in one place.
Chat with Claude, GPT-4, Grok, Gemini, and more from a single interface. Generate images with DALL-E or Aurora. Analyze images with Claude Vision or GPT-4 Vision. All with your own API keys, running locally.
Features
- Chat with 9 AI providers: Anthropic (Claude), OpenAI (GPT), xAI (Grok), Cohere, Mistral, Perplexity, Gemini, HuggingFace, Groq
- Image generation (DALL-E 3, Aurora)
- Image analysis (Claude Vision, GPT-4 Vision)
- Conversation history saved locally
- Password protected
- Clean, minimal interface
Quick Start
Installation
pip install llm-slate
Set Up API Keys
Create a .env file with your API keys:
# Add keys for the providers you want to use
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
XAI_API_KEY=your_key_here
COHERE_API_KEY=your_key_here
MISTRAL_API_KEY=your_key_here
PERPLEXITY_API_KEY=your_key_here
GEMINI_API_KEY=your_key_here
HUGGINGFACE_API_KEY=your_key_here
GROQ_API_KEY=your_key_here
# Flask secret (generate with: python -c "import secrets; print(secrets.token_hex(32))")
FLASK_SECRET_KEY=your_secret_key_here
# Optional: Custom password (default: "friendship")
STUDIO_PASSWORD=your_password_here
# Optional: Custom port (default: 5413)
STUDIO_PORT=5413
Run
llm-slate
Then open http://localhost:5413 in your browser.
Usage
Chat
- Select a provider from the dropdown
- Choose a model
- Start chatting
Your conversation history is saved and persists across sessions.
Image Generation
- Go to the "Images" tab
- Select provider (OpenAI or xAI)
- Enter your prompt
- Click generate
Image Analysis
- Go to the "Vision" tab
- Upload an image
- Select provider (Anthropic or OpenAI)
- Ask questions about the image
Configuration
Environment Variables
STUDIO_PORT- Port to run on (default: 5413)STUDIO_PASSWORD- Login password (default: "friendship")STUDIO_BASE_PATH- Base path for reverse proxy (e.g.,/studio)FLASK_SECRET_KEY- Flask session secret (required)
Provider API Keys
Only include keys for providers you want to use. Multi-Studio detects which providers are available based on your configured API keys.
Development
From Source
git clone https://github.com/lukeslp/llm-slate.git
cd llm-slate
pip install -e .
Project Structure
llm-slate/
├── app.py # Main Flask application
├── config.py # Configuration management
├── database.py # Conversation storage
├── cache_manager.py # Response caching
├── providers/ # Provider adapters
├── core/ # Core utilities
├── templates/ # HTML templates
├── static/ # CSS/JS assets
└── blueprints/ # Flask blueprints
Security
- All API keys are read from environment variables (never hardcoded)
- Conversations stored locally in SQLite database
- Password required to access interface
- No data sent to external services except your chosen AI providers
Supported Providers
| Provider | Chat | Images | Vision |
|---|---|---|---|
| Anthropic (Claude) | ✅ | ❌ | ✅ |
| OpenAI (GPT) | ✅ | ✅ (DALL-E) | ✅ |
| xAI (Grok) | ✅ | ✅ (Aurora) | ❌ |
| Cohere | ✅ | ❌ | ❌ |
| Mistral | ✅ | ❌ | ❌ |
| Perplexity | ✅ | ❌ | ❌ |
| Gemini | ✅ | ❌ | ❌ |
| HuggingFace | ✅ | ❌ | ❌ |
| Groq | ✅ | ❌ | ❌ |
Requirements
- Python 3.10+
- API keys for at least one provider
- Flask 3.0+
Author
Luke Steuber
- Website: lukesteuber.com
- Bluesky: @lukesteuber.com
- Email: luke@lukesteuber.com
- Support: Tip Jar
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llm_slate-1.0.0.tar.gz.
File metadata
- Download URL: llm_slate-1.0.0.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33be5a2cdba6f606fb9472bb1e9383fc574bbbf429b95c10cd81c456ec864ed9
|
|
| MD5 |
ffac1158f2f17233b4e861233cebb444
|
|
| BLAKE2b-256 |
bdbc8a637b22cb45475cf162956f19a62dadca4171ad8e31687df85c76468426
|
File details
Details for the file llm_slate-1.0.0-py3-none-any.whl.
File metadata
- Download URL: llm_slate-1.0.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
168458a53f68489a9540ed5623b0b4f4049b9daea02761ac6fd6890fb5928e81
|
|
| MD5 |
0bd7dd34fb96edcc1b3fd73dc7af3e03
|
|
| BLAKE2b-256 |
1304c79a3fc4692f95f6b083f7c5e8d2164a1b2d0ed03e5850d04995e9c7d4d5
|