Back to Cherry Studio

Cherry Studio Documentation

docs/README.md

2.0.06.6 KB
Original Source

Cherry Studio Documentation

Guides

DocumentDescription
Development SetupDevelopment environment setup
ContributingHow to contribute code
Branching StrategyGit branching workflow
Test PlanTest plan and release channels
i18n GuideInternationalization guide
Logging GuideHow to use the logger service
MiddlewareHow to write AI Provider middleware

References

Architecture

DocumentDescription
Architecture OverviewSystem-wide architecture, process model, data flow

AI Core

DocumentDescription
AI ReferenceMain-process AI pipeline: stream manager, agent loop, providers, tools
Core ArchitectureEnd-to-end call flow from user input to LLM response
Stream ManagerActive-stream registry, broker, reconnect, persistence
Adapter FamilyHow endpoint → @ai-sdk/* package routing is decided

Data System

DocumentDescription
Data System OverviewSystem selection, architecture, and patterns
Boot Config OverviewEarly boot configuration system
Boot Config Schema GuideAdding new boot config keys
Cache OverviewThree-tier caching architecture and design invariants
Cache UsageuseCache hooks, direct API, Main-process subscriptions
Cache Schema GuideAdding new cache keys (fixed and template)
Preference OverviewUser settings management
Preference UsageusePreference hook examples
Preference Schema GuideAdding new preference keys
DataApi OverviewBusiness data API architecture
DataApi in RendereruseQuery/useMutation patterns
DataApi in MainHandlers, Services, Repositories
API Design GuidelinesRESTful design rules
API TypesAPI type system, schemas, error handling
Database PatternsDB naming, schema patterns
Layered Preset PatternPresets with user overrides
V2 Migration GuideMigration system

Lifecycle System

DocumentDescription
Lifecycle OverviewArchitecture, decision guides, usage
Application OverviewApplication bootstrap and shutdown
Lifecycle InternalsPhases, hooks, states
Lifecycle UsageFull usage guide with examples
Lifecycle Decision GuideLifecycle vs singleton decision
Lifecycle Migration GuideMigrating old services

Messaging

DocumentDescription
Message SystemMessage lifecycle, state management, operations
Composer Rich ClipboardPrivate composer token clipboard format and copy/paste flow
Message TreeChat message-tree model: adjacency list, per-topic virtual root, sibling groups, invariants, delete semantics, getTree / flow-canvas contract
Chat UI Design & ConventionsHow the chat UI is divided by responsibility (presentation / view-state / contracts / orchestration) and the conventions modules follow (context, refs, render stability)
Chat AdaptersThe chat contract layer: projecting topics / sessions / messages into stable UI shapes, the pane / action registries, and render-stability rules

Knowledge

DocumentDescription
Knowledge Product SpecCondensed product semantics for Agent-managed knowledge bases (full version lives in Feishu)
Knowledge Technical DesignCondensed per-base index.sqlite schema, index store contracts, and retrieval decisions (full version lives in Feishu)
KnowledgeServiceConcurrency control and workload management
Knowledge Operation GuardsGuard, enqueue failure, and recovery semantics for add/delete/reindex

Components

DocumentDescription
CodeBlockViewCode block view component
Image PreviewImage preview components
Code ExecutionPython code execution via Pyodide
UI Semantic Contractdata-ui token protocol, stability tiers, and maintained selectors for themes, tests, and AI tooling

Other

DocumentDescription
Frontend Testing GuidelinesFrontend test design and review
App Upgrade ConfigApplication upgrade configuration
Feishu NotifyFeishu notification integration
Fuzzy SearchFuzzy search implementation
LAN Transfer ProtocolLAN file transfer protocol spec
Remote Fetch SafetyMain-process direct URL fetch SSRF guardrails