finds.dev← search

// the find

CherryHQ/cherry-studio-app

★ 3,493 · TypeScript · AGPL-3.0 · updated Jun 2026

🍒 This is the mobile version of Cherry Studio.

Cherry Studio App is the Expo React Native mobile port of the Cherry Studio desktop LLM client. It targets developers and power users who want multi-provider AI chat (OpenAI, Gemini, Anthropic, etc.) on iOS/Android, with MCP tool support and local SQLite storage via Drizzle ORM. The desktop app has a strong following; this mobile version is catching up.

The middleware pipeline architecture in src/aiCore/legacy/middleware/ is genuinely well-thought-out — composable, typed, and easy to slot new providers into without touching the core streaming logic. Drizzle ORM with 16 versioned migrations shows they're treating schema evolution seriously rather than just overwriting the DB on upgrade. They wrote a custom react-native-streamable-http package rather than shimming fetch, which is the right call for MCP streaming on mobile where the built-in fetch has known buffering issues. The custom Expo modules for PDF extraction and text input wrapping are native code done properly, not JS hacks.

The codebase has two parallel AI cores — src/aiCore/index.ts and src/aiCore/index_new.ts — with the legacy middleware tree still carrying the bulk of real functionality. That's a refactor in progress with no clear completion signal, and whoever adopts this will be reading two systems. Provider support is described as 'gradually integrating' with no public matrix of what actually works today on mobile vs. desktop. The setup instructions require a physical device or simulator (no Expo Go), a manual prebuild step, and platform-specific SDK path configuration — the contribution bar is high for a community project. There are no test files visible beyond a single fileProcessor.test.ts, so the middleware chain and provider adapters are effectively untested.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →