Skip to content
All projects

AI

MHLSQ Chat

A self-hosted ChatGPT-style interface for AI models: many models in one place, custom personas, PDF and image attachments, with usage analytics.

MHLSQ Chat - hero screenshot

MHLSQ Chat is my own chat interface for AI models, built as an alternative to a separate subscription for every model. One account, one conversation history, and the right model for each question.

Models

  • Models come through OpenRouter and DeepSeek behind a shared provider layer, from a catalog where each model declares its capabilities
  • The model picker shows which models accept images
  • Paid models are reserved for premium accounts, which the admin turns on per user

Conversations

  • Replies stream in, with markdown, maths through KaTeX and syntax-highlighted code
  • Every conversation gets a title automatically
  • Custom personas, in the style of custom GPTs: a saved system prompt you reuse
  • Up to three attachments per message: images, or PDF and text documents whose text is extracted on the server

Account and admin

  • Accounts with hashed passwords, sign-in throttling and a guest mode
  • A daily message limit per user
  • An admin panel with real usage and token statistics
  • Font, text size, theme and default model chosen by each user
  • Installs as a PWA on a phone

Infrastructure

Runs in Docker on my own server, with PostgreSQL through Drizzle ORM, Auth.js for sign-in and attachments on a persistent volume

Tech stack: Next.js 16, TypeScript, Vercel AI SDK, OpenRouter, Auth.js, PostgreSQL, Drizzle ORM, KaTeX, Docker, Vitest.

Screenshots

2 images

Want something like this?

Start a project