PluginBench
Skill
Pass
Audit score 90

project-overview

lobehub/lobehub

OSS repository map and code-layer lookup for LobeHub AI Agent Workspace.

What is project-overview?

Project-overview is a reference skill for navigating the LobeHub monorepo structure, understanding code ownership across apps/packages/src, and locating business stubs. Use it when you need to find where features, stores, services, or database models live in the codebase.

  • Maps monorepo layout: apps/, packages/, src/ directories and their purposes
  • Identifies code-layer ownership: UI components, stores, services, API routers, database models
  • Locates business stubs in src/business/ and packages/business/ (open-source placeholders)
  • Documents complete tech stack: Next.js 16, React 19, TypeScript, Zustand, tRPC, PostgreSQL/Drizzle
  • Explains data flow from React UI through stores, services, tRPC, and database
  • Clarifies relationship to cloud repo and file-resolution override order

How to install project-overview

npx skills add https://github.com/lobehub/lobehub --skill project-overview
Claude Code
Cursor
Windsurf
Cline

How to use project-overview

  1. 1.Reference the monorepo layout section to understand directory structure
  2. 2.Use the architecture map table to locate code by layer (UI, stores, services, API, database)
  3. 3.Check the data flow diagram to trace how requests move through the system
  4. 4.Consult the business stub note to distinguish open-source stubs from cloud overrides
  5. 5.Run `ls` against actual directories for the current set of packages and stores

Use cases

Good for
  • Finding where a specific feature or store is located in the monorepo
  • Understanding the architecture layer for a given component (UI, router, service, database)
  • Locating builtin tools, model definitions, or provider implementations
  • Identifying which business stub files are open-source vs. cloud-only
  • Navigating the tRPC router structure for backend endpoints
Who it's for
  • LobeHub contributors and maintainers
  • Developers extending LobeHub with new features or tools
  • Teams integrating LobeHub as a submodule in a cloud SaaS repo
  • Engineers onboarding to the codebase

project-overview FAQ

Where are Zustand stores defined?

In `src/store/` (~30 stores); run `ls` to see the full current set.

How do I find a tRPC router?

tRPC routers are in `apps/server/src/routers/{async|lambda|mobile|tools}` organized by endpoint type.

What are business stubs?

Open-source placeholder implementations in `src/business/` and `packages/business/` that are overridden by the private cloud repo's real implementations.

Where is the database schema defined?

Database schema lives in `packages/database/src/schemas`; models in `src/models`; repositories in `src/repositories`.

How does the cloud repo override this repo?

The cloud repo mounts this repo as a git submodule and uses file-resolution order to shadow stubs: cloud `src/store/x` wins over `lobehub/src/store/x`.

Full instructions (SKILL.md)

Source of truth, from lobehub/lobehub.


name: project-overview description: 'Use for the OSS repository map, code-layer lookup, apps/packages/src ownership and business stubs.' user-invocable: false

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). 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

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

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
│   └── server/               # Next.js-backed server (`@/server/*` alias)
│       └── src/
│           ├── router-hono/  # Hono endpoint routers and standalone runtime
│           └── ...           # featureFlags, globalConfig, modules, routers, services, utils, workflows
├── 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}
│   ├── locales/              # i18n source of truth: packages/locales/src/default/
│   ├── env/                  # env schemas (@/envs/* → packages/env/src/*)
│   ├── app-config/
│   ├── 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
    │   └── spa-auth/         # Auth HTML shell (SSR)
    ├── routes/               # SPA page segments (thin — delegate to features/)
    │   └── (main)/ (mobile)/ (desktop)/ (popup)/ auth/ 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
    └── ...                   # components, hooks, layout, libs, services, types, utils

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 Routersapps/server/src/routers/{async|lambda|mobile|tools}
Server Servicesapps/server/src/services (can access DB)
Server Modulesapps/server/src/modules (no DB access)
Feature Flagsapps/server/src/featureFlags
Global Configapps/server/src/globalConfig
DB Schemapackages/database/src/schemas
DB Modelpackages/database/src/models
DB Repositorypackages/database/src/repositories
Third-partysrc/libs (analytics, oidc, etc.)
Builtin Toolspackages/builtin-tool-*, packages/builtin-tools
Open-source stubsrc/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 → cloud src/store/x first, 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.