ImThemes: a Dear ImGui theme designer with a public theme catalogue
Dear ImGui style browser and editor written in Nim
At a glance
- What is it?
- ImThemes is a Dear ImGui theme designer and browser written in Nim, with real time preview and export to Nim, C++, C# or TOML for the companion ImStyle library, plus a shared themes.toml catalogue that anyone can contribute to through a pull request.
- Who is it for?
- Adopt ImThemes if you write Dear ImGui interfaces and want to design a theme visually, preview it live and export it for the ImStyle library, or you want to start from a theme somebody else already made. Do not adopt it as a general ImGui asset browser, because the catalogue is specifically for ImStyle themes.
- 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 116 days ago.
- What is it written in?
- Mainly Nim, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A theme editor for Dear ImGui, in Nim
ImThemes is a Dear ImGui style browser and editor written in Nim, and the README calls it a Dear ImGui theme designer and browser.
Dear ImGui is an immediate mode GUI library, and the word immediate is the whole point of context here. A theme in that world is a set of colours for the widgets, and hand-authoring one means picking values for every button, frame, tab and text element in a text file, with no way to see the result until you rebuild. ImThemes exists to replace that loop with a visual editor and a live preview.
The primary language is Nim, which is an unusual choice for a GUI tool and one that carries a practical consequence: there is no npm package, no PyPI wheel and no Homebrew formula. You get a compiled binary and that is it. The licence is MIT, the default branch is main, and the recent releases are v0.3.0 from 2025-10-10, v0.2.6 from 2022 and v0.2.5 from 2022.
The audience is two groups who happen to overlap. Developers building Dear ImGui applications who want a consistent look across their widgets, and the people who maintain the themes for a project like ImStyle, which is the companion library the exported output targets.
The repository layout is compact. There is main.nim as the entry point, build.nim and config.nims for the Nimble build, an ImThemes.nimble package file with a nimble.lock, a src/ directory for the application code, a bin/ directory for the binary, assets/ for the icon and images, resourcesdata.nim, and a themes.toml that is the catalogue itself.
Export targets decide what the tool is for
The feature list is short and one entry tells you what the whole application is aimed at: export to Nim, C++, C# or TOML for ImStyle.
That is four output formats, and the choice is not arbitrary. A theme that is going to be consumed by code has to arrive in a shape that code can read. Nim, C++ and C# are the three languages in which a Dear ImGui application might be written, so the exporter can emit a language-native representation, and TOML is the interchange format, which is also the format the catalogue itself is written in.
So the workflow the tool supports is design, then export for a specific target. The other features are the surrounding tools that make that workflow usable: a theme editor, real time theme preview, browse and preview themes from the internet, filter by tags, filter by author, star your favorite themes, sort themes alphabetically and by publish date, and fork themes.
The browse side is the more unusual half. There is a public catalogue of themes hosted in the repository, and the browser lets you search, filter and sort it, star favourites, and fork a theme to work from as your own starting point. Forking is what makes the catalogue more than a gallery, because it turns a theme someone else made into the base for a new one, with the attribution of the original preserved by the fork relationship on GitHub.
The sorting by publish date is a small detail with a real purpose. A theme that was published two years ago may not match a Dear ImGui version you are on today, and being able to see the date next to the theme is what lets you judge that.
Installing: a binary download, or nimble
There are two documented install routes, and the first one does not involve a package manager at all.
Go to the releases page and download the artifact for your platform.
- [ImThemes-0.3.0-amd64.AppImage](https://github.com/Patitotective/ImThemes/releases/latest/download/ImThemes-0.3.0-amd64.AppImage) for Linux.
- [ImThemes-0.3.0.zip](https://github.com/Patitotective/ImThemes/releases/latest/download/ImThemes-0.3.0.zip) for Windows.The Linux build is an AppImage and the Windows build is a zip, and the version in the file name is 0.3.0, matching the current release. There is no macOS artifact listed, which is a real constraint given that Dear ImGui's most common consumers are on macOS.
The second route goes through Nimble, the Nim package manager, and the project describes it as installing it as a binary package.
nimble install https://github.com/Patitotective/ImThemesThat form installs from the repository URL rather than from a registry, and the presence of ImThemes.nimble and a nimble.lock in the tree is what makes it work. The Makefile-equivalent for a Nim project is the build.nim file, with config.nims holding the configuration and the config.toml file alongside it.
So if you already have a Nim toolchain, the nimble route fits into an existing setup. If you do not, the AppImage is the whole installation story, and it will only run on Linux.
Publishing a theme is a pull request against one TOML file
The publishing process is worth describing because it is unusual in its simplicity, and because it defines what a theme in this catalogue actually is.
The flow starts inside the application. You click the Publish button, fill in the name and description, add tags, click Next and copy the TOML entry. Then you paste that copied text at the end of themes.toml, GitHub forks the repository for you automatically, and you create a pull request proposing the change.
The validation step is automated. validate_themes.nim is run to check whether the themes.toml file is valid or not, and the file itself sits at the root of the repository as themes.toml.
The two manual fields are the interesting part. The author field corresponds to the GitHub username of the person making the pull request, but author and date are added manually when the pull request is merged, and you can add the author yourself as well. In other words, a theme entry in the catalogue is a human-curated record with a timestamp that a person sets, not something the tooling derives.
That has a consequence for anyone consuming the catalogue. The dates are not automatically trustworthy in the way a machine-generated timestamp would be, and the entries are ordered by publication date in the browser, so the ordering depends on a field a maintainer typed. The comparison link in the pull request template is pre-filled with a title of [Theme] My Theme and a label of theme, which is a small sign that the catalogue has a convention worth following.
The limits, and what this is not
There are three limits, and they are mostly about scope rather than quality.
The first is that this is a theme tool for Dear ImGui and for the ImStyle library in particular. The export targets are Nim, C++, C# and TOML, and the catalogue is a list of ImStyle themes. If you are looking for a general Dear ImGui asset browser with icons, fonts and layouts, this is a different tool, and the export formats will not help you there.
The second is the platform situation. The releases are an AppImage for Linux and a zip for Windows, and the nimble route requires a Nim toolchain. There is no macOS build listed, and the Discord invite, the Twitter account and the email contact all point to a single maintainer rather than a team, which is also visible in the manual author and date handling on merges.
The third is that the catalogue is a file in a repository rather than a service. It is versioned with the code, it is reviewed through pull requests, and it is validated by a script. That is a good thing for trust and for reproducibility, and it is a limitation for size, because a single TOML file edited by hand does not scale to thousands of themes the way a database with an API would.
For comparison, the alternative approaches to the same problem are editing the theme file by hand in your editor and previewing it in your application, which is what Dear ImGui users do without a tool like this, and using one of the existing Dear ImGui theme galleries or a community repository of themes, which gives you the themes but not the editor that produced them. ImThemes sits in between: it is the design tool, and the catalogue is the community library that the design tool feeds.
Editorial conclusion
Adopt ImThemes if you write Dear ImGui interfaces and want to design a theme visually, preview it live and export it for the ImStyle library, or you want to start from a theme somebody else already made. Do not adopt it as a general ImGui asset browser, because the catalogue is specifically for ImStyle themes. Before you publish, read the publishing notes, since author and date are filled in by hand at merge time, and note the last push was on 2026-06-28 with the newest release v0.3.0 from 2025-10-10.
Frequently asked questions
What is ImThemes and what is it written in?
ImThemes is a Dear ImGui theme designer and browser written in Nim. It provides a theme editor, real time theme preview, browsing of themes from the internet with filtering and sorting, and export to Nim, C++, C# or TOML for the ImStyle library.
How do I install ImThemes?
Download the AppImage for Linux or the zip for Windows from the releases page, or install it as a binary package with nimble install https://github.com/Patitotective/ImThemes if you already have a Nim toolchain.
How do I publish a theme to the ImThemes catalogue?
Click Publish in the application, fill in the name, description and tags, copy the TOML entry, paste it at the end of themes.toml and open a pull request. validate_themes.nim then runs automatically to check that the file is valid.
Who is listed as the author of a theme in the ImThemes catalogue?
The author field corresponds to the GitHub username of the person making the pull request, but both author and date are added manually when the pull request is merged, and you can add the author yourself.
What can I do with a theme in the ImThemes browser?
You can browse and preview themes from the internet, filter them by tags and by author, sort them alphabetically or by publish date, star your favourites, and fork a theme to use as the basis for your own.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/patitotective-imthemes)