* feat: enhance API key management in ApiCheckPopup: allow users to add new API key - Enhanced ApiCheckPopup component to allow users to add new API key, including validation for duplicate entries and improved user feedback. * feat: update localization strings and refactor API key management components - Added "Invalid API key" message to localization files for English, Japanese, Russian, Simplified Chinese, and Traditional Chinese. - Refactored API key management by replacing the ApiCheckPopup with a new ApiKeyList component, enhancing user experience and modularity in handling API keys across provider settings. * refactor: update OAuthButton and ApiKeyList components for improved UI and localization - Commented out the translation key in OAuthButton for future use. - Removed unnecessary localization strings related to API key tips across multiple languages. - Enhanced ApiKeyList component with styled components for better layout and user interaction. - Updated ProviderSetting and WebSearchProviderSetting to streamline API key management UI. * refactor: streamline ApiKeyList component and update localization strings - Removed the "Check Multiple API Keys" translation key from English, Japanese, Russian, Simplified Chinese, and Traditional Chinese localization files. - Updated ApiKeyList component to eliminate the model prop, enhancing its simplicity and usability. - Improved error handling in API key validation by integrating model selection directly within the check process. * feat: add latency tooltip to API key validation in ApiKeyList component and update localization strings - Introduced a latency tooltip in the ApiKeyList component to display the time taken for API key validation. - Updated localization files for English, Japanese, Russian, Simplified Chinese, and Traditional Chinese to include the new latency tooltip string. * refactor: remove unused imports in WebSearchProviderSetting component * refactor: improve error handling and latency tracking in ApiKeyList component - Enhanced error handling during model selection to prevent failures when the user cancels the popup. - Introduced latency tracking for API key validation, ensuring accurate measurement of response times. - Streamlined the code for better readability and maintainability. * refactor: improve styling in ApiKeyList component for better UI consistency - Updated padding styles for error messages and list items in the ApiKeyList component to enhance visual clarity and user experience. - Adjusted Card component properties to ensure consistent styling across the interface. * refactor: extract key formatting logic into a separate function in ApiKeyList component - Created a new function `formatAndConvertKeysToArray` to handle the formatting and conversion of API keys into an array of unique key objects. - Updated the state initialization and effect hook in the ApiKeyList component to utilize the new function, improving code readability and maintainability. * refactor: conditionally render API key section for non-copilot providers - Updated the ProviderSetting component to conditionally display the API key section only for providers other than 'copilot', improving the user interface and experience. - Maintained existing functionality for API key management while enhancing code readability. * refactor: enhance ApiKeyList component for copilot provider handling - Introduced a new condition to manage the rendering and functionality of buttons in the ApiKeyList component based on the provider type, specifically for 'copilot'. - Updated the ProviderSetting component to ensure the API key section is consistently displayed for all providers, improving overall user experience and code clarity. * fix model type error * feat(ApiKeyList): exclude rerank models from being checked for API key validation after #3969 is merged * refactor(ApiKeyList): conditionally render check and remove buttons based on key statuses * refactor(ApiKeyList): using Promise.all for improved performance after #4066 is merged * refactor(ProviderSettings): update API key display and tooltip integration for improved layout and accessibility * fix(ApiKeyList): prevent notifications from showing when checking multiple API keys * feat(ApiKeyList): enhance API key handling with improved key formatting and auto-focus logic for add button * refactor: clean up WebSearchProviderSetting component * refactor(ApiKeyList): replace icon buttons with styled components for save and cancel actions * refactor: API key list UI and remove unused components Simplified the API key list UI by removing custom styled components for status and actions, replacing them with Ant Design icons and buttons. Improved the key checking logic and removed the tooltip for key check results. Also removed an unused help text in ProviderSetting. * refactor: add edit functionality to API key list Introduces the ability to edit existing API keys in the ApiKeyList component. Removes custom save/cancel icon buttons in favor of standard input blur/enter and icon actions. Also adjusts styling for help text in ProviderSetting. * refactor(ApiKeyList): enhance key status display with tooltips and color coding * feat(i18n): add "checking" status message in multiple languages * feat(ApiKeyList): enhance API key management with confirmation for deletion and improved state handling - Added confirmation for deleting API keys, allowing users to confirm before removal. - Introduced a cancel state for adding new keys to improve user experience. - Enhanced key status updates to prevent unnecessary re-renders. - Improved UI interactions with better handling of edit and cancel actions. - Added escape key functionality for canceling edits and new key entries. * fix(ApiKeyList): adjust layout of API key list for improved spacing and alignment - Updated the Flex component to justify content between elements, enhancing the visual layout of the API key list. - Minor style adjustment to maintain consistency in the user interface. * fix(ApiKeyList): refine padding for API key list items to enhance visual consistency - Adjusted padding for API key list text and items to improve overall layout and alignment. - Ensured consistent spacing across different states of the API key list. --------- Co-authored-by: Pleasurecruise <3196812536@qq.com> Co-authored-by: suyao <sy20010504@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