Skip to content

Repository files navigation

ThatGPT logo

ThatGPT

Local ChatGPT-style desktop chat for OpenAI-compatible APIs and Ollama

Version License Tauri Rust React Platform

Features · Screenshots · Installation · Development · Build · Changelog · Trust · Contributing

Landing page · v2.6.3 release notes · Fork builds (GitHub Actions)

ThatGPT banner

Description

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.

Features

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

Screenshots

Chat view
Main chat
Models
Models list
Personalization
Personalization setting
Providers
Providers setting

ThatGPT demo
Demo GIF

Installation

Download (recommended)

  1. Open GitHub Releases — v2.5.0.
  2. Download portable .exe or NSIS setup installer for Windows x64.
  3. Verify checksums — SHA256.txt and docs/TRUST.md.
  4. (Optional) Review VirusTotal reports (v2.5.0) after maintainers upload scans.

Configure API access

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=2

Ollama: Add an Ollama provider in Settings → Providers (http://127.0.0.1:11434).

Build from source

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 build

Portable binary: src-tauri/target/release/bundle/portable/ThatGPT.exe

Development

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 files

Config 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.

Build

Windows desktop

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

CI & cross-platform release

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.3

To build from a fork, see docs/FORK_BUILDS.md.

Windows-only packaging (local)

npm run build
npm run release:package
npm run release:hashes

Architecture

React UI (Vite)
      │  Tauri invoke
      ▼
Rust services ──► OpenAI-compatible API / Ollama
      │
      └── JSON: %APPDATA%/com.thatgpt.desktop/data/

Details: docs/repository-intelligence.md

Tech stack

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

Trust

License

MIT © ThatGPT contributors

Releases

Packages

Contributors

Languages