appId: com.cherryai.cherrystudio productName: Cherry Studio electronLanguages: - zh-CN - zh-TW - en-US - ja # macOS/linux/win - ru # macOS/linux/win - zh_CN # for macOS - zh_TW # for macOS - en # for macOS - de directories: buildResources: build protocols: - name: Cherry Studio schemes: - cherrystudio files: - "**/*" - "!**/{.vscode,.yarn,.yarn-lock,.github,.cursorrules,.prettierrc}" - "!electron.vite.config.{js,ts,mjs,cjs}}" - "!.*" - "!components.json" - "!**/{.eslintignore,.eslintrc.js,.eslintrc.json,.eslintcache,root.eslint.config.js,eslint.config.js,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,eslint.config.mjs,dev-app-update.yml,CHANGELOG.md,README.md,biome.jsonc}" - "!**/{.env,.env.*,.npmrc,pnpm-lock.yaml}" - "!**/{tsconfig.json,tsconfig.tsbuildinfo,tsconfig.node.json,tsconfig.web.json}" - "!**/{.editorconfig,.jekyll-metadata}" - "!src" - "!config" - "!patches" - "!app-upgrade-config.json" - "!**/node_modules/**/*.cpp" - "!**/node_modules/node-addon-api/**" - "!**/node_modules/prebuild-install/**" - "!scripts" - "!local" - "!docs" - "!packages" - "!.swc" - "!.bin" - "!._*" - "!*.log" - "!stats.html" - "!*.md" - "!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}" - "!**/*.{map,ts,tsx,jsx,less,scss,sass,css.d.ts,d.cts,d.mts,md,markdown,yaml,yml}" - "!**/{test,tests,__tests__,powered-test,coverage}/**" - "!**/{example,examples}/**" - "!**/*.{spec,test}.{js,jsx,ts,tsx}" - "!**/*.min.*.map" - "!**/*.d.ts" - "!**/dist/es6/**" - "!**/dist/demo/**" - "!**/amd/**" - "!**/{.DS_Store,Thumbs.db,thumbs.db,__pycache__}" - "!**/{LICENSE,license,LICENSE.*,*.LICENSE.txt,NOTICE.txt,README.md,readme.md,CHANGELOG.md}" - "!node_modules/rollup-plugin-visualizer" - "!node_modules/js-tiktoken" - "!node_modules/@tavily/core/node_modules/js-tiktoken" - "!node_modules/pdf-parse/lib/pdf.js/{v1.9.426,v1.10.88,v2.0.550}" - "!node_modules/mammoth/{mammoth.browser.js,mammoth.browser.min.js}" - "!node_modules/selection-hook/prebuilds/**/*" # we rebuild .node, don't use prebuilds - "!node_modules/selection-hook/node_modules" # we don't need what in the node_modules dir - "!node_modules/selection-hook/src" # we don't need source files - "!node_modules/tesseract.js-core/{tesseract-core.js,tesseract-core.wasm,tesseract-core.wasm.js}" # we don't need source files - "!node_modules/tesseract.js-core/{tesseract-core-lstm.js,tesseract-core-lstm.wasm,tesseract-core-lstm.wasm.js}" # we don't need source files - "!node_modules/tesseract.js-core/{tesseract-core-simd-lstm.js,tesseract-core-simd-lstm.wasm,tesseract-core-simd-lstm.wasm.js}" # we don't need source files - "!**/*.{h,iobj,ipdb,tlog,recipe,vcxproj,vcxproj.filters,Makefile,*.Makefile}" # filter .node build files - "resources/**/*" # include all files in resources, and unpack them from asar for runtime access - "!resources/devtools/**" # dev-only extensions are loaded from source in development asarUnpack: - resources/** - "!resources/devtools/**" - "**/*.{metal,exp,lib}" - "node_modules/@img/sharp-*/**" - "node_modules/@anthropic-ai/claude-agent-sdk-*/**" # native CLI binary must live on disk to be spawned - "node_modules/@aiany/sqlite-vec-*/**" # sqlite-vec extension (.dylib/.so/.dll) is dlopen'd at runtime — must live on disk extraResources: - from: "migrations/sqlite-drizzle" to: "migrations/sqlite-drizzle" - from: "packages/provider-registry/data" to: "provider-registry" win: executableName: CherryStudio artifactName: ${productName}-${version}-${arch}-setup.${ext} target: - target: nsis - target: portable signtoolOptions: sign: scripts/win-sign.js verifyUpdateCodeSignature: false nsis: artifactName: ${productName}-${version}-${arch}-setup.${ext} shortcutName: ${productName} uninstallDisplayName: ${productName} createDesktopShortcut: always allowToChangeInstallationDirectory: true oneClick: false include: build/nsis-installer.nsh buildUniversalInstaller: false differentialPackage: false portable: artifactName: ${productName}-${version}-${arch}-portable.${ext} buildUniversalInstaller: false mac: entitlementsInherit: build/entitlements.mac.plist notarize: false artifactName: ${productName}-${version}-${arch}.${ext} extendInfo: - NSCameraUsageDescription: Application requests access to the device's camera. - NSMicrophoneUsageDescription: Application requests access to the device's microphone. - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. target: - target: dmg - target: zip dmg: writeUpdateInfo: false linux: artifactName: ${productName}-${version}-${arch}.${ext} executableName: CherryStudio target: - target: AppImage - target: deb - target: rpm maintainer: electronjs.org category: Utility desktop: entry: Name: Cherry Studio StartupWMClass: CherryStudio mimeTypes: - x-scheme-handler/cherrystudio rpm: # Workaround for electron build issue on rpm package: # https://github.com/electron/forge/issues/3594 fpm: ["--rpm-rpmbuild-define=_build_id_links none"] publish: provider: generic url: https://releases.cherry-ai.com electronDownload: mirror: https://npmmirror.com/mirrors/electron/ beforePack: scripts/before-pack.js afterPack: scripts/after-pack.js afterSign: scripts/notarize.js artifactBuildCompleted: scripts/artifact-build-completed.js releaseInfo: releaseNotes: | Cherry Studio 1.9.7 - Model Support & Bug Fixes ✨ New Features - [Models] Added support for grok-build-0.1 capabilities (reasoning, tool use, vision) - [Providers] StepFun now supports Claude Code / Anthropic-compatible mode with auto-filled endpoint - [Agents] DeepSeek V4 Flash and MiMo V2.5+ now properly support 1M context window in Claude Code 🐛 Bug Fixes - [Web Search] Fixed ExaMCP web search not returning result content correctly - [Code Viewer] Fixed code syntax highlighting issues where tokens could disappear in light theme - [OpenCode] Fixed launch failures after CLI updates by using package-local executable - [Agents] Fixed Agent mode not forwarding custom provider headers to Claude Code - [Models] Fixed Grok 4.3 reasoning effort support in xAI responses - [OpenClaw] Improved migration message clarity when external PATH installation is detected - [Models] Fixed Gemini 3.x models using wrong UI and sending deprecated sampling parameters - [Models] Fixed Qwen max series models incorrectly showing vision capability - [Providers] Fixed AIHubMix reasoning effort configuration not working properly Cherry Studio 1.9.7 - 模型支持与错误修复 ✨ 新功能 - [模型] 支持 grok-build-0.1 模型能力(推理、工具调用、视觉) - [提供商] StepFun 现在支持 Claude Code / Anthropic 兼容模式,并自动填充端点 - [智能体] DeepSeek V4 Flash 和 MiMo V2.5+ 现在在 Claude Code 中正确支持 1M 上下文窗口 🐛 问题修复 - [网络搜索] 修复 ExaMCP 网络搜索无法正确返回结果内容的问题 - [代码查看器] 修复浅色主题下代码语法高亮标记可能消失的问题 - [OpenCode] 修复 CLI 更新后启动失败的问题,现在使用包本地可执行文件 - [智能体] 修复智能体模式未将自定义提供商标头转发给 Claude Code 的问题 - [模型] 修复 xAI 响应中 Grok 4.3 推理强度支持问题 - [OpenClaw] 改进检测到外部 PATH 安装时的迁移消息清晰度 - [模型] 修复 Gemini 3.x 模型使用错误 UI 并发送已弃用采样参数的问题 - [模型] 修复 Qwen max 系列模型错误显示视觉能力的问题 - [提供商] 修复 AIHubMix 推理强度配置无法正常工作的问题