HemulGM/ChatGPT: a Delphi FMX desktop client for OpenAI models
ChatGPT Native Application (Windows, Mac, Android, iOS, and Linux)
At a glance
- What is it?
- HemulGM/ChatGPT is a native FireMonkey application for Windows, macOS, Android and Linux that talks to gpt-3 and gpt-4. It is a Delphi codebase first and a chat client second, which decides who can realistically build it.
- Who is it for?
- Adopt HemulGM/ChatGPT if you want a non-browser ChatGPT client on Windows, macOS, Android or Linux, or if you work in Delphi and want a working FMX reference for streaming chat, DALL-E image generation and external GPT functions. Do not adopt it if you need iOS, mathematical formula rendering, Markdown rendering or syntax highlighting on Linux, because the README lists all four as absent or planned.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 163 days ago.
- What is it written in?
- Mainly Pascal, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
A native client instead of a browser tab
The README opens with a blunt statement: "This is NOT a web page, this is a native application with its own interface!" That sentence is the whole pitch. HemulGM/ChatGPT is aimed at people who want ChatGPT access in a compiled desktop or mobile binary rather than a browser session, and at Delphi developers who want a working FireMonkey example of an OpenAI client they can read or fork. The repository is Pascal throughout, with the UI split into .fmx form files and .pas units: ChatGPT.Main.fmx for the main window, ChatGPT.FrameChat.fmx for the conversation pane, ChatGPT.Settings.fmx for configuration, and separate frames for code, images, SVG and plain text. The feature list covers access to gpt-3 and gpt-4, DALL-E image generation, sound recognition whose transcript is fed back into the conversation, per-chat settings, SVG display, chat editing, custom headers for third-party APIs, and sending a message as assistant, user or system. One line in that list has aged badly: "Doesn't require a VPN (*Now required!*)" is how the README records that the situation changed. If you are choosing a client because you assumed it bypasses regional restrictions, that assumption is wrong and the README says so itself.
How the FireMonkey units and the funcs folder fit together
The architecture is a single FireMonkey application, not a daemon with a UI on top. ChatGPT.dpr is the desktop entry point and ChatGPT_Console.dpr is a separate console project, so the same code can be exercised without the GUI. ChatGPT.Manager.pas and ChatGPT.Classes.pas hold the shared state and data types, ChatGPT.Functions.pas handles the OpenAI calls, and ChatGPT.Functions.External.pas is the extension point. The README describes GPT functions as loading externally from a "funcs" folder, and the repository carries ChatGPT.Functions.External.Intf.pas plus a FunctionsLib directory, which is the shape you would expect if external function definitions are compiled or loaded separately from the core. Rendering is split by content type rather than handled in one rich text control: ChatGPT.FrameCode.fmx, ChatGPT.FrameImage.fmx, ChatGPT.FrameSVG.fmx and ChatGPT.FramePlainText.fmx each own one kind of message body. The dependency list confirms why. Skia4Delphi and SVGImageList are both required, and the repository also vendors FMXRichMemo and DelphiOpenAI as top-level entries. So the data flow is: the chat frame collects input, the manager holds conversation state, the functions unit performs the request, and the result is dispatched to the frame matching its content type. That split is a reasonable design, but it also explains the gaps in the planned-features list, because Markdown and mathematical formulas would each need another renderer.
Installing HemulGM/ChatGPT from the releases page
For most readers this is a download, not a build. The README's build table links every supported platform to the latest release and marks Windows 32, Windows 64, Android 32, Android 64, Linux 64, macOS arm64 and macOS Intel64 as available, while iOS is marked with a cross. Open the releases page, download the archive for your platform, and unpack it. What you should see is a native window with its own interface, not a browser view. Once it is running, the first real task is configuration: the README lists "All model settings" and "Custom headers for third party APIs" as features, so the settings form is where you choose the model and, if you are pointing at a non-OpenAI endpoint, supply your own headers. The per-chat settings feature means those choices are stored per conversation rather than globally, so a new chat starts from its own configuration. The README does not document an API key field, a config file path, an environment variable or a command line flag for launching the application, so treat the settings dialog as the place to look and do not assume a documented key name exists.
Building from source requires Delphi 11.3 and two libraries
The README is explicit: "Build requires Delphi 11.3+". That is a hard floor, and it immediately narrows the audience to people with a current Delphi licence and a Windows development machine, since FireMonkey cross-compilation still starts from the IDE. Two dependencies are named with links, Skia4Delphi and SVGImageList, and the README adds that the build needs "some submodules", which matches the .gitmodules file at the top level. Because the submodules are not vendored, a plain source download is not a complete tree, and the README does not give a clone command, a package manager or a build script. In practice you open ChatGPTGroup.groupproj in Delphi and build the targets you care about, with ChatGPT.deployproj handling deployment files. The separate ChatGPT_Console.dproj suggests you can build a console variant if you want to test the client logic without the FMX UI. None of this is a criticism of the project so much as a statement about its audience: this is source code for Delphi developers, and everyone else should use the release binaries.
Where HemulGM/ChatGPT is the wrong tool
The planned-features list is the most honest part of the README. Display of mathematical formulas, Markdown support, syntax highlighting for Linux, and additional OpenAI functions such as text correction and Fine-tunes customisation are all listed as not yet done. Syntax highlighting exists, but the feature list names pascal, python, json, sql and markdown, while the planned list carves out Linux specifically, so highlighting on Linux is a known gap rather than an oversight. If your work involves equations or heavy Markdown, this client will render less than a browser interface does, and the README says so before you install anything. iOS is the other hard boundary: the build table marks it unavailable, so the cross-platform claim covers five platforms, not six. Then there is the release cadence. The most recent release listed is v1.0.18 from 2023-09-15, while the last push to the default branch was on 2026-04-06. That gap means the repository has seen commits since the last tagged release, but there is no released build carrying them. Anyone who needs a feature added after September 2023 has to build from source with Delphi 11.3 or newer, and anyone who only installs binaries is running code from 2023.
How it differs from the official ChatGPT desktop app
The obvious alternative is the official OpenAI desktop client, and the difference is not cosmetic. The official app is distributed as a signed binary by OpenAI and tracks the hosted product, which is why it gets new model features without a rebuild. HemulGM/ChatGPT is a community Delphi application whose feature set is fixed by its source tree and whose releases are tagged by one maintainer. The practical consequences run in both directions. On the official side you get iOS coverage, which this project does not offer, and you do not need a Delphi installation to get fixes. On this project's side you get things the official client does not expose: sending a message as assistant, user or system; custom headers so you can point the client at a third-party API endpoint; external GPT functions loaded from the funcs folder; and the ability to read or modify every line of the client. If your reason for wanting a native client is control over the endpoint or the request shape, the official app is the wrong comparison and a library is the right one. If your reason is simply to avoid a browser tab, the official client is the lower-effort path.
Licence, maintenance and upgrade cost
The repository is MIT licensed, which permits commercial and closed-source use, modification and redistribution provided the copyright notice and permission notice are preserved. That matters here because the codebase is designed to be edited, and MIT does not force you to publish your changes. It does not resolve the dependency question: Skia4Delphi, SVGImageList, FMXRichMemo and DelphiOpenAI are separate projects with their own licences, and the README does not state what those are, so check each one before shipping a product. The maintenance picture is mixed and the README does not discuss upgrade paths at all. The last push was on 2026-04-06, so the repository is not abandoned, but the newest release in the list is v1.0.18 from 2023-09-15 and the one before it, v1.0.16, is from 2023-05-12. Upgrading therefore means either staying on a 2023 binary or building the current source with Delphi 11.3 or newer and re-resolving the submodules and the two named libraries. There is no documented migration path, no changelog in the README, and no statement about which Delphi versions beyond 11.3 are known to work.
Editorial conclusion
Adopt HemulGM/ChatGPT if you want a non-browser ChatGPT client on Windows, macOS, Android or Linux, or if you work in Delphi and want a working FMX reference for streaming chat, DALL-E image generation and external GPT functions. Do not adopt it if you need iOS, mathematical formula rendering, Markdown rendering or syntax highlighting on Linux, because the README lists all four as absent or planned. Before committing, check the latest release date against the features you need and confirm your Delphi version is 11.3 or newer if you intend to build from source.
Frequently asked questions
How do I install HemulGM/ChatGPT on a Mac?
Download the macOS arm64 or macOS Intel64 archive from the releases page, choosing the one that matches your machine. The README marks both as available builds, and iOS is the only Apple platform marked unavailable.
How do I install HemulGM/ChatGPT on Windows?
The README lists Windows 32 and Windows 64 as available and links both to the latest release. Unpack the archive and run the executable; there is no installer described in the README.
Can I use HemulGM/ChatGPT for free?
The client itself is MIT licensed, so there is no cost or licence fee to use it. API usage is a separate matter, and the README does not describe any pricing or free tier for the models the client connects to.
Does HemulGM/ChatGPT work without a login?
The README does not document a login flow or an unauthenticated mode. It does list custom headers for third-party APIs, which is the documented way to point the client at a different endpoint.
What do I need to build HemulGM/ChatGPT from source?
The README states that the build requires Delphi 11.3 or newer, plus Skia4Delphi, SVGImageList and some submodules. You open the project group in Delphi and build the targets you need.
Does HemulGM/ChatGPT support iOS?
No. The build table in the README marks iOS with a cross while Windows, Android, Linux and macOS are marked available.
Community notes