A focused binary editor for macOS, built with Rust.
Open, inspect, edit, search, and save raw bytes using a clean macOS interface.
- Hex + ASCII editing — synchronized byte and text views, cursor navigation, insert/overwrite modes.
- Multi-file tabs — open several binary files, switch between them, and manage unsaved changes.
- Range selection — drag over multiple bytes or rows, Shift-click, or select all with
⌘A. - Copy and paste — copy selected bytes as spaced hexadecimal or decoded UTF-8 text; separate paste modes.
- Find and navigation — search hex sequences or text, jump to byte offsets, show/hide the floating Find panel.
- Data Inspector — inspect unsigned integers in little- and big-endian representations, binary values and SHA-256.
- Undo and redo — reversible byte edits with bounded history.
- Safer saves — temporary-file replacement and detection of externally changed files, where supported by the filesystem.
- macOS-native menu bar — File, Edit, Navigate, View, Help, keyboard shortcuts, and Light/Dark/System appearance.
- Responsive layout — automatically adjusts bytes per row when the window gets narrower.
Latest release: GitHub Releases.
- Download
Hex-Editor-v0.6.0-macOS-arm64.dmgfor Apple Silicon (M-series Macs). - Open the
.dmg, then drag Hex Editor.app into Applications. - Eject the disk image and launch Hex Editor from Applications.
A .zip archive is also provided if you prefer to extract the application yourself.
Important
Public preview / signing notice: This build is ad-hoc code-signed, not Apple Developer ID signed or notarized. macOS Gatekeeper may warn or block the first launch. Only proceed through the system's Privacy & Security controls if you trust the downloaded app. Do not disable Gatekeeper globally. Check the SHA-256 checksums in the release before installing. The current downloadable build targets macOS on Apple Silicon (arm64); Intel is not yet distributed.
The application has been exercised on macOS 26.6.2 (Apple Silicon). Other macOS versions have not been comprehensively validated.
| Action | Shortcut |
|---|---|
| New tab | ⌘N |
| Open file | ⌘O |
| Close tab | ⌘W |
| Save | ⌘S |
| Save As | ⇧⌘S |
| Undo / redo | ⌘Z / ⇧⌘Z |
| Find | ⌘F |
| Go to offset | ⌘G |
| Toggle Data Inspector | ⌘I |
| Copy / paste | ⌘C / ⌘V |
| Select all | ⌘A |
Copy Hex, Copy Text, Paste Hex and Paste Text are also available in Edit and the editor's context menu.
Requirements:
- macOS with Apple Silicon and Apple Command Line Tools or Xcode (
xcode-select --install). - A recent stable Rust toolchain with Cargo (this project uses Rust edition 2024).
git clone https://github.com/tuanworlddev/hex-editor.git
cd hex-editor
cargo test --all-targets
cargo clippy --all-targets -- -D warnings
cargo build --release
./target/release/hex-editor /path/to/a/file.binThe native macOS menu is implemented in Objective-C/AppKit (src/native_menu.m), compiled by build.rs, while the editor engine, application state, and UI are written in Rust (src/). The PNG and .icns files in assets/ provide the application artwork.
To package the built binary as an .app and installer disk image on macOS:
./scripts/package-macos.shThis produces a local .app, .zip, .dmg, and checksums in dist/. Local builds are ad-hoc signed, not notarized.
The public repository contains reproducible tests using generated binary fixtures, not private user files. The initial preview passed 21 unit and integration tests and a Clippy -D warnings check on an Apple Silicon Mac.
Current limitations:
- Maximum file size: 256 MiB; the editor buffers the entire document in memory.
- Dragging outside the viewport does not auto-scroll continuously.
- Binary data copied as text uses lossy UTF-8 decoding; use Copy Hex for byte-exact transfer.
- No crash-recovery journal, installer notarization, or comprehensive cross-version macOS QA yet.
- Not all GUI workflows have automated end-to-end coverage; back up important binaries before editing.
This is an early public preview, not a claim of zero defects or production certification. See CHANGELOG.md and SECURITY.md.
Issues and pull requests are welcome. Please review CONTRIBUTING.md for the testing and contribution workflow.
Released under the MIT License.
