# llonebot/luckylilliabot architecture

> Architecture diagram of the GitHub repository llonebot/luckylilliabot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/llonebot/luckylilliabot
- Repository: https://github.com/llonebot/luckylilliabot

## Overview

LLBot is a QQ bot runtime that logs into QQ and exposes bot capabilities through OneBot 11, Satori, and Milky interfaces, with a WebUI for login, configuration, and WebQQ. The main runtime selects a QQ protocol implementation, loads the bot core and adapters, then starts the WebUI; clients use an adapter to issue actions or receive events. The tree documents additional message, group, user, and file capabilities. Sampled excerpts confirm runtime startup, Satori-to-OneBot action dispatch, WebUI APIs, and Milky webhook delivery; links between unsampled subsystems are intentionally limited.

Main entry points: [`src/main/main.ts`](https://github.com/llonebot/luckylilliabot/blob/main/src/main/main.ts) (Runtime startup), [`src/milky/adapter.ts`](https://github.com/llonebot/luckylilliabot/blob/main/src/milky/adapter.ts) (Milky adapter), [`src/main/qqProtocol/direct-lib/client.ts`](https://github.com/llonebot/luckylilliabot/blob/main/src/main/qqProtocol/direct-lib/client.ts) (Direct client), [`src/onebot11/adapter.ts`](https://github.com/llonebot/luckylilliabot/blob/main/src/onebot11/adapter.ts) (OneBot adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime and QQ"]
  node_main["Runtime startup<br/>[main.ts]"]
  node_qq_protocol["QQ protocol<br/>[index.ts]"]
  node_direct["Direct client<br/>[client.ts]"]
end

subgraph group_botapi["Bot capabilities"]
  node_nt_core["Bot core<br/>[core.ts]"]
  node_nt_api["QQ APIs<br/>[index.ts]"]
end

subgraph group_interfaces["Bot interfaces"]
  node_ob11["OneBot adapter<br/>[adapter.ts]"]
  node_ob_actions["OneBot actions<br/>[index.ts]"]
  node_satori["Satori server<br/>[server.ts]"]
  node_milky["Milky adapter<br/>[adapter.ts]"]
  node_milky_api["Milky APIs<br/>[index.ts]"]
  node_milky_network["Milky network<br/>[index.ts]"]
end

subgraph group_webui["Web management"]
  node_web_server["WebUI server<br/>[server.ts]"]
  node_web_routes["WebUI routes<br/>[index.ts]"]
  node_web_app["WebUI app<br/>[App.tsx]"]
end

subgraph group_integrations["External delivery"]
  node_milky_webhook["Webhook delivery<br/>[webhook.ts]"]
  node_email_service["Email service<br/>[emailService.ts]"]
end

node_operator(("Bot operator"))
node_bot_client(("Bot client"))
node_qq(("QQ service"))
node_smtp(("SMTP server"))

node_operator -->|"configures"| node_web_app
node_web_app -->|"calls APIs"| node_web_server
node_web_server -->|"routes requests"| node_web_routes
node_main -->|"selects protocol"| node_qq_protocol
node_main -->|"loads core"| node_nt_core
node_main -->|"loads adapter"| node_ob11
node_main -->|"loads adapter"| node_satori
node_qq_protocol -.->|"selects direct"| node_direct
node_direct -->|"connects"| node_qq
node_qq -->|"sends packets"| node_direct
node_bot_client -->|"sends actions"| node_ob11
node_ob11 -->|"dispatches actions"| node_ob_actions
node_ob_actions -->|"invokes APIs"| node_nt_api
node_satori -->|"dispatches actions"| node_ob_actions
node_bot_client -->|"calls methods"| node_satori
node_bot_client -->|"connects"| node_milky_network
node_milky_network -->|"routes requests"| node_milky
node_milky -->|"handles methods"| node_milky_api
node_milky -->|"broadcasts events"| node_milky_webhook
node_milky_webhook -->|"posts webhook"| node_smtp
node_email_service -.->|"sends mail"| node_smtp
node_web_routes -->|"uses bot services"| node_nt_api

click node_main "https://github.com/llonebot/luckylilliabot/blob/main/src/main/main.ts"
click node_qq_protocol "https://github.com/llonebot/luckylilliabot/blob/main/src/main/qqProtocol/index.ts"
click node_direct "https://github.com/llonebot/luckylilliabot/blob/main/src/main/qqProtocol/direct-lib/client.ts"
click node_nt_core "https://github.com/llonebot/luckylilliabot/blob/main/src/ntqqapi/core.ts"
click node_nt_api "https://github.com/llonebot/luckylilliabot/blob/main/src/ntqqapi/api/index.ts"
click node_ob11 "https://github.com/llonebot/luckylilliabot/blob/main/src/onebot11/adapter.ts"
click node_ob_actions "https://github.com/llonebot/luckylilliabot/blob/main/src/onebot11/action/index.ts"
click node_satori "https://github.com/llonebot/luckylilliabot/blob/main/src/satori/server.ts"
click node_milky "https://github.com/llonebot/luckylilliabot/blob/main/src/milky/adapter.ts"
click node_milky_api "https://github.com/llonebot/luckylilliabot/blob/main/src/milky/api/index.ts"
click node_milky_network "https://github.com/llonebot/luckylilliabot/blob/main/src/milky/network/index.ts"
click node_milky_webhook "https://github.com/llonebot/luckylilliabot/blob/main/src/milky/network/webhook.ts"
click node_web_server "https://github.com/llonebot/luckylilliabot/blob/main/src/webui/BE/server.ts"
click node_web_routes "https://github.com/llonebot/luckylilliabot/blob/main/src/webui/BE/routes/index.ts"
click node_web_app "https://github.com/llonebot/luckylilliabot/blob/main/src/webui/FE/App.tsx"
click node_email_service "https://github.com/llonebot/luckylilliabot/blob/main/src/common/emailService.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_qq_protocol,node_direct,node_bot_client toneBlue
class node_nt_core,node_nt_api toneAmber
class node_ob11,node_ob_actions,node_satori,node_milky,node_milky_api,node_milky_network,node_smtp toneMint
class node_web_server,node_web_routes,node_web_app toneRose
class node_milky_webhook,node_email_service,node_operator,node_qq toneIndigo
```

## Components

### Runtime and QQ

- [Runtime startup](https://github.com/llonebot/luckylilliabot/blob/main/src/main/main.ts): `src/main/main.ts`
- [QQ protocol](https://github.com/llonebot/luckylilliabot/blob/main/src/main/qqProtocol/index.ts): `src/main/qqProtocol/index.ts`
- [Direct client](https://github.com/llonebot/luckylilliabot/blob/main/src/main/qqProtocol/direct-lib/client.ts): `src/main/qqProtocol/direct-lib/client.ts`

### Bot capabilities

- [Bot core](https://github.com/llonebot/luckylilliabot/blob/main/src/ntqqapi/core.ts): `src/ntqqapi/core.ts`
- [QQ APIs](https://github.com/llonebot/luckylilliabot/blob/main/src/ntqqapi/api/index.ts): `src/ntqqapi/api/index.ts`

### Bot interfaces

- [OneBot adapter](https://github.com/llonebot/luckylilliabot/blob/main/src/onebot11/adapter.ts): `src/onebot11/adapter.ts`
- [OneBot actions](https://github.com/llonebot/luckylilliabot/blob/main/src/onebot11/action/index.ts): `src/onebot11/action/index.ts`
- [Satori server](https://github.com/llonebot/luckylilliabot/blob/main/src/satori/server.ts): `src/satori/server.ts`
- [Milky adapter](https://github.com/llonebot/luckylilliabot/blob/main/src/milky/adapter.ts): `src/milky/adapter.ts`
- [Milky APIs](https://github.com/llonebot/luckylilliabot/blob/main/src/milky/api/index.ts): `src/milky/api/index.ts`
- [Milky network](https://github.com/llonebot/luckylilliabot/blob/main/src/milky/network/index.ts): `src/milky/network/index.ts`

### Web management

- [WebUI server](https://github.com/llonebot/luckylilliabot/blob/main/src/webui/BE/server.ts): `src/webui/BE/server.ts`
- [WebUI routes](https://github.com/llonebot/luckylilliabot/blob/main/src/webui/BE/routes/index.ts): `src/webui/BE/routes/index.ts`
- [WebUI app](https://github.com/llonebot/luckylilliabot/blob/main/src/webui/FE/App.tsx): `src/webui/FE/App.tsx`

### External delivery

- [Webhook delivery](https://github.com/llonebot/luckylilliabot/blob/main/src/milky/network/webhook.ts): `src/milky/network/webhook.ts`
- [Email service](https://github.com/llonebot/luckylilliabot/blob/main/src/common/emailService.ts): `src/common/emailService.ts`

### Other components

- **Bot operator**
- **Bot client**
- **QQ service**
- **SMTP server**

## Connections

- Bot operator → WebUI app: configures
- WebUI app → WebUI server: calls APIs
- WebUI server → WebUI routes: routes requests
- Runtime startup → QQ protocol: selects protocol
- Runtime startup → Bot core: loads core
- Runtime startup → OneBot adapter: loads adapter
- Runtime startup → Satori server: loads adapter
- QQ protocol → Direct client: selects direct
- Direct client → QQ service: connects
- QQ service → Direct client: sends packets
- Bot client → OneBot adapter: sends actions
- OneBot adapter → OneBot actions: dispatches actions
- OneBot actions → QQ APIs: invokes APIs
- Satori server → OneBot actions: dispatches actions
- Bot client → Satori server: calls methods
- Bot client → Milky network: connects
- Milky network → Milky adapter: routes requests
- Milky adapter → Milky APIs: handles methods
- Milky adapter → Webhook delivery: broadcasts events
- Webhook delivery → SMTP server: posts webhook
- Email service → SMTP server: sends mail
- WebUI routes → QQ APIs: uses bot services
