🍒 Cherry Studio is a desktop client that supports for multiple LLM providers.
Go to file
MyPrototypeWhat 2fd3ebb378
pert: Optimize/message structure (#3136)
* refactor: Simplify message operations with new useMessageOperations hook

- Introduce useMessageOperations hook to centralize message-related actions
- Remove prop drilling for message deletion and management
- Refactor MessageMenubar, MessageGroup, and Messages components to use new hook
- Remove commented-out code and simplify message state management
- Improve type safety and reduce component complexity

* feat: Enhance topic management with sequence-based sorting and lazy loading

- Add sequence field to topics for better sorting
- Implement lazy loading mechanism for topic messages
- Modify Redux store to support per-topic loading states
- Update database schema to use sequence as an auto-incrementing primary key
- Optimize message initialization and retrieval process

* refactor: Simplify message operations with new useMessageOperations hook

- Introduce useMessageOperations hook to centralize message-related actions
- Remove prop drilling for message deletion and management
- Refactor MessageMenubar, MessageGroup, and Messages components to use new hook
- Remove commented-out code and simplify message state management
- Improve type safety and reduce component complexity

* refactor(database): Enhance topic management with timestamps and upgrade logic

- Modify database schema to include createdAt and updatedAt for topics
- Add database hooks for automatic timestamp handling
- Refactor topic upgrade process to support new timestamp fields
- Remove redundant upgradesV6.ts file
- Update topic retrieval to use updatedAt for sorting
- Improve database consistency and tracking of topic modifications

* fix: Improve message loading state management and UI synchronization

- Update Inputbar to use useMessageOperations hook for loading state
- Correct topic loading state management in Redux store
- Fix loading state synchronization in sendMessage action
- Remove unnecessary commented-out code
- Enhance error handling and loading state tracking

* refactor: Streamline message state management and remove unused code

- Remove commented-out code in multiple components
- Delete initializeMessagesState thunk from messages store
- Simplify message sending and streaming logic
- Remove unnecessary console logs
- Optimize MessageStream component with memo
- Using loading to control message generation within a single session
- Lift the restriction on not being able to switch topics in message generation
2025-03-11 11:43:22 +08:00
.github Revert "docs: remove Chinese issue templates for bug reports, feature requests, and questions" 2025-02-28 10:34:28 +08:00
.vscode Modified the prompt part Modified the minapp data part 2024-09-14 16:23:58 +08:00
.yarn/patches chore: Update Tavily core package and remove js-tiktoken dependency 2025-02-23 11:01:30 +08:00
build Revert "feat: enable local network access on macOS #1178" 2025-02-11 11:18:33 +08:00
docs docs: Add comprehensive documentation for KnowledgeService concurrent processing mechanism 2025-03-02 20:36:13 +08:00
packages feat(constants): Add BibTeX file extension to supported text files 2025-03-10 17:33:02 +08:00
resources feat: Add Agent German Tutor (#2748) 2025-03-04 10:38:50 +08:00
scripts feat: Synchronize and clean up localization files 2025-02-21 14:15:36 +08:00
src pert: Optimize/message structure (#3136) 2025-03-11 11:43:22 +08:00
.editorconfig fix: electron builder ignore files 2024-08-26 18:19:01 +08:00
.eslintignore build: add scripts/cloudflare-worker.js 2024-11-22 10:01:54 +08:00
.eslintrc.cjs fix: Solve the problem that eslint always reports line break errors on Windows 2025-02-14 10:36:07 +08:00
.gitignore feat: Add remark function to knowledge url (#2210) 2025-02-24 12:47:47 +08:00
.prettierignore style: align tab content horizontally and ignore agents.json with prettier 2024-10-26 23:36:06 +08:00
.prettierrc chore(lint): Update ESLint and Prettier configurations 2024-05-24 16:33:26 +08:00
.yarnrc.yml chore(version): 0.6.2 2024-08-26 18:30:05 +08:00
CODE_OF_CONDUCT.md docs: update documentation for a more inclusive environment and added japanese and chinese documentation 2024-10-25 00:09:01 +08:00
CONTRIBUTING.md docs: update documentation to reflect project changes 2024-10-29 15:29:44 +08:00
dev-app-update.yml feat: add update info ui 2024-12-10 17:06:29 +08:00
electron-builder.yml chore(version): 1.0.6 2025-03-05 21:54:39 +08:00
electron.vite.config.ts refactor: 重构message模块 (#2561) 2025-03-08 01:41:05 +08:00
LICENSE docs: update LICENSE 2024-10-17 14:09:30 +08:00
package.json feat(Proxy): Implement proxy management system 2025-03-11 09:56:40 +08:00
README.md feat: refactor web search logic and support searxng (#2543) 2025-03-06 16:17:26 +08:00
tsconfig.json feat: add local module 2024-08-27 11:31:05 +08:00
tsconfig.node.json refactor: shortcuts feature 2024-12-03 10:23:53 +08:00
tsconfig.web.json refactor: shortcuts feature 2024-12-03 10:23:53 +08:00
yarn.lock feat(Proxy): Implement proxy management system 2025-03-11 09:56:40 +08:00

banner

English | 中文 | 日本語

kangfenmao%2Fcherry-studio | Trendshift

🍒 Cherry Studio

Cherry Studio is a desktop client that supports for multiple LLM providers, available on Windows, Mac and Linux.

👏 Join Telegram GroupDiscord | QQ Group(1025067911)

❤️ Like Cherry Studio? Give it a star 🌟 or Sponsor to support the development!

🌠 Screenshot

🌟 Key Features

  1. Diverse LLM Provider Support:

    • ☁️ Major LLM Cloud Services: OpenAI, Gemini, Anthropic, and more
    • 🔗 AI Web Service Integration: Claude, Peplexity, Poe, and others
    • 💻 Local Model Support with Ollama, LM Studio
  2. AI Assistants & Conversations:

    • 📚 300+ Pre-configured AI Assistants
    • 🤖 Custom Assistant Creation
    • 💬 Multi-model Simultaneous Conversations
  3. Document & Data Processing:

    • 📄 Support for Text, Images, Office, PDF, and more
    • ☁️ WebDAV File Management and Backup
    • 📊 Mermaid Chart Visualization
    • 💻 Code Syntax Highlighting
  4. Practical Tools Integration:

    • 🔍 Global Search Functionality
    • 📝 Topic Management System
    • 🔤 AI-powered Translation
    • 🎯 Drag-and-drop Sorting
    • 🔌 Mini Program Support
  5. Enhanced User Experience:

    • 🖥️ Cross-platform Support for Windows, Mac, and Linux
    • 📦 Ready to Use, No Environment Setup Required
    • 🎨 Light/Dark Themes and Transparent Window
    • 📝 Complete Markdown Rendering
    • 🤲 Easy Content Sharing

📝 TODO

  • Quick popup (read clipboard, quick question, explain, translate, summarize)
  • Comparison of multi-model answers
  • Support login using SSO provided by service providers
  • All models support networking
  • Launch of the first official version
  • Bug fixes and improvements (In progress...)
  • Plugin functionality (JavaScript)
  • Browser extension (highlight text to translate, summarize, add to knowledge base)
  • iOS & Android client
  • AI notes
  • Voice input and output (AI call)
  • Data backup supports custom backup content

🖥️ Develop

IDE Setup

Cursor + ESLint + Prettier

Project Setup

Install

yarn

Development

yarn dev

Build

# For windows
$ yarn build:win

# For macOS
$ yarn build:mac

# For Linux
$ yarn build:linux

🤝 Contributing

We welcome contributions to Cherry Studio! Here are some ways you can contribute:

  1. Contribute Code: Develop new features or optimize existing code.
  2. Fix Bugs: Submit fixes for any bugs you find.
  3. Maintain Issues: Help manage GitHub issues.
  4. Product Design: Participate in design discussions.
  5. Write Documentation: Improve user manuals and guides.
  6. Community Engagement: Join discussions and help users.
  7. Promote Usage: Spread the word about Cherry Studio.

Getting Started

  1. Fork the Repository: Fork and clone it to your local machine.
  2. Create a Branch: For your changes.
  3. Submit Changes: Commit and push your changes.
  4. Open a Pull Request: Describe your changes and reasons.

For more detailed guidelines, please refer to our Contributing Guide.

Thank you for your support and contributions!

  • one-api:LLM API management and distribution system, supporting mainstream models like OpenAI, Azure, and Anthropic. Features unified API interface, suitable for key management and secondary distribution.

  • ublacklist:Blocks specific sites from appearing in Google search results

🚀 Contributors



🌐 Community

Telegram | Email | Twitter

📣 Product Hunt

Cherry Studio - AI Chatbots, AI Desktop Client | Product Hunt

Sponsor

Buy Me a Coffee

📃 License

LICENSE

Star History

Star History Chart