Skip to main content

🎨 LLM Slate

Web interface for chatting with 9+ AI providers in one place.

License: MIT Python Flask

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

  1. Select a provider from the dropdown
  2. Choose a model
  3. Start chatting

Your conversation history is saved and persists across sessions.

Image Generation

  1. Go to the "Images" tab
  2. Select provider (OpenAI or xAI)
  3. Enter your prompt
  4. Click generate

Image Analysis

  1. Go to the "Vision" tab
  2. Upload an image
  3. Select provider (Anthropic or OpenAI)
  4. 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

License

MIT License - see LICENSE for details.

Release files for llm-slate 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llm-slate 1.0.0
File Size Uploaded
llm_slate-1.0.0.tar.gz 30.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for llm-slate 1.0.0
File Interpreter ABI Platform
llm_slate-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size:49.0 kB

Release files / llm_slate-1.0.0.tar.gz

Download URL llm_slate-1.0.0.tar.gz
Size 30.9 kB
Tags Source
SHA-256 checksum
How to use checksums
33be5a2cdba6f606fb9472bb1e9383fc574bbbf429b95c10cd81c456ec864ed9
BLAKE2b-256 checksum
How to use checksums
bdbc8a637b22cb45475cf162956f19a62dadca4171ad8e31687df85c76468426
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / llm_slate-1.0.0-py3-none-any.whl

Download URL llm_slate-1.0.0-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
168458a53f68489a9540ed5623b0b4f4049b9daea02761ac6fd6890fb5928e81
BLAKE2b-256 checksum
How to use checksums
1304c79a3fc4692f95f6b083f7c5e8d2164a1b2d0ed03e5850d04995e9c7d4d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page