Back to Lobehub

LobeHub Project Overview

.agents/skills/project-overview/SKILL.md

2.2.06.5 KB
Original Source

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 — run ls against the real directory for the current set.

Project Description

Open-source, modern-design AI Agent Workspace: LobeHub (previously LobeChat).

Supported platforms:

  • Web desktop/mobile
  • Desktop (Electron)
  • Mobile app (React Native) — separate repo, already launched (not in this monorepo)

Logo emoji: 🤯

Complete Tech Stack

CategoryTechnology
FrameworkNext.js 16 + React 19
RoutingSPA inside Next.js with react-router-dom
LanguageTypeScript
UI Components@lobehub/ui, antd
CSS-in-JSantd-style
Iconslucide-react, @ant-design/icons
i18nreact-i18next
Statezustand
URL Paramsnuqs
Data FetchingSWR
React HooksaHooks
Date/Timedayjs
Utilitieses-toolkit
APITRPC (type-safe)
DatabaseNeon PostgreSQL + Drizzle ORM
TestingVitest

Exact versions live in the root package.json — check there, not here.

Monorepo Layout

This is a monorepo extending the open-source lobehub submodule. Two repos:

  • cloud repo rootsrc/ and packages/business/ (config, const, model-runtime) hold cloud-only SaaS code that overrides/extends the submodule. See AGENTS.md for the override mechanism.
  • lobehub/ submodule — the open-source product core.

lobehub/ submodule — key directories

lobehub/
├── apps/
│   ├── cli/                 # LobeHub CLI
│   ├── desktop/             # Electron desktop app
│   └── device-gateway/      # Device gateway service
├── 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
│   ├── agent-signal/         # Agent Signal pipeline
│   ├── builtin-tool-*/       # Builtin tool packages
│   ├── builtin-tools/        # Builtin tool registries
│   ├── context-engine/
│   ├── database/             # src/{models,schemas,repositories}
│   ├── model-bank/           # Model definitions & provider cards
│   ├── model-runtime/        # src/{core,providers}
│   ├── 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 (~50) overridden by cloud src/business/
    ├── features/             # Domain business components
    ├── store/                # ~28 zustand stores — `ls` for the full set
    ├── server/               # featureFlags, globalConfig, modules, routers, services
    └── ...                   # components, hooks, layout, libs, locales, services, types, utils

cloud repo — key directories

(cloud root)
├── packages/business/        # Cloud overrides: config, const, model-runtime
├── src/
│   ├── business/             # Cloud impls of submodule stubs (client/server/locales)
│   ├── routes/               # Cloud-only route groups: (cloud)/, embed/
│   ├── store/                # Cloud-only stores (e.g. subscription/)
│   ├── server/               # Cloud routers & services (billing, budget, risk control...)
│   └── app/(backend)/cron/   # Vercel cron routes (schedules declared in root vercel.ts)
└── vercel.ts                 # Cron schedule declarations

File search rule: a path like @/store/x resolves cloud src/store/x first, then lobehub/packages/store/src/x, then lobehub/src/store/x. Cloud override wins.

Architecture Map

LayerLocation
UI Componentssrc/components, src/features
SPA Pagessrc/routes/
React Routersrc/spa/router/
Global Providerssrc/layout
Zustand Storessrc/store
Client Servicessrc/services/
REST APIsrc/app/(backend)/webapi
tRPC Routerssrc/server/routers/{async|lambda|mobile|tools}
Server Servicessrc/server/services (can access DB)
Server Modulessrc/server/modules (no DB access)
Feature Flagssrc/server/featureFlags
Global Configsrc/server/globalConfig
DB Schemapackages/database/src/schemas
DB Modelpackages/database/src/models
DB Repositorypackages/database/src/repositories
Third-partysrc/libs (analytics, oidc, etc.)
Builtin Toolssrc/tools, packages/builtin-tool-*
Cloud-onlysrc/business/*, packages/business/* (cloud repo)

Data Flow

React UI → Store Actions → Client Service → TRPC Lambda → Server Services → DB Model → PostgreSQL