ChatGPT-web is a simple one-page web interface for OpenAI-compatible chat APIs. Select a provider, enter its API key, and the app discovers its available models. Chats are stored in your browser's local storage; prompts are sent directly to the selected provider.
- Open source: ChatGPT-web is open source (GPL-3.0), so you can host it yourself and make changes as you want.
- Private: All chats and messages are stored in your browser's local storage, so everything is private.
- Customizable: You can customize the prompt, the temperature, and other model settings. Multiple models (including GPT-4) are supported.
- Bring your own provider: Use a supported API directly and pay only for that provider's usage.
- Fast: ChatGPT-web is a single-page web app, so it's fast and responsive.
- Mobile-friendly: ChatGPT-web is mobile-friendly, so you can use it on your phone.
- Voice input: ChatGPT-web supports voice input, so you can talk to ChatGPT. It will also talk back to you.
- Pre-selected prompts: ChatGPT-web comes with a list of pre-selected prompts, so you can get started quickly.
- Export: ChatGPT-web can export chats as a Markdown file, so you can share them with others.
- Code: ChatGPT-web recognizes and highlights code blocks and allows you to copy them with one click.
- Desktop app: ChatGPT-web can be bundled as a desktop app, so you can use it outside of the browser.
- Image generation: Generate images through OpenAI, xAI, Google Gemini, OpenRouter, or a compatible custom endpoint by prompting "show me an image of ...".
- Streaming: ChatGPT-web can stream the response from the API, so you can see the response as it's being generated.
The setup screen has presets for:
- OpenAI
- Anthropic
- xAI
- Google Gemini
- Mistral AI
- APIpie
- OpenRouter
- OrcaRouter
- Any custom OpenAI-compatible API
Anthropic's compatibility layer is intended primarily for testing and comparison. Some OpenAI request fields are ignored or translated; see Anthropic's compatibility documentation for the current limitations.
Image generation is available for providers with a compatible image endpoint. ChatGPT-web automatically uses the provider default, such as gpt-image-2 for OpenAI, grok-imagine-image-quality for xAI, or gemini-2.5-flash-image for Google Gemini. The chat setting can override that default; providers without a known default require an explicit model ID.
Here’s how to participate in development and prepare your build for production:
To install dependencies and start the development server:
npm ci
npm run devTo compile the project for production, ensuring optimal performance:
npm run buildThis command generates a dist folder containing the production build of your project, ready for deployment.
The prompts.chat data provides the pre-selected prompts shown in the chat interface. The bundled list contains the 100 most-upvoted text prompts from the public prompts.chat API.
To refresh the bundled snapshot, run:
npm run update-promptsThe updater validates the response before atomically replacing src/awesome-chatgpt-prompts/prompts.csv, so an API or network failure leaves the existing snapshot intact.
Deploying the application and its mocked API locally is streamlined using Docker Compose. By executing the following command, you initialize both services effortlessly:
docker compose up -dUpon successfully running the Docker Compose command, the local version of the web service becomes accessible. You can interact with it by visiting: http://localhost:5173/
For instances where immediate API responses are preferred, consider utilizing the mocked API. Follow the steps below to configure and customize your mocked API responses:
-
Configuration:
- Open the
.envfile located at the project's root. - Assign the key
VITE_PROVIDER=custom. - Assign the key
VITE_API_BASE=http://localhost:5174to redirect requests to the mocked API. - Assign any non-empty value to
VITE_API_KEY. - Execute
docker compose up -d mocked_apito start the mocked API service. - To test image generation, set the chat's Image Generation Model to
mock-imageand prompt "show me an image of ...". - To test safe inline SVG rendering, prompt
mock svgwithout enabling image generation.
- Open the
-
Customizing Responses:
- To introduce a delay in the API response, use
dfollowed by the desired number of seconds (e.g.,d2for a 2-second delay). - To specify the length of the response, use
lfollowed by the desired number of sentences (e.g.,l10for a response of 10 sentences). - For instance, sending
d2 l10configures the mocked API to delay the response by 2 seconds and to include 10 sentences.
- To introduce a delay in the API response, use
To use ChatGPT-web as a desktop application:
-
Installation: First, ensure Rust is installed on your computer.
-
Development Version:
- Run
npm run tauri devto start the desktop app in development mode.
- Run
-
Production Version:
- Use
npm run tauri buildto compile the production version of the app.
- Use
-
Location of the Built Application:
- The built application will be available in the
src-tauri/targetfolder.
- The built application will be available in the
