* feat: Add app data path selection and relaunch functionality * Introduced new IPC channels for selecting and setting the app data path. * Implemented logic to initialize the app data path on startup. * Added confirmation modal for changing the app data directory in the settings. * Updated translations for new app data path features in multiple languages. * feat: Implement user data copying and app data path management * Added IPC channels for copying user data to a new location and setting the app data path. * Enhanced the user interface to support data copying with progress notifications. * Updated translations to reflect new features related to app data management. * Refactored file utility functions to streamline data path handling. * refactor: update IPC channel names and streamline app data path handling - Renamed IPC channels for selecting app data path and copying user data for clarity. - Simplified the logic for selecting and setting app data paths, removing unnecessary success/error handling. - Updated related functions and components to reflect the new IPC channel names and improved data handling. - Removed unused copyUserDataToNewLocation function to clean up the codebase. * fix: update app data directory selection text in multiple locales - Changed the text for selecting the app data directory from "Select Directory" to "Modify Directory" in English, Japanese, Russian, Simplified Chinese, and Traditional Chinese locales to better reflect the action being performed. * refactor: remove redundant success messages in DataSettings component - Eliminated unnecessary success messages related to app data copying and app relaunching to streamline user feedback and improve code clarity. * refactor: streamline file utility functions and update app data initialization - Moved `getDataPath` function to the `utils/index.ts` for better organization and accessibility. - Renamed `initUserDataDir` to `initAppDataDir` for clarity in its purpose. - Removed commented-out code in `ConfigManager` to enhance code cleanliness. * refactor: update import paths and localization strings for app data - Refactored import statements for `getDataPath` to streamline utility access. - Updated localization strings for app data in English, Japanese, Russian, Simplified Chinese, and Traditional Chinese to enhance clarity and consistency. * update i18n * add fc * fix: handle errors in app data path retrieval - Added error handling to the `getAppDataPathFromConfig` function to return null if the configuration file cannot be read or parsed, improving robustness. * refactor: simplify app data path handling in IPC - Removed error handling for setting the app data path in the IPC channel, streamlining the process by directly updating the configuration and user data path without try-catch blocks. * fix: update userData path handling for portable applications - Modified the initAppDataDir function to set the userData path based on the PORTABLE_EXECUTABLE_DIR environment variable, ensuring compatibility with portable application setups. * feat: enhance app data path migration with progress indication - Implemented a loading modal with progress tracking during the app data path migration process. - Added visual feedback using a progress bar to inform users of the copying status. - Improved error handling and user notifications for successful and failed migrations. - Refactored the modal confirmation logic to streamline user interactions during the path selection and migration process. * feat: add migration paths and update UI for data migration process - Introduced new translation keys for migration paths in Japanese, Russian, Simplified Chinese, and Traditional Chinese. - Enhanced the DataSettings component with a structured layout for displaying original and new paths during data migration. - Updated modal titles and content to improve user experience during the migration process. * feat: enhance data migration process with improved UI and progress tracking - Refactored the DataSettings component to streamline the data migration workflow. - Added a new function to display progress during the migration process, enhancing user feedback. - Updated modal logic to improve clarity and user experience when selecting new app data paths. - Implemented error handling and notifications for successful and failed migrations. * feat: add stop quit app functionality during data migration - Introduced a new IPC channel to manage the application's quit behavior during data transfer. - Updated the DataSettings component to prevent the app from quitting while migration is in progress, enhancing user experience. - Improved modal configurations for better responsiveness and visual appeal. * feat: enhance app data path handling and localization updates - Updated IPC handler to use 'filePath' for clarity in app data path management. - Improved validation to ensure the new app data path is not the root path, enhancing user feedback during path selection. - Added new translation keys for error messages related to app data path selection in English, Japanese, Russian, Simplified Chinese, and Traditional Chinese, improving localization support. * feat: add write permission check and enhance quit prevention during data migration - Introduced a new IPC channel to check write permissions for the app data path. - Updated the DataSettings component to validate write permissions before proceeding with data migration. - Enhanced the quit prevention logic to include a reason for blocking the app from quitting during data transfer. - Added new localization keys for error messages related to write permissions in multiple languages, improving user feedback. * feat: enhance confirmation modal in DataSettings component - Updated the confirmation modal to include danger styling for the OK button, improving visual feedback. - Added localized text for the OK and Cancel buttons, enhancing user experience through better accessibility. * feat: add localization keys and improve quit prevention during data migration - Added new localization keys for data migration, including titles and original path labels, enhancing user experience. - Updated the DataSettings component to ensure the app does not quit during data migration, improving reliability and user feedback. * feat(DataSettings): add data copying option and update related messages - Introduced a switch to allow users to choose whether to copy data from the original directory when changing the app data path. - Updated user notifications and progress messages to reflect the new functionality, including warnings about data copying. - Enhanced localization files for multiple languages to include new strings related to data copying options and notifications. * fix(DataSettings): set default for data copying option to true - Updated the DataSettings component to set the default state of the data copying option to true. - Added a new CopyDataContent component to enhance the user interface by displaying the data copying option alongside the existing path settings. - Improved layout by ensuring proper spacing and alignment for better user experience. --------- Co-authored-by: beyondkmp <beyondkmkp@gmail.com> |
||
|---|---|---|
| .github | ||
| .husky | ||
| .vscode | ||
| .yarn | ||
| build | ||
| docs | ||
| packages/shared | ||
| resources | ||
| scripts | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| .yarnrc.yml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| dev-app-update.yml | ||
| electron-builder.yml | ||
| electron.vite.config.ts | ||
| eslint.config.mjs | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.web.json | ||
| vitest.config.ts | ||
| yarn.lock | ||
English | 中文 | 日本語 | Official Site | Documents | Development | Feedback
🍒 Cherry Studio
Cherry Studio is a desktop client that supports for multiple LLM providers, available on Windows, Mac and Linux.
👏 Join Telegram Group|Discord | QQ Group(575014769)
❤️ Like Cherry Studio? Give it a star 🌟 or Sponsor to support the development!
🌠 Screenshot
🌟 Key Features
- 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
- AI Assistants & Conversations:
- 📚 300+ Pre-configured AI Assistants
- 🤖 Custom Assistant Creation
- 💬 Multi-model Simultaneous Conversations
- Document & Data Processing:
- 📄 Support for Text, Images, Office, PDF, and more
- ☁️ WebDAV File Management and Backup
- 📊 Mermaid Chart Visualization
- 💻 Code Syntax Highlighting
- Practical Tools Integration:
- 🔍 Global Search Functionality
- 📝 Topic Management System
- 🔤 AI-powered Translation
- 🎯 Drag-and-drop Sorting
- 🔌 Mini Program Support
- ⚙️ MCP(Model Context Protocol) Server
- 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
📝 Roadmap
We're actively working on the following features and improvements:
- 🎯 Core Features
- Selection Assistant - Smart content selection enhancement
- Deep Research - Advanced research capabilities
- Memory System - Global context awareness
- Document Preprocessing - Improved document handling
- MCP Marketplace - Model Context Protocol ecosystem
- 🗂 Knowledge Management
- Notes and Collections
- Dynamic Canvas visualization
- OCR capabilities
- TTS (Text-to-Speech) support
- 📱 Platform Support
- HarmonyOS Edition (PC)
- Android App (Phase 1)
- iOS App (Phase 1)
- Multi-Window support
- Window Pinning functionality
- 🔌 Advanced Features
- Plugin System
- ASR (Automatic Speech Recognition)
- Assistant and Topic Interaction Refactoring
Track our progress and contribute on our project board.
Want to influence our roadmap? Join our GitHub Discussions to share your ideas and feedback!
🌈 Theme
- Theme Gallery: https://cherrycss.com
- Aero Theme: https://github.com/hakadao/CherryStudio-Aero
- PaperMaterial Theme: https://github.com/rainoffallingstar/CherryStudio-PaperMaterial
- Claude dynamic-style: https://github.com/bjl101501/CherryStudio-Claudestyle-dynamic
- Maple Neon Theme: https://github.com/BoningtonChen/CherryStudio_themes
Welcome PR for more themes
🤝 Contributing
We welcome contributions to Cherry Studio! Here are some ways you can contribute:
- Contribute Code: Develop new features or optimize existing code.
- Fix Bugs: Submit fixes for any bugs you find.
- Maintain Issues: Help manage GitHub issues.
- Product Design: Participate in design discussions.
- Write Documentation: Improve user manuals and guides.
- Community Engagement: Join discussions and help users.
- Promote Usage: Spread the word about Cherry Studio.
Refer to the Branching Strategy for contribution guidelines
Getting Started
- Fork the Repository: Fork and clone it to your local machine.
- Create a Branch: For your changes.
- Submit Changes: Commit and push your changes.
- 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!
🔗 Related Projects
-
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