DEV Community

李春川
李春川

Posted on

Introducing IHUI-AI: 8 Platforms, 176 LLMs, 1 Codebase (Apache 2.0)

Introducing IHUI-AI: 8 Platforms, 176 LLMs, 1 Codebase

This is the first article in a 10-part series on building IHUI-AI — an 8-platform open-source AI operating system that unifies 176 large language models.

TL;DR

IHUI-AI is an open-source AI operating system that ships 8 fully-functional client apps (web, API, AI-service, CLI, desktop, browser extension, mobile, mini-program) from a single TypeScript codebase. It unifies 176 large language models (OpenAI, Anthropic, Gemini, DeepSeek, Qwen, GLM, Doubao, Kimi, Ollama, vLLM, ...) behind a 100% OpenAI-compatible API. Apache 2.0 licensed. 5 minutes from git clone to a running instance.

GitHub: https://github.com/IHUI-INF-AI/IHUI-AI

The problem

Building AI products today means juggling 5+ stacks:

  • Python backend for LLMs (FastAPI + LangChain)
  • TypeScript frontend (Next.js)
  • Mobile app (React Native or Swift/Kotlin)
  • Desktop wrapper (Electron or Tauri)
  • Browser extension (Chrome MV3)
  • CLI tool (Node.js or Python)
  • Mini-program (WeChat / Douyin / Alipay)

Each stack has its own auth, its own state management, its own LLM client. You duplicate the same business logic 5 times, fight 5 different type systems, and ship bugs 5 times faster.

The solution: 1 codebase, 8 clients

IHUI-AI ships 8 client applications from a single TypeScript codebase:

  • Web (Next.js 15 + React 19 + Tailwind 4)
  • API (Fastify 5, 1300+ routes)
  • AI Service (FastAPI + LangGraph, 50+ Agent graphs)
  • CLI (Node.js TUI REPL)
  • Desktop (Tauri 2.0, cross-platform, offline-capable)
  • Browser Extension (WXT + Chrome MV3)
  • Mobile (React Native + Expo, iOS + Android)
  • Mini-Program (Taro 4, WeChat + Douyin + Alipay + Baidu)

All 8 clients share 100% of TypeScript types, database schema, and API contracts. Change a route in apps/api, and the change is immediately typed in web/mobile/desktop/extension/miniapp/CLI.

176 LLM providers in one endpoint

from openai import OpenAI

client = OpenAI(
    api_key="ihui-local-dev-key",
    base_url="http://localhost:8802/v1"  # ← drop-in replacement
)

resp = client.chat.completions.create(
    model="auto-router",  # or any of 176 models
    messages=[{"role": "user", "content": "Hello!"}],
)
Enter fullscreen mode Exit fullscreen mode

The model field accepts any of:

  • OpenAI: gpt-4o, gpt-4-turbo, o1, o3, gpt-4o-mini
  • Anthropic: claude-opus-4, claude-sonnet-4, claude-haiku-4
  • Google: gemini-2.0-pro, gemini-2.0-flash
  • DeepSeek: deepseek-chat, deepseek-coder, deepseek-reasoner
  • Qwen: qwen-max, qwen-plus, qwen-turbo, qwen-coder
  • GLM: glm-4-plus, glm-4-flash, glm-4-coder
  • Doubao: doubao-pro, doubao-lite
  • Kimi: moonshot-v1-128k, kimi-k2
  • Ollama (local): llama3.3, qwen2.5, mistral
  • vLLM (local): any open-weights model
  • ... and 156 more

Production-grade, not a toy

Metric Value
Database tables 340 (with multi-tenant RLS)
Migrations 144
API endpoints 1300+
LangGraph Agent graphs 50+
MCP servers bundled 100+
GitHub Actions workflows 21
Pre-commit gatekeepers 33+
Test suites / cases 237 / 5346
E2E specs 63
API P99 latency < 80ms
Throughput 12k req/sec on 4-core

Quickstart

git clone https://github.com/IHUI-INF-AI/IHUI-AI
cd IHUI-AI
pnpm install
pnpm dev  # starts web (8801) + API (8802) + AI service (8803)
Enter fullscreen mode Exit fullscreen mode

Open https://ihui.ai for the live demo.

What's next

In the next 9 articles, I'll deep-dive into:

  • LangGraph state machine production patterns
  • MCP gateway implementation
  • 8-platform TypeScript sharing strategies
  • LiteLLM routing across 176 models
  • Multi-tenant RLS + audit chain
  • Tauri desktop engineering
  • React Native + Expo mobile patterns
  • Taro 4 mini-program multi-platform
  • Open-source business models

Follow me on dev.to or subscribe to the IHUI-AI newsletter to not miss them.

License

Apache-2.0 — free for commercial use, no restrictions.


🤖 Generated with love by the IHUI-AI team. Star us on GitHub if this was useful!

Top comments (0)