mrkeyoor.com_
Fri 25 Sept 15:59 UTC
AI Toolsevaluationupdated 25 Sept 2026

nobodywho review

NobodyWho is a Rust inference engine for putting local language, vision, speech, embedding, and reranking models inside desktop and mobile apps. It exposes the same core through Kotlin, Swift, React Native, Flutter, Python, and Godot bindings, so an app can download GGUF models and run without a hosted AI account.

Verdict

Our NobodyWho source build stopped after 124 seconds when llama-cpp-sys-2 called gmake in a directory with no Makefile, and the test command hit the same failure after 7 seconds. The six published bindings make it worth a device-level trial for teams that need local AI inside an app, especially across mobile and desktop. Use the packaged path first; adopt the source workspace only after reproducing a clean build with the documented native toolchain.

We ran it

Lab card: what happened when we ran nobodywhoScreenshot of nobodywho (nobodywho.ai)
Install✓ · 84s587 packages
Build✗ · 124s
Tests✗ · 7sran, no count parsed
Repo1098 files~93,242 lines of source · 24.7 MB · 16 CI workflows

Answers from our run

Does nobodywho build from source?

Dependencies installed in 84 seconds (587 packages), and the build failed. We cloned commit e295839 into a clean Debian container with 3 CPUs and no project-specific setup.

Do nobodywho's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use nobodywho?

Browser-app developers: the README says there is no web export, and issue 111 tracks WASM support as a request.

What are the alternatives to nobodywho?

llama.cpp, Ollama, MLC LLM. Our NobodyWho source build stopped after 124 seconds when llama-cpp-sys-2 called gmake in a directory with no Makefile, and the test command hit the same failure after 7 seconds.

Setup2/5Published bindings are simple; our Rust source build failed
Docs4/5Six binding guides plus clear platform and memory limits
Community4/51,395 stars and 19 open issues or PRs with same-day work
Maturity3/5Multiple v4 bindings, but source verification did not complete

Who it’s for

App developers who need private, offline model inference on desktop or mobile devices.
Teams shipping the same AI feature through several language or framework bindings.
Godot developers building local dialogue or tool-calling features for desktop and Android.
Engineers prepared to test model memory, GPU fallback, and binding behavior on every target device.

Who it’s NOT for

Browser-app developers: the README says there is no web export, and issue 111 tracks WASM support as a request.
Godot teams targeting iOS or Windows ARM64 teams: both platforms are listed as unsupported for those paths.
Godot developers whose model tools must await scene events: issue 203 says async tool calls are not supported by the current callback design.
Companies that must keep modifications to the engine proprietary when distributing them: the EUPL-1.2 section requires published source for modified versions of this repository.

Setup reality

Our sandbox installed 587 Rust packages in 84 seconds. The build then failed with exit code 101 after 124 seconds. Its log first reported missing rustfmt as non-fatal, then llama-cpp-sys-2 invoked CMake and gmake could not find a Makefile. The test command failed with the same exit code after 7 seconds and produced no test summary.

Users of a published binding get a shorter path through PyPI, npm, pub.dev, Maven Central, Swift Package Manager, or Godot AssetLib. Models still have to be supplied by local path, URL, or Hugging Face reference, and remote files download on first use. No hosted API key is required.

Source contributors work in ./nobodywho/. The Linux guide recommends Nix, flakes, a stable Rust toolchain, and a GGUF test model. Windows adds CMake, LLVM, MSVC, and the Vulkan SDK. Hardware acceleration and memory fit vary by platform, while CPU fallback remains available.

One Rust core serves 6 application bindings

NobodyWho wraps a shared Rust engine for Kotlin, Swift, React Native, Flutter, Python, and Godot. The core handles chat, templates, grammars, sampling, and context shifting. llama.cpp supplies text, vision, embeddings, and reranking, while ONNX Runtime handles speech recognition, speech generation, and voice activity detection. That makes the project more useful to app developers than another local chat window.

The API accepts a local model path, a URL, or a Hugging Face reference. GGUF chat models download and cache on first use, and the README suggests a roughly 330 MB Qwen3 0.6B model as a small integration check. Tool signatures can generate structured grammars without a separate schema. None of this requires a hosted API key, so prompts and model execution can stay on the device.

Memory and target support set the real boundary

Desktop support covers 64-bit Linux, macOS, and Windows, with one missing corner: Windows ARM64. macOS uses Metal, while Linux and Windows can use Vulkan and fall back to CPU. The README estimates free RAM at roughly 1.5 times the model file, or 2 times on a busy machine. It calls 8 GB a comfortable floor for models up to about 2 GB.

