LobeHub Project Overview
The directory listings below are a curated map of key locations, not an exhaustive tree.
packages/,src/store/, route groups etc. grow over time β runlsagainst the real directory for the current set.
Project Description
Open-source, modern-design AI Agent Workspace: LobeHub (previously LobeChat). This repo is the open-source root (github.com/lobehub/lobehub, package @lobehub/lobehub).
Supported platforms:
- Web desktop/mobile
- Desktop (Electron) β
apps/desktop - Mobile app (React Native) β separate repo, already launched (not in this monorepo)
Logo emoji: π€―
Complete Tech Stack
| Category | Technology |
|---|---|
| Framework | Next.js 16 + React 19 |
| Routing | SPA inside Next.js with react-router-dom |
| Language | TypeScript |
| UI Components | @lobehub/ui, antd |
| CSS-in-JS | antd-style |
| Icons | lucide-react, @ant-design/icons |
| i18n | react-i18next |
| State | zustand |
| URL Params | nuqs |
| Data Fetching | SWR |
| React Hooks | aHooks |
| Date/Time | dayjs |
| Utilities | es-toolkit |
| API | TRPC (type-safe) |
| Database | Neon PostgreSQL + Drizzle ORM |
| Testing | Vitest |
Exact versions live in the root
package.jsonβ check there, not here.
Monorepo Layout
Flat layout β apps/, packages/, and src/ all sit at the repo root. No git submodules.
(repo root)
βββ apps/
β βββ cli/ # LobeHub CLI
β βββ desktop/ # Electron desktop app
β βββ device-gateway/ # Device gateway service
β βββ server/ # Next.js-backed server: featureFlags, globalConfig, modules, routers, services, utils, workflows (`@/server/*` alias)
βββ docs/ # changelog, development, self-hosting, usage
βββ locales/ # en-US, zh-CN, ...
βββ packages/ # ~80 @lobechat/* workspace packages β `ls` for the full set. Key ones:
β βββ agent-runtime/ # Agent runtime core
β βββ agent-signal/ # Agent Signal pipeline
β βββ agent-tracing/ # Tracing / snapshots
β βββ builtin-tool-*/ # Per-tool packages (calculator, web-browsing, claude-code, ...)
β βββ builtin-tools/ # Central registries that compose builtin-tool-*
β βββ context-engine/
β βββ database/ # src/{models,schemas,repositories}
β βββ model-bank/ # Model definitions & provider cards
β βββ model-runtime/ # src/{core,providers}
β βββ business/ # Open-source stubs (config, const, model-bank, model-runtime) β overridden by cloud
β βββ types/
β βββ utils/
βββ src/
βββ app/
β βββ (backend)/ # api, f, market, middleware, oidc, trpc, webapi
β βββ spa/ # SPA HTML template service
β βββ [variants]/(auth)/ # Auth pages (SSR required)
βββ routes/ # SPA page segments (thin β delegate to features/)
β βββ (main)/ (mobile)/ (desktop)/ (popup)/ onboarding/ share/
βββ spa/ # SPA entries + router config
β βββ entry.{web,mobile,desktop,popup}.tsx
β βββ router/
βββ business/ # Open-source stubs (client/server) β cloud repo provides real impls
βββ features/ # Domain business components
βββ store/ # ~30 zustand stores β `ls` for the full set
βββ server/ # standalone-Hono server pieces only: agent-hono, workflows-hono (main backend lives in `apps/server`)
βββ ... # components, hooks, layout, libs, locales, services, types, utils
Architecture Map
| Layer | Location | |||
|---|---|---|---|---|
| UI Components | src/components, src/features | |||
| SPA Pages | src/routes/ | |||
| React Router | src/spa/router/ | |||
| Global Providers | src/layout | |||
| Zustand Stores | src/store | |||
| Client Services | src/services/ | |||
| REST API | src/app/(backend)/webapi | |||
| tRPC Routers | `apps/server/src/routers/{async\ | lambda\ | mobile\ | tools}` |
| Server Services | apps/server/src/services (can access DB) | |||
| Server Modules | apps/server/src/modules (no DB access) | |||
| Feature Flags | apps/server/src/featureFlags | |||
| Global Config | apps/server/src/globalConfig | |||
| DB Schema | packages/database/src/schemas | |||
| DB Model | packages/database/src/models | |||
| DB Repository | packages/database/src/repositories | |||
| Third-party | src/libs (analytics, oidc, etc.) | |||
| Builtin Tools | packages/builtin-tool-*, packages/builtin-tools | |||
| Open-source stub | src/business/, packages/business/ (this repo) |
Data Flow
React UI β Store Actions β Client Service β TRPC Lambda β Server Services β DB Model β PostgreSQL
Note: Relationship to the Cloud Repo
This open-source repo is consumed by a separate, private cloud (SaaS) repo as a git submodule mounted at lobehub/. The cloud repo provides:
src/business/{client,server}and *packages/business/** implementations
that override the stubs shipped here.
- Cloud-only routes (e.g.
(cloud)/,embed/), cloud-only stores (e.g.
subscription/), cloud-only TRPC routers (billing, budget, risk control, β¦), and Vercel cron routes under src/app/(backend)/cron/.
- File-resolution order in cloud:
@/store/xβ cloudsrc/store/xfirst, then
lobehub/packages/store/src/x, then lobehub/src/store/x. Cloud override wins.
When working in this repo alone, ignore the cloud layer β the stubs in src/business/ and packages/business/ are the source of truth here.









