Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

745 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English · 简体中文 · 日本語

Xybrid Logo

Xybrid

Run LLMs, ASR, and TTS natively in apps and games.
Flutter · Swift · Kotlin · Unity · Rust
Private, offline, no cloud required.

Docs Website Follow on X Discord

Build Release License OpenSSF Scorecard OpenSSF Best Practices
crates.io pub.dev Maven Central Swift Package Manager
Ask DeepWiki Stars Visitors

Desktop demo     Android demo

Start Here

Goal Path
Fastest demo (2 min) Install CLI →
Build a mobile or desktop app Flutter SDK →
Try the browser preview Web SDK →
Add AI NPCs to your game Unity SDK → and try the 3D tavern demo
Android native Kotlin SDK →
Rust / embedded Core crate →

Game demo

SDKs

Native SDKs are powered by the Rust runtime and expose its native model capabilities. The Browser/Web preview is a separate browser-native LiteRT.js adapter that consumes model_metadata.json and currently supports only LiteRT raw typed-tensor I/O.

SDK Platforms Install Status Sample
Flutter iOS, Android, macOS, Linux, Windows pub.dev Available README
Unity macOS, Windows, Linux, iOS, Android See below Available Unity 3D AI tavern
Swift iOS, macOS Swift Package Manager Coming Soon README
Kotlin Android Maven Central Available README
Browser/Web preview Modern browsers @xybrid/web Preview In-browser a+b demo
CLI macOS, Linux, Windows curl -sSL .../install.sh | sh Available
Rust All crates.io Available

The native SDKs share the Rust core; the Browser/Web preview does not and has the limited LiteRT tensor surface described above.


Quick Start

Install and run a model in your language of choice. Each section includes the install snippet and a minimal example.

See the full Installation Guide for all options.

Flutter

Install in pubspec.yaml:

dependencies:
  xybrid_flutter: ^0.4.1

Run a model:

final model = await Xybrid.model('kokoro-82m').load();
final result = await model.run(XybridEnvelope.text('Hello world'));
// result → 24kHz WAV audio

Kotlin

Install in build.gradle.kts:

dependencies {
    implementation("ai.xybrid:xybrid-kotlin:0.4.1")
}

Run a model:

val model = Xybrid.model("kokoro-82m").load()
val result = model.runAsync(Envelope.text("Hello world"))
// result → 24kHz WAV audio

Swift

Install in Package.swift:

dependencies: [
    .package(url: "https://github.com/xybrid-ai/xybrid.git", from: "0.4.1")
]

Run a model:

let model = try await Xybrid.model("kokoro-82m").load()
let result = try await model.runAsync(envelope: Envelope.text("Hello world"))
// result → 24kHz WAV audio

Unity

Install via OpenUPMopenupm add ai.xybrid.sdk, or add the https://package.openupm.com scoped registry for scope ai.xybrid — or straight from the git subfolder:

https://github.com/xybrid-ai/xybrid.git?path=/bindings/unity

Native libraries download automatically on import. See the Unity SDK README for details.

Run a model:

var model = XybridClient.LoadModel("kokoro-82m");
var result = model.Run(Envelope.Text("Hello world"));
// result → 24kHz WAV audio

Rust

Install in Cargo.toml:

[dependencies]
xybrid = "0.4.1"

Run a model:

let model = Xybrid::model("kokoro-82m").load()?;
let result = model.run(&Envelope::text("Hello world"))?;
// result → 24kHz WAV audio

CLI

Install:

# macOS / Linux
curl -sSL https://raw.githubusercontent.com/xybrid-ai/xybrid/master/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/xybrid-ai/xybrid/master/install.ps1 | iex

Run a model:

xybrid run --model kokoro-82m --input-text "Hello world" -o output.wav

For platform-specific setup, see each SDK's README: Flutter · Unity · Swift · Kotlin · Rust.

Multi-Model Inference Pipelines — MMP (Experimental)

Chain models together into a single multi-model inference pipeline (MMP) — build a voice assistant in 3 lines of YAML:

# voice-assistant.yaml
name: voice-assistant
stages:
  - model: whisper-tiny-ggml  # Speech → text
  - model: qwen2.5-0.5b       # Process with LLM
  - model: kokoro-82m         # Text → speech

CLI:

xybrid run --config voice-assistant.yaml --input-audio question.wav -o response.wav

Flutter:

final pipeline = Xybrid.pipeline(yaml: yamlString);
final result = await pipeline.run(XybridEnvelope.audio(bytes: audioBytes, sampleRate: 16000));

Kotlin:

// Multi-model pipeline (MMP) support coming soon — use single model loading for now

Swift:

// Multi-model pipeline (MMP) support coming soon — use single model loading for now

