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 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 imagesWant something like this?
Start a project