ImHex 1.38.1 combines a hex editor with a binary workbench
ImHex 1.38.1 goes far beyond changing bytes in a file. The desktop interface includes multiple workspaces, bookmarks, structured data inspection, search, diffing, hashes, an integrated disassembler, YARA rules, and a node-based data processor. Data can come from local files, raw disks, process memory, a GDB server, UDP packets, Intel Hex or SREC records, and remote hosts over SSH or SFTP. That range makes it useful when binary investigation moves between formats and sources.
The distinctive part is ImHex's Pattern Language. A C-like definition can map structures, arrays, pointers, unions, bitfields, endianness, and conditional layouts onto raw data. Patterns can load according to MIME type or magic values, then label and color regions in the editor. The separate ImHex-Patterns database holds shared definitions, libraries, magic files, encodings, themes, and YARA rules. Repeated work on one proprietary format is where this system can repay the learning cost.
A 205.8 MB checkout contains the editor, plugins, SDK, and tests
Our measured source checkout was 205.8 MB before configuration, with 8,200 files and about 1,473,355 lines of source. ImHex uses C++ and splits much of its functionality into plugins. Plugin developers can build an SDK bundle and point their own project at its installed path. Most of the application is GPLv2-only, while libimhex and the shared UI plugin library use LGPLv2.1 so proprietary plugins can interact with the application.
That size buys breadth, though it also changes the maintenance question. A pattern parser, graphical editor, disassembler, remote providers, content updater, and plugin API all need platform-specific care. The measured checkout has 7 CI workflow files and a tests directory. Our scan found no root Dockerfile, while the current compilation notes describe specialized Dockerfiles under distribution folders for some package builds. End users can avoid most of this by installing a release package.
What happened when we ran it
Our sandbox attempted the install for commit 53dbd48 in a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. It failed with exit 1 after 4 seconds during CMake configuration. The final log lines show pkg-config checking for dbus-1, reporting that the required package was not found, and ending with an incomplete configuration. The log points to nativefiledialog's CMake file when it reports the missing module.
No compiler result or test result followed that failure, so this run cannot support a claim about whether ImHex builds or passes tests once its native dependencies are present. The useful finding is concrete: direct configuration in our prepared C++ image still lacked a required DBus development module. The Linux guide tells source builders to clone recursively and run the dependency script matching their distribution before invoking CMake and Ninja.
Missing dbus-1 stopped CMake before one source file compiled
Source contributors have a stricter path. The README requires a GCC or LLVM Clang version with C++23 support and rejects MSVC and AppleClang for the documented build. The current Linux instructions show GCC 16 with CMake and Ninja after the distribution dependency script. No cloud credential or database is required. Network access becomes relevant when cloning submodules, obtaining packages, updating content, or opening remote data sources.
OpenGL 3.0 and macOS 15 narrow the binary choices
The normal interface requires OpenGL 3.0 or newer. Software-rendered NoGPU packages exist and the README warns they can be much slower. It lists roughly 50 MiB of base RAM and 100 MiB of storage, with analysis complexity increasing memory use. Integrated graphics are supported, although some Intel HD drivers on Windows are documented as producing graphical artifacts. That is worth testing before standardizing ImHex in a lab full of older machines or virtual desktops.
Current macOS release binaries target macOS 15 and are unsigned, so users must allow them through system security settings. The README says lower macOS versions may work after a source build. Linux has official packages for several distribution families plus universal formats. FreeBSD 14.3 is the named tested release. These are better platform notes than most desktop tools provide, but they still leave old Apple systems and unusual graphics setups with manual work.
Version 1.39.0.WIP has reload and command-line reports
Issue 2872 concerns a 1.39.0.WIP AppImage on Linux. After an object file changed externally, using the reload banner displayed incorrect bytes, and the reporter compared the result with xxd. That is a nightly-build report, not proof of a defect in stable 1.38.1. It is still serious for people examining changing artifacts, who should verify displayed content independently before relying on that workflow.
Command-line opening has two current reports. Issue 2715 shows stable 1.38.1 from Arch's AUR crashing on one supplied file when launched from the terminal. Issue 2873 says a 1.39.0.WIP Windows build opens a requested file but fails to load the accompanying pattern. These reports are specific enough to test against your files before automating launch commands.
A September 2026 push outweighs the older v1.38.1 tag
GitHub showed 54,645 stars and 390 combined open issues and pull requests when fetched. The latest stable release, v1.38.1, was published on December 21, 2025, while the repository's last push was September 2, 2026. New bug reports and pull requests were active through late August and early September 2026. The stable tag is older, but code and issue activity do not support calling the project abandoned.
ImHex is the right choice when structured patterns, visual inspection, and several binary data sources belong in the same session. Its 205.8 MB checkout and failed native configuration make source setup hard to justify for a quick hex edit. Okteta covers conventional editing, hexyl covers terminal viewing, and Ghidra or radare2 fit deeper executable analysis. Packaged ImHex is the sensible trial; source compilation is a separate engineering task.

