Local ChatGPT-style desktop chat for OpenAI-compatible APIs and Ollama
Features · Screenshots · Installation · Development · Build · Changelog · Trust · Contributing
Landing page · v2.6.3 release notes · Fork builds (GitHub Actions)
ThatGPT is an open-source Windows desktop chat client with a ChatGPT-inspired UI. Conversations, prompt presets, and multimodal attachments live in a React UI. A Rust + Tauri backend stores JSON on disk and proxies all model requests so your API key never enters the webview.
Design goals: credentials stay in the desktop shell, no database overhead, any OpenAI-compatible endpoint or local Ollama.
| ChatGPT-like UI | Sidebar nav, pill composer, model dropdown, tabbed settings |
| Providers | Multiple OpenAI-compatible profiles + Ollama (/api/tags) |
| Streaming | True SSE streaming with smart scroll and stop generation |
| Agent tools | Web search, knowledge search, analyze image/audio, generate images |
| Vision & image gen | Separate badges — see images vs create images (gpt-image-1, DALL·E) |
| RAG | Local knowledge base with embeddings, chunking, citation footnotes |
| Library | Browse all attachments across conversations |
| Markdown | GFM, LaTeX (KaTeX), Mermaid diagrams, syntax-highlighted code |
| Conversations | Pin, archive, folders, Ctrl+K search, ephemeral (temporary) chat |
| Power user | Branching, fork, templates, bookmarks, command palette, HTML export |
| Tokens & cost | Usage footer, context bar, editable per-model pricing |
| Themes | Light / dark with prefers-reduced-motion |
| Export | Markdown, JSON, HTML share; copy thread as Markdown |
![]() Main chat |
![]() Models list |
![]() Personalization setting |
![]() Providers setting |
- Open GitHub Releases — v2.5.0.
- Download portable
.exeor NSIS setup installer for Windows x64. - Verify checksums —
SHA256.txtand docs/TRUST.md. - (Optional) Review VirusTotal reports (v2.5.0) after maintainers upload scans.
Open Settings in the app (header ··· menu) to set your API key, providers, models, and optional features (web search, knowledge base, dev mode). Settings are saved to:
%APPDATA%\com.thatgpt.desktop\.env
You can also edit that file manually — see src-tauri/.env.example:
AI_API_KEY=your-key-here
AI_BASE_URL=https://api.openai.com/v1
AI_MODEL=gpt-4o-mini
AI_DEFAULT_SYSTEM_PROMPT=You are a helpful assistant.
AI_REQUEST_TIMEOUT_MS=60000
AI_MAX_RETRIES=2Ollama: Add an Ollama provider in Settings → Providers (http://127.0.0.1:11434).
Requires Node.js 20+, Rust, and WebView2 on Windows.
git clone https://github.com/Satan2049/that-gpt.git
cd that-gpt
npm install
npm run buildPortable binary: src-tauri/target/release/bundle/portable/ThatGPT.exe
npm install
npm run dev # Tauri + Vite hot reload
npm run test:rust # Rust unit tests
npm run build:client # Frontend only
npm run clean # Remove build artifacts & temp filesConfig template: src-tauri/.env.example
| Variable | Description |
|---|---|
AI_API_KEY |
Provider API key (required for cloud APIs) |
AI_BASE_URL |
OpenAI-compatible base URL |
AI_MODEL |
Default model id |
AI_IMAGE_MODEL |
Image generation model (e.g. gpt-image-1) |
AI_DEFAULT_SYSTEM_PROMPT |
Fallback system message for new chats |
AI_REQUEST_TIMEOUT_MS |
Provider request timeout (ms) |
AI_MAX_RETRIES |
Retry count for transient API errors |
See CONTRIBUTING.md for pull request guidelines.
| Command | Output |
|---|---|
npm run build |
NSIS installer + portable EXE |
npm run build:portable |
Portable EXE only |
npm run release:package |
Stage release/ folder with ZIPs |
npm run release:hashes |
Regenerate SHA256.txt from built artifacts |
npm run clean |
Delete target/, client/dist/, caches, logs |
npm run clean:all |
Also remove node_modules and release/ |
Artifacts:
src-tauri/target/release/bundle/portable/ThatGPT.exe
src-tauri/target/release/bundle/nsis/ThatGPT_*_x64-setup.exe
release/ # after release:package
SHA256.txt # after release:hashes
GitHub Actions builds on Windows, macOS, and Linux (see .github/workflows/ci.yml).
To publish v2.6.3 (or any version), push a version tag — the release workflow builds Windows, macOS, and Linux and uploads SHA256.txt:
git tag v2.6.3
git push origin v2.6.3To build from a fork, see docs/FORK_BUILDS.md.
npm run build
npm run release:package
npm run release:hashesReact UI (Vite)
│ Tauri invoke
▼
Rust services ──► OpenAI-compatible API / Ollama
│
└── JSON: %APPDATA%/com.thatgpt.desktop/data/
Details: docs/repository-intelligence.md
| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| Backend | Rust, Tokio, Reqwest, Serde |
| Frontend | React 18, Vite, TypeScript, Zustand |
| Storage | File-based JSON |
| AI | OpenAI-compatible /chat/completions, /images/generations, embeddings |
- Verify downloads: docs/TRUST.md
- Release notes: docs/RELEASE_v2.6.3.md
- Report security issues: SECURITY.md
- Checksums:
SHA256.txt
MIT © ThatGPT contributors




