Zaki-1052/GPTPortal
A feature-rich portal to chat with GPT-4, Claude, Gemini, Mistral, & OpenAI Assistant APIs via a lightweight Node.js web app; supports customizable multimodality for voice, images, & files.
What it solves
GPTPortal provides a single, self-hosted web interface for interacting with multiple LLM providers. It eliminates the need to switch between different web UIs when using models from OpenAI, Anthropic, Google, xAI, DeepSeek, Groq, Moonshot, Mistral, OpenRouter, or local endpoints like Ollama and vLLM.
How it works
It is a lightweight Node.js and Express application with a vanilla JavaScript frontend. Users provide their own API keys via a .env file or a browser-based setup page. The backend uses a modular provider factory to route requests to the appropriate API handler based on a model catalog. Conversations are stored in browser sessions or local files, ensuring a local-first approach where data is not sent to a central server other than the API calls to the chosen providers.
Who it’s for
It is designed for individuals or small trusted groups who want a unified, private, and pay-as-you-go way to access various AI models without paying for multiple monthly subscriptions.
Highlights
- Unified Model Picker: A searchable, categorized interface to switch between hundreds of models from various providers and local endpoints.
- Compare View: The ability to send a single prompt to multiple models simultaneously and view their responses side-by-side.
- Local-First Architecture: No database or frontend framework; runs locally with API keys stored in a
.envfile. - Rich Feature Set: Supports token streaming, Markdown rendering (with KaTeX and syntax highlighting), vision capabilities, file uploads, voice (STT/TTS), and image generation.
- Advanced Controls: Includes presets for system prompts and parameters, live token and cost tracking, and prompt caching for Claude models.