Developer Hub
Build applications powered by local AI. Our SDKs, tutorials, and the broader ecosystem of developer tools.
Our SDKs
Mullama
Multi-language inference engine with Python, Node.js, Go, Rust, PHP, C/C++ bindings.
MobileLlamafu
Flutter plugin for on-device AI on Android and iOS. Text, chat, vision, function calling.
EducationalZigLLM
Learn transformer internals from first principles in Zig. 18 architectures, 285+ tests.
Tutorial Series
Build a Local AI Chatbot
From setup to deployment — build a chatbot with Mullama in Python and Node.js.
5 partsMobile AI with Flutter
Build on-device AI apps for Android and iOS with Llamafu.
4 partsUnderstanding Transformers
Learn how transformers work from tensors to text generation with ZigLLM.
6 partsEcosystem Frameworks
Popular frameworks that work with local AI models:
Choosing an SDK
These three cover three different jobs rather than competing for the same one. Mullama is the pick for a server or desktop application that needs an in-process inference engine — its six native language bindings (Python, Node.js, Go, Rust, PHP, and C/C++) mean it's called directly from your application code rather than through a separate HTTP daemon, which matters when you want to embed inference inside an existing backend rather than run a standalone model server next to it. Llamafu is the pick specifically for a Flutter mobile app: it wraps on-device inference (text, chat, vision, and function calling) behind Flutter's plugin interface, so it's not a general-purpose SDK competing with Mullama, only the right choice once your target is an Android or iOS app built in Flutter.
ZigLLM is different in kind, not just in language: it's built to be read, not just called. Eighteen model architectures implemented from first principles with over 285 tests exist so a developer can step through how attention, quantization, and sampling actually work in a language without hidden runtime behavior, rather than to serve production traffic. If your goal is production inference, use Mullama or Llamafu; if your goal is understanding how the inference you're calling actually works underneath, ZigLLM is written for exactly that.
Pairing an SDK with an application framework
LangChain, LlamaIndex, Haystack, and Semantic Kernel all operate one layer up from an inference engine: they orchestrate chains, retrieval, and agent logic, and expect a model endpoint underneath rather than replacing one. Mullama's daemon mode ships an Ollama-compatible CLI and API specifically so a stack already wired up against Ollama's endpoint can point at Mullama instead without a rewrite; its embedded mode is the other option, calling the model directly from your language of choice with no network hop or separate process at all, which is the mode most of these orchestration frameworks aren't built to talk to directly. None of the four frameworks currently ship a Flutter integration, so a Llamafu-based mobile app generally implements its own lightweight orchestration rather than pulling in one of them.
The tutorial series above are the fastest way to see each of these SDKs against a real task rather than reading API docs cold: the chatbot series pairs Mullama with both Python and Node.js so polyglot teams can compare the two bindings directly, the mobile series builds a working Llamafu app end to end on Flutter, and the transformers series uses ZigLLM's from-scratch implementation to walk through the architecture a model like Llama or Qwen is actually built on rather than treating it as a black box. If you're building past a single chatbot into something that calls tools on its own, see our guide to local AI agents, function calling, and MCP.