Tools: Run the Real ChatGPT Desktop App on Ubuntu Linux (Not a Wrapper)

Tools: Run the Real ChatGPT Desktop App on Ubuntu Linux (Not a Wrapper)

The Problem With Every Other Guide

What the Script Actually Does

Prerequisites

System packages

Local Electron tooling

Get the Official MSIX Bundle

Install

Register Auth Callback Handlers

Launch

Known Quirks

Reproducing on Another Machine TL;DR: OpenAI ships a Windows MSIX binary. You can unpack it, patch three platform assumptions, and run the actual official app natively on Ubuntu — same binary Windows users get. No Electron wrapper, no web view in a box. Search "ChatGPT desktop Ubuntu" and you'll find two things: These work, but you're getting a community-built shell around a website — not the app itself. The real ChatGPT Desktop (the one in the Windows Store) has features, update hooks, and auth flows that wrapper apps can't replicate cleanly. This guide unpacks the official binary and runs it on Ubuntu 26.04. Tested on kernel 7.0.0, RTX 5070, NVIDIA 580/CUDA 13.0, both X11 and Wayland via XWayland. You end up with a system package you can install, update, and uninstall like anything else. You need the official Windows package from OpenAI. Download OpenAI.ChatGPT-Desktop_<version>.Msixbundle from the Microsoft Store or OpenAI's distribution endpoint and drop it in your working directory. The repo includes the version current at time of writing as an example payload. Output lands in dist/: Rebuilding without a version bump? Force refresh: The package installs a helper that registers your desktop session as the handler for the chatgpt: and chatgpt-alt: URL schemes (used for the login flow): Both should return chatgpt-desktop-native.desktop. The desktop entry sets the WM class to electron so GNOME binds the running window to the ChatGPT icon instead of the generic gear icon. github.com/johnohhh1/chatgpt_desktop_ubuntu Issues and PRs open. If a new MSIX version breaks the patches, open an issue with the version string and I'll update the patch targets. Tested on Ubuntu 26.04 "Noble" with kernel 7.0.0-10, RTX 5070, NVIDIA driver 580, CUDA 13.0. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

$ -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y dpkg-dev nodejs python3 file -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y dpkg-dev nodejs python3 file -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install -y dpkg-dev nodejs python3 file mkdir ~/chatgpt-windows-deb && cd ~/chatgpt-windows-deb -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save mkdir ~/chatgpt-windows-deb && cd ~/chatgpt-windows-deb -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save mkdir ~/chatgpt-windows-deb && cd ~/chatgpt-windows-deb -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save cd ~/chatgpt-windows-deb -weight: 500;">git clone https://github.com/johnohhh1/chatgpt_desktop_ubuntu . -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save ./build-chatgpt-native-deb.sh --exe ./OpenAI.ChatGPT-Desktop_2026.212.2039.0.Msixbundle cd ~/chatgpt-windows-deb -weight: 500;">git clone https://github.com/johnohhh1/chatgpt_desktop_ubuntu . -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save ./build-chatgpt-native-deb.sh --exe ./OpenAI.ChatGPT-Desktop_2026.212.2039.0.Msixbundle cd ~/chatgpt-windows-deb -weight: 500;">git clone https://github.com/johnohhh1/chatgpt_desktop_ubuntu . -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save ./build-chatgpt-native-deb.sh --exe ./OpenAI.ChatGPT-Desktop_2026.212.2039.0.Msixbundle dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install ./dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install ./dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install ./dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install --reinstall ./dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install --reinstall ./dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb -weight: 600;">sudo -weight: 500;">apt-get -weight: 500;">install --reinstall ./dist/chatgpt-desktop-native_2026.212.2039.0_amd64.deb chatgpt-desktop-native-register chatgpt-desktop-native-register chatgpt-desktop-native-register xdg-mime query default x-scheme-handler/chatgpt xdg-mime query default x-scheme-handler/chatgpt-alt xdg-mime query default x-scheme-handler/chatgpt xdg-mime query default x-scheme-handler/chatgpt-alt xdg-mime query default x-scheme-handler/chatgpt xdg-mime query default x-scheme-handler/chatgpt-alt chatgpt-desktop-native chatgpt-desktop-native chatgpt-desktop-native - Articles pointing you at lencx/ChatGPT — a third-party Electron wrapper that loads chatgpt.com in a window. It's not the real app. - Articles pointing you at other wrappers doing the same thing. - Extracts the x64 MSIX from the official .msixbundle - Pulls out the official app.asar (the real app logic) - Patches three platform assumptions so it boots on Linux: Routes the platform chooser through the macOS-style implementation (Linux is close enough) Disables macOS-only setVibrancy() calls Skips the macOS ioreg device ID path - Routes the platform chooser through the macOS-style implementation (Linux is close enough) - Disables macOS-only setVibrancy() calls - Skips the macOS ioreg device ID path - Stages Linux Electron around the official app resources - Packages everything as a proper .deb — chatgpt-desktop-native - Routes the platform chooser through the macOS-style implementation (Linux is close enough) - Disables macOS-only setVibrancy() calls - Skips the macOS ioreg device ID path - The terminal will print Electron/NVIDIA/VA-API noise. This is normal — ignore it. - The success signal is functional login and working chat, not a clean terminal. - If GNOME still shows the generic icon after first launch: close the app fully and relaunch once. Stubborn shell? Log out and back in. - If OpenAI updates the Windows app significantly, the patch targets in build-chatgpt-native-deb.sh may need updating. PR welcome. - Clone the repo to the target machine - Drop a real ChatGPT .msix, .msixbundle, .appx, or .appxbundle in the directory - -weight: 500;">npm -weight: 500;">install electron @electron/asar --no-save - ./build-chatgpt-native-deb.sh --exe <your-payload> - Install the generated .deb - Run chatgpt-desktop-native-register - Launch chatgpt-desktop-native