Mobile limits are more specific. The documented baseline is iPhone 11 with 4 GB of RAM, or Android hardware around Snapdragon 855, Adreno 640, and 6 GB. A phone needs about twice the model file size in available memory, according to the README. Godot exports to desktop and Android but not iOS. There is no browser export, and issue 111 remains the public request for WASM support.

What happened when we ran it

We cloned commit e295839 into a 3-CPU, 12 GB Rust sandbox. The project lives under ./nobodywho/. Installation succeeded in 84 seconds and installed 587 packages. The repository contained 1,098 files, about 93,242 lines of source, and occupied 24.7 MB before the installed toolchain and dependencies. Our scan found 16 CI workflow files, no Dockerfile, and no tests directory.

The source build failed with exit code 101 after 124 seconds. The log says rustfmt was not installed for Rust 1.98.0, labels that condition non-fatal, and continues. Later, the llama-cpp-sys-2 build script called CMake's build step. gmake reported that no Makefile existed and had no target to run, after which the Rust build script panicked. The tail does not show why the Makefile was absent.

Tests then failed with exit code 101 after 7 seconds. Their tail repeats the non-fatal rustfmt message and the same missing-Makefile failure from llama-cpp-sys-2. No test summary was produced, so there is no passed or failed test count to report. This is a build prerequisite or generation failure in our fresh container, not a measurement of model correctness, response speed, or any published package.

Published packages avoid most source-build machinery

Python users can install from PyPI, React Native from npm, Flutter from pub.dev, Kotlin from Maven Central, Swift through Swift Package Manager, and Godot through AssetLib. The Godot instructions require version 4.5 or newer and an import option called Ignore asset root. An experimental local server exposes models and chat completions on port 8888 through an OpenAI-shaped API.

Building the workspace asks more. The Linux contribution guide recommends Nix with flakes, a stable Rust toolchain, and a local Qwen 2.5 1.5B Instruct GGUF file through TEST_MODEL. Windows contributors need CMake, LLVM, MSVC, and the Vulkan SDK. Those requirements explain why a package consumer and a core contributor have very different setup experiences. Start with the package for your binding unless you need to change the engine.

Godot tool calls still have a main-thread gap

Issue 203 documents that Godot tool callbacks cannot await asynchronous results under the current interface. The model invokes the callable from a worker thread, while some Godot operations must run on the main thread. Issue 513 gives concrete examples such as changing a door texture or waiting for a player to choose an item. Workarounds involve deferred calls and extra synchronization state.

That constraint matters for games because tool use often changes scenes, waits for animation, or asks the player for input. Synchronous data lookups are a better fit today. The README's type-safe tool grammar solves argument shape; it does not solve thread ownership or awaiting a signal. Prototype one representative scene interaction before designing an NPC system around these callbacks.

September releases show active multi-binding work

GitHub recorded 1,395 stars, 19 combined open issues and pull requests, and a push on September 25, 2026. Recent releases include Swift 4.0.0, React Native 4.0.0, Kotlin 4.0.0, Flutter 4.0.0, Python 3.0.0, and Godot 11.0.0. Current pull requests cover llama.cpp updates, speech quantization fixes, Android backends, and configurable context shifting.

NobodyWho earns a trial when one local feature must ship through several of its 6 bindings. The packaged APIs and frank platform table reduce discovery work. Source adoption is harder to recommend from our evidence because the 587-package setup reached neither a successful build nor a test summary. Prove the exact model, memory budget, binding, and device first. That result matters more than support listed at the framework level.

Alternatives

ProjectWhat it isPick it when
llama.cpp gh↗The underlying C and C++ inference project for GGUF models and local servers.pick this instead when you want direct control of the inference engine and do not need NobodyWho's shared mobile and framework bindings.
Ollama gh↗A local model runner with a CLI, model library, and HTTP API.pick this instead when a desktop or server process is acceptable and app-embedded mobile inference is not required.
MLC LLMA compiler-based deployment stack for language models across GPUs, browsers, and mobile devices.pick this instead when web deployment or compiler-tuned runtimes matter more than NobodyWho's high-level cross-language API.

What people are saying

  1. [github-trending] nobodywho-ooo/nobodywho

Sources

  1. NobodyWho repository and README
  2. NobodyWho contribution guide
  3. Issue 203: async Godot tool calls
  4. Issue 111: web export request
  5. NobodyWho releases

More ai tools reviews

desktop-cc-gui · langextract · openrig · skills · awesome-grokbot · monty · the whole board →