Announcing Kotlin bindings

Run any AI model on any device

Secure, fast & open-source

Run text, vision and speech models locally.

Pick any model from Hugging Face.

Mistral
Open AI
Liquid
Qwen
Deepseek
Gemma

Integrate

Start using AI in a few lines of code

import { Chat } from "react-native-nobodywho";

const chat = await Chat.fromPath({ modelPath: "./model.gguf" });
const response = await chat.ask("What is the capital of denmark?").completed();

// The capital of Denmark is Copenhagen.
import "dart:io"

final chat = await nobodywho.Chat.fromPath(modelPath: "./model.gguf");
final response = await chat.ask("What is the capital of denmark?").completed();

// The capital of Denmark is Copenhagen.
import ai.nobodywho.Chat
import kotlinx.coroutines.runBlocking

val chat = runBlocking { Chat.fromPath(modelPath = "./model.gguf") }
val response = runBlocking { 
    chat.ask("What is the capital of denmark?").completed() 
}

// The capital of Denmark is Copenhagen.
import NobodyWho

let chat = try await Chat.fromPath(modelPath: "./model.gguf")
let response = try await chat.ask(
    "What is the capital of denmark?"
).completed();

// The capital of Denmark is Copenhagen.
from nobodywho import Chat

chat = Chat("./model.gguf")
response: str = chat.ask("What is the capital of denmark?").completed()

# The capital of Denmark is Copenhagen.
extends NobodyWhoChat

func _ready():
    self.model_node = get_node("../ChatModel")

    self.response_updated.connect(_on_response_updated)
    self.response_finished.connect(_on_response_finished)

    self.start_worker()

    self.ask("What is the capital of denmark?")

func _on_response_finished(response):
    print(response)

# The capital of Denmark is Copenhagen.
const stt = new STT({source: "hf://onnx-community/whisper-base"});

const text = await stt.transcribeFile("recording.mp3").completed();
final stt = nobodywho.Stt(source: 'hf://onnx-community/whisper-base');

final text = await stt.transcribeFile('recording.mp3').completed();
val stt = Stt(source = "hf://onnx-community/whisper-base")

val text = stt.transcribeFile("recording.mp3").completed()
let stt = try STT(source: "hf://onnx-community/whisper-base")

let text = try await stt.transcribeFile(path: "recording.mp3").completed()
stt = STT(source="hf://onnx-community/whisper-base")

text = stt.transcribe_file("recording.mp3").completed()
stt.model_path = "hf://onnx-community/whisper-base"
stt.start_worker()
await stt.worker_started

stt.transcribe_file("res://recording.mp3")
var text = await stt.transcription_finished
const tts = await Tts.load({
  source: "NobodyWho/Kokoro-82M",
  voice: "bf_emma",
  language: "en-gb",
});

const wav = await tts.synthesize("Hello from NobodyWho!");
final tts = await nobodywho.Tts.load(
  source: 'NobodyWho/Kokoro-82M',
  voice: 'bf_emma',
  language: 'en-gb',
);

final wav = await tts.synthesize(text: 'Hello from NobodyWho!');
await File('out.wav').writeAsBytes(wav);
val tts = Tts.load(
    source = "NobodyWho/Kokoro-82M",
    voice = "bf_emma",
    language = "en-gb",
)

val wav = tts.synthesize(text = "Hello from NobodyWho!")
File("out.wav").writeBytes(wav)
let tts = try await Tts.load(
    source: "NobodyWho/Kokoro-82M",
    voice: "bf_emma",
    language: "en-gb"
)

let wav = try await tts.synthesize("Hello from NobodyWho!")
try wav.write(to: URL(fileURLWithPath: "out.wav"))
tts = Tts(
    source="NobodyWho/Kokoro-82M",
    voice="bf_emma",
    language="en-gb",
)

wav = tts.synthesize("Hello from NobodyWho!")
Path("out.wav").write_bytes(wav)
extends Node

@onready var tts: NobodyWhoTts = $NobodyWhoTts

func _ready():
    tts.source = "NobodyWho/Kokoro-82M"

    tts.start_worker()
    await tts.worker_started

    var result: Dictionary = await tts.synthesize("Hello from NobodyWho!")
    if not result.ok:
        push_error(result.error)
        return

    var file = FileAccess.open("user://out.wav", FileAccess.WRITE)

Run anywhere, no servers required.

On-device inference engine for smartwatch apps.

Apple Android Windows Linux

Fast & Secure inference

Bolt

Performance

Fast on any hardware

Optimized kernels for Metal, CUDA, and Vulkan. Get high-performance inference even on integrated graphics and mobile chips.

Lock

Privacy

Keep it private

Everything stays on your machine, no cloud logging, no exceptions. Your prompts never leave the memory of your local GPU.

Offline

Offline

No internet needed

Run models in flight or in secure environments.

Any model

Thousands of LLMs

Direct support for GGUF format.

Bank notes

$0

Free

Completely free, no API keys, or usage fees.

Model selection

European open-source AI

The library is open source under EUPL 1.2 and is free for both individuals and companies.