This document serves as a comprehensive guide for all team members when developing LobeChat.
You are developing an open-source, modern-design AI Agent Workspace: LobeHub (previously LobeChat).
- Frontend: Next.js 16, React 19, TypeScript
- UI Components: Ant Design, @lobehub/ui, antd-style
- State Management: Zustand, SWR
- Database: PostgreSQL, PGLite, Drizzle ORM
- Testing: Vitest, Testing Library
- Package Manager: pnpm (monorepo structure)
lobe-chat/
├── apps/desktop/ # Electron desktop app
├── packages/ # Shared packages (@lobechat/*)
│ ├── database/ # Database schemas, models, repositories
│ ├── agent-runtime/ # Agent runtime
│ └── ...
├── src/
│ ├── app/ # Next.js app router
│ ├── store/ # Zustand stores
│ ├── services/ # Client services
│ ├── server/ # Server services and routers
│ └── ...
├── .agents/skills/ # AI development skills
└── e2e/ # E2E tests (Cucumber + Playwright)
- The current release branch is
nextuntil v2.0.0 is officially released - Use rebase for git pull
- Git commit messages should prefix with gitmoji
- Git branch name format:
username/feat/feature-name - Use
.github/PULL_REQUEST_TEMPLATE.mdfor PR descriptions - PR titles with
✨ feat/or🐛 fixtrigger releases
- Use
pnpmas the primary package manager - Use
bunto run npm scripts - Use
bunxto run executable npm packages
- Prefer interfaces over types for object shapes
# Web tests
bunx vitest run --silent='passed-only' '[file-path-pattern]'
# Package tests (e.g., database)
cd packages/[package-name] && bunx vitest run --silent='passed-only' '[file-path-pattern]'Important Notes:
- Wrap file paths in single quotes to avoid shell expansion
- Never run
bun run test- this runs all tests and takes ~10 minutes
- Use
bun run type-checkto check for type errors
- Keys: Add to
src/locales/default/namespace.ts - Dev: Translate
locales/zh-CN/namespace.jsonlocale file only for preview - DON'T run
pnpm i18n, let CI auto handle it
Follow Linear rules in CLAUDE.md when working with Linear issues.
All AI development skills are available in .agents/skills/ directory:
| Category | Skills |
|---|---|
| Frontend | react, typescript, i18n, microcopy |
| State | zustand |
| Backend | drizzle |
| Desktop | desktop |
| Testing | testing |
| UI | modal, hotkey, recent-data |
| Config | add-provider-doc, add-setting-env |
| Workflow | linear, debug |
| Performance | vercel-react-best-practices |
| Overview | project-overview |