介绍
Cherry Studio 是一款跨平台桌面客户端,支持多个大语言模型(LLM)服务商,兼容 Windows、Mac 和 Linux 系统,并拥丰富的个性化选项与领先的功能设计。
软件截图
软件特点
😌 轻松上手
🍏Windows,Mac,Linux跨平台支持
📦开箱即用,无需 Python 与 Docker
🤝简洁、友好的界面与交互设计
🛠️多样化的 LLM 服务模式支持
☁️ 全面覆盖 LLM 云服务,支持自定义 api key 与模型管理:OpenAI,Gemini,Anthropic,硅基流动...
🔗汇聚流行的 AI Web 服务,并计划通过功能增强提升体验:Claude,Peplexity,Poe,腾讯元宝,知乎直答...
💻支持 Ollama 运行本地模型
📲个性化的功能体验
📄完整的 Markdown 与 Mermaid 渲染支持
🤖使用与创建智能体提升工作效率
🔤持续迭代的翻译功能
🤲生成结果支持 Markdown 与图片分享
📎文件与图片上传,RAG 与多模态对话
🎨透明窗口与明暗主题支持
更新日志
v1.6.0-Beta.7
Add the missing quotation mark by @MengXiangxi in #9772
feat: Add animation for sidebar by @rien7 in #9768
Remove loading state blocks input, Add "Retry failed messages" button by @oyasumiaiko in #9513
fix typo grap gap by @co63oc in #9777
refactor: Improve linux build for system-ocr by @beyondkmp in #9775
feat: 解析链接的 og 数据并添加到 preview 内容中 by @kovsu in #9752
chore: update vite down to 7.1.5 by @beyondkmp in #9794
chore: update TypeScript configuration and scripts by @beyondkmp in #9792
fix: auto-enable image generation button for Gemini 2.5 Flash Image model by @yyhhyyyyyy in #9787
fix: tabs 高度不足导致 border 样式不能占满父元素 by @kovsu in #9780
chore(migrate): update migration logic for version 145 and enforce showMessageOutline default by @teojs in #9805
chore: update yarn.lock by @EurFelux in #9808
refactor(CodeViewer): improve props, aligned to CodeEditor by @alephpiece in #9786
fix: draggable list id type by @alephpiece in #9809
feat: integrate file selection and upload functionality in KnowledgeFiles component by @beyondkmp in #9815
refactor(electron.vite.config.ts): streamline external dependencies and improve build configuration by @beyondkmp in #9835
fix typos by @co63oc in #9831
fix(Markdown): regex for style by @alephpiece in #9839
fix: enhance Obsidian vault detection for multiple installation methods by @thericardoli in #9821
fix: capture animations and fonts in iframe by @alephpiece in #9800
refactor: migrate showWorkspace setting from global settings to notes module by @Pleasurecruise in #9814
refactor: tooltip icons by @alephpiece in #9841
fix: correct provider URL formatting in syncModelScopeServers function by @vaayne in #9852
feat: enhance RichEditor with logging and improve NotesPage editor synchronization by @DeJeune in #9817
fix: transform parameters when adding mcp by json by @EurFelux in #9850
fix: NavigationService initialization timing issue and add tab drag reordering by @Pleasurecruise in #9700
refactor(mcp): use includes http to detect streamable http type mcp server by @EurFelux in #9865
fix(translate): wrong copy button state by @EurFelux in #9867
fix: regex pattern error when update manual blacklist by @kovsu in #9871
Feat/aisdk package by @MyPrototypeWhat in #7404
refactor(mcp): enhance MCPService logging and error handling by @vaayne in #9878
feat: Add PaddleOCR as a new OCR provider by @Bobholamovic in #9876
feat: refactor Knowledge Base by @eeee0717 in #8384
Add Claude Code GitHub Workflow by @vaayne in #9893
ci: auto i18n by @EurFelux in #9889
refactor(miniapp): 适配顶部状态栏 by @GeorgeDong32 in #9695
fix: only allow auto-i18n running on branches in main repo by @EurFelux in #9905
fix: wrong ci repo check by @EurFelux in #9916
chore(package): update dependencies and reorganize package.json by @beyondkmp in #9914
fix: handle multiple content source when pasting to translate input by @EurFelux in #9919
fix: remove youtube render by @eeee0717 in #9920
ci(github): fix auto-i18n condition by @EurFelux in #9921
feat: support custom minimize, maximize and close by @beyondkmp in #9847
fix: 对齐模型设置中 avatar 的样式 by @kovsu in #9829
fix(miniapp): title container background style align with sidebar by @kovsu in #9915
workflows: restrict Claude triggers to collaborators/members/owners and fix fork PR reviews by @vaayne in #9924
fix: update User-Agent handling in WebviewService to conditionally set based on URL by @beyondkmp in #9931
ci(workflows): fix claude code review ci to be triggered by pull_request by @EurFelux in #9934
fix: standardize mouse enter delay for window control tooltips by @beyondkmp in #9936
fix(inputbar): fix infinite state update loop by @EurFelux in #9933