One tool to rule them all.
A next-generation Java reverse-engineering workspace for exploring, understanding, and rewriting bytecode.
Self-Maintained Decompiler · Text Assembler · Extensive Cross-referencing · Instant Refactoring
Trinity approaches decompilation differently. Built on the battle-tested Fernflower, it integrates directly with the decompiler engine instead of treating the generated Java as plain text. Numerous bugs and anti-decompilation exploits are fixed.
Rename variables, fields, methods, and classes in place. Trinity updates every known usage across the workspace immediately, so you can turn an unreadable codebase into something understandable as you investigate it.
Trinity's cross-reference (Xref) search is instant and exceptionally thorough. It follows references throughout the bytecode, including class literals, annotations, casts, method parameters, return types, field accesses, and invocations.
Search constants across the entire project instantly, not just the strings visible in decompiled source. Strings, numbers, class literals, annotation values, bootstrap arguments, and other class-pool constants are all discoverable.
Load one or several files into a workspace, edit their classes and members, and save the complete project as a compressed Trinity database (.tdb), letting you resume your work right where you left it off.
Built-in refactoring / deobfuscation, custom themes, a built-in theme editor, configurable key mappings, among many others
Running Trinity requires Java 17 or newer. Gradle 8.4 builds require JDK 17-20; build and run with the checked-in wrapper:
git clone https://github.com/firstfault/Trinity.git
cd Trinity
./gradlew runThe executable fat JAR is produced at build/libs/Trinity.jar by ./gradlew build.
Pre-built versions are available from GitHub Releases.
Contributions are massively appreciated. Please feel free to open an issue or pull request if anything you need is missing.
Please review the planned features before requesting a feature addition!
- ImGui with Bindings
- ObjectWeb ASM
- Modified version of Fernflower Decompiler
Hackers, hobbyists, professionals, everyone is welcome.
Originally Trinity started out as an obfuscator with an interactive interface. Over time, I began using it as a decompiler, and eventually it evolved into this awesome tool.



