No description
Find a file
Thomas G. Lopes 5e84b63015 lfg
2025-06-19 19:00:28 +01:00
e2e init 2025-06-13 14:14:24 +01:00
src fix icons 2025-06-19 18:48:52 +01:00
static better privacy 2025-06-19 12:50:56 +01:00
.env.example Update .env.example 2025-06-19 12:31:42 -05:00
.gitignore init convex (#1) 2025-06-13 07:19:15 -07:00
.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
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 improve mobile 2025-06-19 17:18:06 +01:00
playwright.config.ts api keys (#3) 2025-06-14 04:40:01 -07:00
pnpm-lock.yaml fonts 2025-06-19 02:21:11 +01:00
README.md lfg 2025-06-19 19:00:28 +01:00
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

  • 400+ AI Models via OpenRouter integration
  • Free Tier with 10 messages using premium models
  • Unlimited Free Models (models ending in :free)
  • Bring Your Own Key for unlimited access

💬 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
  • 🤖 OpenRouter API
  • 🦾 Blood, sweat, and tears

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • pnpm (recommended)
  • OpenRouter API key (optional for free tier)

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

Free Tier

  • Sign up and get 10 free messages with premium models
  • Use unlimited free models (ending in :free)
  • No credit card required

Premium Features

  • Add your own OpenRouter API key for unlimited access
  • Access to all 400+ models
  • Priority support

🤝 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