Kuna an agent‑first decompiler

a noelo lab project

An agent-first decompiler.

Kuna is a self-refining decompiler built to be used by agents. It is based on the Ghidra decompiler, written in Rust, and integrates modern features from other open-source decompilers and research. Kuna is an experiment to see how far agents can take self-refining tools.

$ kuna decompile ./a.out main
$ kuna decompile ./stripped.bin 0x401040 --addr
$ kuna decompile-all ./a.out --json
$ kuna decompile ./a.out main --option compareform canonical
The kuna mark: an eel coiled around a target.
  • built on Rust · SLEIGH
  • runs in CLI · the browser (wasm) · Ghidra GUI (extension)
  • license Apache‑2.0

compare

The same function out of the same binary: Kuna on the left, another decompiler (or the original source) on the right.

kuna

        
for reference

goals

This project optimizes for three specific goals.

  1. 01

    Autonomous Refinement

    LLM agents should drive the majority or all of code writing in Kuna, supported by a dataset which directs the models towards quality metrics. As such, code is optimized to be used, read, and modified by agents, as well as debugged in the context of big dataset competitions like DecBench.

  2. 02

    LLM-Facing

    LLMs are likely to become the main consumers of decompiled code in the future. As such, Kuna optimizes to be read by LLMs. That means GUI development is largely untouched and UX is on the lower side of priorities for this project. This also means decompilation text quality and speed are our top priority.

  3. 03

    Tunable

    Based on recent research in decompilation, not all decompiler features are always good. Some are useful in only specific contexts. As such, every feature is developed in this context: is it always good? How can we know? Can it be enabled dynamically and robustly?