On-device AI for any device.
NobodyWho is an inference engine that lets you run LLMs locally and efficiently.
- Run locally, offline — no API keys needed or hidden fees
- Run any chat LLM — Gemma, Qwen, Mistral and more
- Fast, type-safe tool calling — automatically generates structured grammars from your function signatures, no schema writing needed
- Multimodal input — provide image and audio information to your LLM
- Model downloading — load models directly from Hugging Face or any URL
- Conversation-aware preemptive context shifting — retain full conversation memory without any message length limits
- GPU-accelerated inference via Vulkan or Metal — runs fast on any OS
- Compatible with thousands of pre-trained LLMs — use any LLM in the GGUF format
- Powered by the wonderful llama.cpp
We support Swift, Python, Flutter, React Native and Godot.
| Platform | Installation | Documentation |
|---|---|---|
| Swift | SPM | docs.nobodywho.ooo/swift |
| React Native | npm | docs.nobodywho.ooo/react-native |
| Flutter | pub.dev | docs.nobodywho.ooo/flutter |
| Python | pypi | docs.nobodywho.ooo/python |
| Godot | AssetLib | docs.nobodywho.ooo/godot |
import NobodyWho
let chat = try await Chat.fromPath(
modelPath: "hf://NobodyWho/Qwen_Qwen3-0.6B-GGUF/Qwen_Qwen3-0.6B-Q4_K_M.gguf"
)
let response = try await chat.ask("What is the capital of Denmark?").completed()
print(response) // The capital of Denmark is Copenhagen.Add via Swift Package Manager:
https://github.com/nobodywho-ooo/nobodywho-swift.git
import { Chat } from "react-native-nobodywho";
const chat = await Chat.fromPath({
modelPath: "hf://NobodyWho/Qwen_Qwen3-0.6B-GGUF/Qwen_Qwen3-0.6B-Q4_K_M.gguf",
});
const msg = await chat.ask("What is the capital of Denmark?").completed();
console.log(msg); // The capital of Denmark is Copenhagen.Install via npm:
npm install react-native-nobodywho
React Native documentation - npm - starter example app
import 'package:nobodywho/nobodywho.dart' as nobodywho;
void main() async {
await nobodywho.NobodyWho.init();
final chat = await nobodywho.Chat.fromPath(
modelPath: 'huggingface:NobodyWho/Qwen_Qwen3-0.6B-GGUF/Qwen_Qwen3-0.6B-Q4_K_M.gguf',
);
final msg = await chat.ask('What is the capital of Denmark?').completed();
print(msg); // The capital of Denmark is Copenhagen.
}Install via pub.dev:
flutter pub add nobodywho
Flutter documentation - pub.dev - starter example app
from nobodywho import Chat
chat = Chat("huggingface:NobodyWho/Qwen_Qwen3-0.6B-GGUF/Qwen_Qwen3-0.6B-Q4_K_M.gguf")
response = chat.ask("What is the capital of Denmark?").completed()
print(response) // The capital of Denmark is Copenhagen.Install via pip:
pip install nobodywhoYou can install it from inside the Godot editor: In Godot 4.5+, go to AssetLib and search for "NobodyWho".
...or you can grab a specific version from our github releases page. You can install these zip files by going to the "AssetLib" tab in Godot and selecting "Import".
Make sure that the ignore asset root option is set in the import dialogue.
For further instructions on how to setup NobodyWho in Godot please refer to our docs.
The documentation has everything you might want to know: https://docs.nobodywho.ooo/
- ⭐ Star the repo and spread the word about NobodyWho!
- Join our Discord or Matrix communities
- Found a bug? Open an issue!
- Submit your own PR - contributions welcome
- Help improve docs, write tutorials and demos
Desktop (Linux, macOS, Windows) is supported across all bindings. Android is supported on Godot, Flutter and React Native. iOS is supported on Swift, Flutter and React Native. visionOS and watchOS are supported via the Swift package.
Web exports will be a bit trickier to get right. See issue #111.
There has been some confusion about the licensing terms of NobodyWho. To clarify:
Linking two programs or linking an existing software with your own work does not – at least under European law – produce a derivative or extend the coverage of the linked software licence to your own work. [1]
You are allowed to use this plugin in proprietary and commercial projects, free of charge.
If you distribute modified versions of the code in this repo, you must open source those changes.
Feel free to make proprietary projects using NobodyWho, but don't make a proprietary fork of NobodyWho.