How Aikami is built — and how to run it yourself.
Architecture, self-hosting options, and the open-source stack behind the engine. Looking for the pitch instead? Back to the front page.
From browser to native desktop. Same world, same NPCs.
One world, every platform. The same world state streams in real time across the Web Client and the Tauri v2 desktop app — play in your browser, pick up on your desktop, same NPCs, same story. Saves live on your own machine first, with optional cloud sync for multi-device play.
Web Client
Svelte 5 + PixiJS v8
Play instantly in any modern browser — no install. A GPU-accelerated 2D render loop with offline PWA support, and LPC character sprites assembled at runtime.
Desktop
Tauri v2
Native desktop experience with Rust-powered performance. File system access, system tray, and multi-window support across Windows, macOS, and Linux.
Player moves, dialogue, combat
Source of truth — works offline
Optional — only if you sign in
Every write lands in your local database first. Cloud sync is an opt-in layer on top, so the game plays and saves with no account and no connection — sign in only if you want the same world on another device.
Self-Hosted AI: Ollama, vLLM, Docker — Cloud Coming Soon.
Aikami is built from the ground up for self-hosting and offline-first operation. Everything runs locally by default. Saves, assets, and world state can sync to Firebase for multi-device continuity, but it's completely optional — your world works perfectly offline with no internet connection. No vendor lock-in. No subscriptions. Just your hardware, your rules.
How to Run Aikami
The all-in option.Everything runs locally on your machine — no internet needed after initial setup. ComfyUI for image generation, Kokoro for TTS, Ollama for LLM — all bundled.
git clone https://github.com/BearlySleeping/aikami
cd aikami
docker compose up aikami-client
# Open http://localhost:5173Client only. Bring your own LLM/TTS/image endpoints or use BYOK.
git clone https://github.com/BearlySleeping/aikami
cd aikami
docker compose up aikami
# Includes: client, ComfyUI, Kokoro TTS,
# Ollama, Firebase emulators
# Everything runs locally. No internet.ComfyUI (default image gen) and Kokoro (default TTS) included. Swap for any supported provider via Settings — ElevenLabs, Stability AI, and more.
The offline-native option.Native desktop experience via Tauri v2. Run local LLM providers like Ollama or vLLM on your machine, or bring your own API keys for cloud providers.
# Download from GitHub Releases
# https://github.com/BearlySleeping/aikami/releases
# Or build from source
git clone https://github.com/BearlySleeping/aikami.git
cd aikami
bun install
bun tauri build
# Supports: Windows, macOS, Linux
# Local LLM via Ollama/vLLM or BYOK to any providerRust-powered. File system access, system tray, multi-window. Windows, macOS, Linux.
The fastest to try.Play directly in the browser. No download, no setup — just bring your own API keys for Anthropic, OpenAI, or any OpenAI-compatible endpoint.
# Launch the web client
# https://aikami.bearlysleeping.com
# Configure your API keys in Settings:
# - Anthropic (Claude)
# - OpenAI (GPT-4, GPT-4o)
# - Google Gemini
# - Any OpenAI-compatible endpoint
# TTS providers: ElevenLabs, OpenAI TTS,
# VOICEVOX, Fish Speech
# Image providers: DALL-E, Stability AI,
# NovelAI, fal.aiZero install. Mix and match providers per NPC role. Your keys, your data.
Zero Setup — Coming Soon
The lazy adventurer's option.Fully managed AI infrastructure hosted on Cloud Run. A pre-trained LLM fine-tuned specifically for Aikami handles text generation, with managed TTS and image generation services running alongside. No setup, no GPUs, no Docker. Just open your browser and play. Pay only for what you use.
Built on Modern Open-Source Foundation
Frontend
Svelte 5
SvelteKit 2 + Runes
Game Engine
PixiJS v8
+ bitECS
Local Storage
Turso
libSQL — source of truth
AI Runtime
Ollama
+ vLLM + BYOK
Voice & Image
Kokoro
+ ComfyUI
Desktop
Tauri v2
Rust-powered
Firebase sits on top for auth and optional cloud sync — never a boot dependency. The game reads and writes its local Turso database first, so it plays and saves with no account and no connection.