mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-03 12:27:41 +08:00
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com> Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
Cherry Studio Documentation
Guides
| Document | Description |
|---|---|
| Development Setup | Development environment setup |
| Contributing | How to contribute code |
| Branching Strategy | Git branching workflow |
| Test Plan | Test plan and release channels |
| i18n Guide | Internationalization guide |
| Logging Guide | How to use the logger service |
| Middleware | How to write AI Provider middleware |
References
Architecture
| Document | Description |
|---|---|
| Architecture Overview | System-wide architecture, process model, data flow |
AI Core
| Document | Description |
|---|---|
| AI Reference | Main-process AI pipeline: stream manager, agent loop, providers, tools |
| Core Architecture | End-to-end call flow from user input to LLM response |
| Stream Manager | Active-stream registry, broker, reconnect, persistence |
| Adapter Family | How endpoint → @ai-sdk/* package routing is decided |
Data System
| Document | Description |
|---|---|
| Data System Overview | System selection, architecture, and patterns |
| Boot Config Overview | Early boot configuration system |
| Boot Config Schema Guide | Adding new boot config keys |
| Cache Overview | Three-tier caching architecture and design invariants |
| Cache Usage | useCache hooks, direct API, Main-process subscriptions |
| Cache Schema Guide | Adding new cache keys (fixed and template) |
| Preference Overview | User settings management |
| Preference Usage | usePreference hook examples |
| Preference Schema Guide | Adding new preference keys |
| DataApi Overview | Business data API architecture |
| DataApi in Renderer | useQuery/useMutation patterns |
| DataApi in Main | Handlers, Services, Repositories |
| API Design Guidelines | RESTful design rules |
| API Types | API type system, schemas, error handling |
| Database Patterns | DB naming, schema patterns |
| Layered Preset Pattern | Presets with user overrides |
| V2 Migration Guide | Migration system |
Lifecycle System
| Document | Description |
|---|---|
| Lifecycle Overview | Architecture, decision guides, usage |
| Application Overview | Application bootstrap and shutdown |
| Lifecycle Internals | Phases, hooks, states |
| Lifecycle Usage | Full usage guide with examples |
| Lifecycle Decision Guide | Lifecycle vs singleton decision |
| Lifecycle Migration Guide | Migrating old services |
Messaging
| Document | Description |
|---|---|
| Message System | Message lifecycle, state management, operations |
| Composer Rich Clipboard | Private composer token clipboard format and copy/paste flow |
| Message Tree | Chat message-tree model: adjacency list, per-topic virtual root, sibling groups, invariants, delete semantics, getTree / flow-canvas contract |
| Chat UI Design & Conventions | How the chat UI is divided by responsibility (presentation / view-state / contracts / orchestration) and the conventions modules follow (context, refs, render stability) |
| Chat Adapters | The chat contract layer: projecting topics / sessions / messages into stable UI shapes, the pane / action registries, and render-stability rules |
Knowledge
| Document | Description |
|---|---|
| Knowledge Product Spec | Condensed product semantics for Agent-managed knowledge bases (full version lives in Feishu) |
| Knowledge Technical Design | Condensed per-base index.sqlite schema, index store contracts, and retrieval decisions (full version lives in Feishu) |
| KnowledgeService | Concurrency control and workload management |
| Knowledge Operation Guards | Guard, enqueue failure, and recovery semantics for add/delete/reindex |
CherryClaw (Autonomous Agent)
| Document | Description |
|---|---|
| CherryClaw Overview | Architecture, memory system, API |
| Channel System | IM integration (Telegram, etc.) |
| Claw MCP Server | Built-in MCP tools (cron, notify, skills, memory) |
| Scheduler | Task-based polling scheduler |
Components
| Document | Description |
|---|---|
| CodeBlockView | Code block view component |
| Image Preview | Image preview components |
| Code Execution | Python code execution via Pyodide |
Other
| Document | Description |
|---|---|
| App Upgrade Config | Application upgrade configuration |
| Feishu Notify | Feishu notification integration |
| Fuzzy Search | Fuzzy search implementation |
| LAN Transfer Protocol | LAN file transfer protocol spec |