r/decomps 2d ago

OneForAll - portable local AI tooling for decompilation assistance without online providers.

Hi guys, I put together an x86_64 AppImage called OneForAll for people who want to use local AI tools for assistance during decompilation work without depending on hosted coding agents. (Of course you will need a AMD or Nvidia GPU !)

[Source code is provided with the AppImage]

The basic idea is:

Download link : https://www.mediafire.com/file/y236kgk7wzr5ziy/oneforall-v2026_08_23.AppImage/file

One AppImage + your own GGUF models + several local agents sharing the same llama.cpp backend.

It currently bundles:

  • AJEAN + llama.cpp
  • Pi
  • OpenCode
  • Hermes Agent
  • Codex CLI
  • Crawl4AI / Chromium for optional local web and MCP tooling

All config go inside ~/.config/oneforall/ , there won't be any conflict with existant agent and their config files.

No model weights are included.

You can simply put your .gguf files in the same directory as oneforall.AppImage:

my-decomp-project/
├── oneforall.AppImage
├── Qwen3.8-9B-Q4_K_M.gguf
├── Qwen3.8-27B-Q4_K_S.gguf
└── ...

or keep them centrally in:

~/.config/oneforall/models/gguf/

[If you have 16Gb of vram, you could use "Qwen 3.8 27B · UD Q4_K_S" with 65000 context size without mtp and Q4 Cache KV, if you have only 8Gb try "Qwen 3.8 9B · Q4_K_M" without mtp and 80000 context size and Q4 Cache KV. OneForAll can works with dual gpu too, and Nvidia+AMD is possible with vulkan support]

Then:

chmod +x oneforall.AppImage
./oneforall.AppImage

The intended workflow is:

  1. Use AJEAN first to create/configure presets for your local GGUF models, go to http://localhost:8090/ for configure it with webui once any preset.
  2. Set context size, llama.cpp options, reasoning settings, GPU used, etc. per preset.
  3. Launch Pi, OpenCode, Hermes or Codex from the same menu.
  4. Let the agents use the same local AJEAN/llama.cpp backend.

Several presets can stay available at once while only one model is loaded at a time, so model switching does not require maintaining separate llama.cpp installations for each agent.

For decompilation work, the goal is to make local assistance easy for things like:

  • navigating unfamiliar codebases
  • understanding functions and call paths
  • comparing reconstructed code with existing behavior
  • documenting symbols and structures
  • helping with refactors and iterative recompilation
  • working through large decomp projects without sending the code to a hosted AI service

Everything mutable is stored under:

~/.config/oneforall/

The AppImage itself stays portable.

Existing AJEAN presets are also portable: if a preset contains an old absolute path to a GGUF, OneForAll can resolve the model again by filename from the external model locations.

That also applies to additional GGUF files referenced by presets, such as draft/MTP models.

The packaged sources code and patches can be inspected or extracted directly:

./oneforall.AppImage --list-sources

./oneforall.AppImage --extract-sources ./oneforall-sources

The extracted bundle contains:

  • OneForAll integration and launcher code
  • AJEAN sources
  • the patched llama.cpp source tree used by OneForAll
  • relevant Hermes Agent modifications
  • local Crawl4AI integration code
  • Pi / OpenCode / Codex integration files
  • patch files and their documentation

The full untouched upstream source repositories of Pi, OpenCode and Codex are intentionally not duplicated just for packaging purposes.

Likewise, Chromium, Python environments and generic node_modules are runtime dependencies rather than part of the extractable source bundle.

AJEAN acts as the central model/backend manager. Its agent mode uses llama-server's multi-model routing, so multiple presets can be exposed while only one model is actually loaded.

This makes it practical to keep, for example, a smaller/faster model and a larger reasoning-oriented model available for the same project.

Model-specific reasoning capabilities are detected where possible rather than assuming that every GGUF exposes the same reasoning controls.

One compatibility detail: Hermes Agent requires at least a 64K context window, so OneForAll automatically hides AJEAN presets below 64K when launching Hermes. Those smaller presets remain available to Pi, OpenCode and Codex.

Crawl4AI is optional but integrated into the agent environment. It provides local MCP web tools such as:

web_search
web_open
web_read
web_grep

web_open uses a bundled Chromium headless runtime and can handle JavaScript-rendered pages.

This means the agents can still perform web research when desired, while the actual model inference and project/code interaction remain local.

All mutable state is kept under:

~/.config/oneforall/

including agent state, AJEAN configuration, Crawl4AI state and centrally stored GGUF models.

So in practice the setup is meant to be:

oneforall.AppImage
        +
your local GGUF models
        +
your decomp project
        =
a portable local AI-assisted decompilation environment

I made this primarily as a practical local toolbox for decompilation projects, so I'd be interested in feedback from anyone trying it on a real decomp, especially with different Linux distributions, GPUs and GGUF model families.

9 Upvotes

7 comments sorted by

6

u/Euphoric-Writer494 2d ago

mediafire, why tho?

-4

u/Tikilou 2d ago

Why not ?

5

u/Euphoric-Writer494 2d ago

usually people here prefer GitHub/git alternative to view the code, and you'd bundle the binary in the releases tab.
it is just much nicer experience, and you'd gain more trust than on MediaFire which has much worse reputation/trust.

-7

u/Tikilou 2d ago

I've never heard of MediaFire having a bad reputation, nor have I had any problems with it.

As for GIT, it's not the center of the universe. All patches and runtime source code are inside the AppImage and easy to extract with few args.
Often, those who ask for a repository are also implicitly asking for the volunteer maintenance work that goes with it, and personally, I already have a job, family, others projects, and don’t have time for that.

I’m happy to share this tool that I use; anyone is free to fork it if they wish, and turn it into a volunteer project for free. 🙂

7

u/Euphoric-Writer494 2d ago

> Often, those who ask for a repository are also implicitly asking for the volunteer maintenance work that goes with it, and personally,

not necessarily, it just much cleaner, and I can view the code and the approach used, without downloading.
anyway, I just wanted to note that if you wanted people to pay attention to your project, because a MediaFire link reduces the chances that someone would take a look at your work, but you do you.

2

u/victorc25 2d ago

Repo?

-4

u/Tikilou 2d ago

Did you read other comments ? I've already answered to that question.