Unity (C#):

// Multi-model pipeline (MMP) support coming soon — use single model loading for now

Rust:

let pipeline = Xybrid::pipeline(&yaml_string).load()?;
pipeline.load_models()?;
let result = pipeline.run(&Envelope::audio(audio_bytes))?;

Supported Models

All models run entirely on-device. No cloud, no API keys required. Browse the full registry with xybrid models list.

Start with these

Model Type Params Why start here
SmolLM2 360M LLM 360M Best quality-to-size ratio for any device
Kokoro 82M TTS 82M High-quality speech, 24 voices, fast
Whisper Tiny ASR 39M Accurate multilingual transcription

Speech-to-Text

Model Params Format Description
Whisper Tiny (whisper-tiny-ggml) 39M GGML Q5_1 Multilingual transcription on whisper.cpp — in every platform preset
Whisper Tiny (whisper-tiny) 39M SafeTensors Same weights on the Candle runtime — needs a build with the candle feature
Wav2Vec2 Base 95M ONNX English ASR with CTC decoding

Text-to-Speech

Model Params Format Description
Kokoro 82M 82M ONNX High-quality, 24 natural voices
KittenTTS Nano 15M ONNX Ultra-lightweight, 8 voices

Language Models

Model Params Format Description
Gemma 3 1B 1B GGUF Q4_K_M Google's mobile-optimized LLM
LFM2.5 230M 230M GGUF Q4_K_M Liquid AI's smallest hybrid conv+attention LLM for edge devices
LFM2.5 350M 354M GGUF Q4_K_M Liquid AI's hybrid conv+attention, 9 languages, tool calling
LFM2.5 1.2B Thinking 1.2B GGUF Q4_K_M Liquid AI reasoning model — chain-of-thought via reasoningContent (guide)
Llama 3.2 1B 1B GGUF Q4_K_M Meta's general purpose, 128K context
Qwen 2.5 0.5B 500M GGUF Q4_K_M Compact on-device chat
Qwen 3.5 0.8B 800M GGUF Q4_K_M Latest Qwen with reasoning (thinking mode)
Qwen 3.5 2B 2B GGUF Q4_K_M Larger Qwen 3.5 with extended reasoning
SmolLM2 360M 360M GGUF Q4_K_M Best tiny LLM, excellent quality/size ratio

Vision-Language

Model Params Format Description
LFM2-VL 450M 450M GGUF Q4_0 + mmproj Liquid AI's compact VLM (SigLIP2 vision) — image + text in, runs via llama.cpp mtmd

Coming Soon

Model Type Params Priority Status
Phi-4 Mini LLM 3.8B P2 Spec Ready (first multi-quant: Q4, Q8, FP16)
Qwen3 0.6B LLM 600M P2 Planned
Trinity Nano LLM (MoE) 6B (1B active) P2 Planned
LFM2-VL 700M Vision+LLM 700M P2 Planned
Nomic Embed Text v1.5 Embeddings 137M P1 Blocked (needs Tokenize/MeanPool steps)
Whisper Tiny CoreML ASR 39M P2 Planned
Qwen3-TTS 0.6B TTS 600M P2 Blocked (needs custom SafeTensors runtime)
Chatterbox Turbo TTS 350M P3 Blocked (needs ModelGraph template)

Bring Your Own Model (Experimental)

Note: BYM support is experimental. The model_metadata.json schema is stable, but the AI-assisted tooling (/xybrid-init) is under active development and may not handle all model types yet.

Xybrid works with any ONNX, GGUF, or SafeTensors model. You just need a model_metadata.json that tells xybrid how to run it.

With an AI assistant (Claude Code, Codex, etc.):

# Install xybrid skills into your project
curl -sSL https://raw.githubusercontent.com/xybrid-ai/xybrid/master/tools/scripts/install-skills.sh | sh

# Generate model_metadata.json from a HuggingFace model
claude /xybrid-init hexgrad/Kokoro-82M-v1.0-ONNX

Skills are agent-agnostic and live in agents/skills/. The installer symlinks them for Claude Code (.claude/skills) and Codex (.codex/skills).

Manually — create model_metadata.json in your model directory:

{
  "model_id": "my-model",
  "version": "1.0",
  "execution_template": { "type": "Onnx", "model_file": "model.onnx" },
  "preprocessing": [],
  "postprocessing": [],
  "files": ["model.onnx"],
  "metadata": { "task": "text-generation" }
}

See the model metadata docs for the full schema, or look at existing examples in integration-tests/fixtures/models/.


Features

Capability iOS Android macOS Linux Windows
Speech-to-Text
Text-to-Speech
Language Models
Vision Models
Tool Calling 🔜 🔜
Embeddings 🔜 🔜 🔜 🔜 🔜
Multi-Model Pipelines (MMP)
Model Download & Caching
Hardware Acceleration Metal, ANE CPU Metal, ANE CUDA, Vulkan CUDA

SDK MMP support: Flutter ✅ · Rust ✅ · Kotlin 🔜 · Swift 🔜 · Unity 🔜

Tool calling: local models call functions you define — your tools are plain data (Tool::function(...)) and the loop is your code, so any tooling plugs in. On-device via llama.cpp (LFM2 and gemma-4 protocols); Rust SDK and CLI today (xybrid repl ships built-in web_search + your own via --tools-file), Swift/Kotlin/Flutter bindings next. See the Tool Calling guide.


Why Xybrid?

  • Privacy first — All inference runs on-device. Your data never leaves the device. The SDK attaches a small fleet-attribution header on registry metadata calls — see registry telemetry.
  • Offline capable — No internet required after initial model download.
  • Cross-platform — One API across iOS, Android, macOS, Linux, and Windows.
  • Multi-model pipelines (MMP) — Chain models together (ASR → LLM → TTS) in a single call.
  • Hardware acceleration — Apple Neural Engine, Metal, CUDA, plus opt-in Vulkan for Linux llama.cpp builds.

How it compares

Xybrid Ollama llama.cpp ONNX Runtime
Mobile (iOS/Android)
Game engine (Unity)
Multi-model pipelines (MMP)
ASR + TTS + LLM in one SDK
Runs in-process (no server)
No cloud required

Community

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines on setting up your development environment, submitting pull requests, and adding new models.

New here? Browse the good first issue label for small, self-contained tasks. Tasks are also grouped by area: area: core, area: sdk, area: examples, area: bindings, area: tests. Medium-difficulty tasks live under help wanted.

Star History

Star History Chart

License

Apache License 2.0 — see LICENSE for details.