No description
Find a file
2025-08-31 23:59:15 +05:30
.github/ISSUE_TEMPLATE issue templates, no code changes 2025-06-20 17:16:12 +01:00
e2e init 2025-06-13 14:14:24 +01:00
src feat: Add support for audio, video and document file types 2025-08-31 23:59:15 +05:30
static og 2025-06-19 20:06:48 +01:00
tmp feat: Preliminary support for kepler-ai-sdk 2025-08-30 20:52:03 +05:30
.env.example feat: Preliminary support for kepler-ai-sdk 2025-08-30 20:52:03 +05:30
.gitignore feat: Preliminary support for kepler-ai-sdk 2025-08-30 20:52:03 +05:30
.mcp.json feat: Complete migration to kepler-ai-sdk 2025-08-31 17:09:09 +05:30
.npmrc init 2025-06-13 14:14:24 +01:00
.prettierignore mobile stuff 2025-06-16 07:07:37 -05:00
.prettierrc api keys (#3) 2025-06-14 04:40:01 -07:00
bun.lock feat: Complete migration to kepler-ai-sdk 2025-08-31 17:09:09 +05:30
convex.json togglable sidebar 2025-06-16 07:01:15 -05:00
eslint.config.js add more icons 2025-06-18 11:05:28 +01:00
jsrepo.json enable/disable mutation 2025-06-14 09:28:12 -05:00
LICENSE Create LICENSE 2025-06-19 18:59:22 +01:00
package.json feat: Complete migration to kepler-ai-sdk 2025-08-31 17:09:09 +05:30
playwright.config.ts api keys (#3) 2025-06-14 04:40:01 -07:00
pnpm-lock.yaml Post Hackathon Stuff (#40) 2025-07-10 04:45:02 -07:00
README.md feat: Preliminary support for kepler-ai-sdk 2025-08-30 20:52:03 +05:30
svelte.config.js api keys (#3) 2025-06-14 04:40:01 -07:00
tsconfig.json Merge branch 'main' into model-list 2025-06-16 13:37:19 -05:00
vite.config.ts WIP feat: Enhance prompt button (#31) 2025-06-19 10:14:41 -07:00
vitest-setup-client.ts api keys (#3) 2025-06-14 04:40:01 -07:00

thom.chat

thom.chat

Open-source self-hostable T3 Chat.

SvelteKit TypeScript Tailwind Convex

License Stars Forks Issues


About

thom.chat is an open-source alternative/clone to T3 Chat, built for Theo's cloneathon.

It is self-hostable, by self-hosting your own app and https://www.convex.dev/ instance.

While thom.chat is a clone, the featureset is not identical to T3 Chat.

🎯 Key Features

🤖 AI & Models

  • Multiple AI Providers - OpenAI, Anthropic, Google Gemini, Mistral, Cohere, OpenRouter
  • 600+ AI Models across all providers
  • Bring Your Own API Keys - Users must provide their own API keys
  • No Usage Limits - Use any model without restrictions when you have the API key

💬 Chat Experience

  • Real-time streaming responses
  • Streaming on the server for interruption-free chats, even when reloading
  • Chat branching for exploring different conversation paths
  • Full-text search across your entire chat history
  • Privacy mode for secure screen sharing

📁 Rich Content

  • File uploads with image support
  • Web search integration for real-time information
  • Markdown rendering with syntax highlighting
  • Chat sharing with public links

Productivity

  • Cursor-like rules for consistent AI behavior
  • Keyboard shortcuts for power users
  • Enhance prompt button for better prompts
  • Message regeneration capabilities

🛠️ Tech Stack

Frontend

  • 🔥 SvelteKit
  • 📝 TypeScript
  • 🎨 Tailwind CSS
  • 🍨 Melt UI Components

Backend

  • 🔧 Convex Database
  • 🔐 BetterAuth
  • 🤖 Kepler AI SDK (Multi-provider support)
  • 🦾 Blood, sweat, and tears

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • pnpm (recommended)
  • At least one AI provider API key (OpenAI, Anthropic, Gemini, etc.)

Installation

  1. Clone the repository

    git clone https://github.com/tglide/thom-chat.git
    cd thom-chat
    
  2. Install dependencies

    pnpm install
    
  3. Environment setup

    cp .env.example .env
    # Edit .env with your configuration
    
  4. Start development server

    pnpm dev
    
  5. Open your browser

    http://localhost:5173
    

🎮 Usage

Getting Started

  1. Sign up for a free account
  2. Add API Keys - Go to Settings and add API keys for the providers you want to use:
    • OpenAI - GPT models, DALL-E, Whisper
    • Anthropic - Claude models
    • Google Gemini - Gemini models and vision
    • Mistral - Mistral models and embeddings
    • Cohere - Command models and embeddings
    • OpenRouter - Access to 300+ models
  3. Start Chatting - Select any model from your enabled providers

Supported Providers

Provider Models Streaming Tools Vision Embeddings
OpenAI GPT-4, o3-mini, DALL-E, TTS
Anthropic Claude 4, Claude 3.5 Sonnet
Google Gemini Gemini 2.5 Pro, Imagen
Mistral Mistral Large, Mistral Embed
Cohere Command A, Command R+
OpenRouter 300+ models

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments