Middle Mann  /  Compare  /  AI Workspaces  /  LibreChat

Cherry is the production alternative to LibreChat.

LibreChat is the honest open-source multi-provider chat. Great starting point, minimal workspace surface. Cherry is the production-grade workspace the LibreChat pattern needs to become: a fifteen-plus entity Postgres data model, per-message UsageEvent attribution across user / workspace / chat / model, the Pins/Clipboard/Snippets three-tier reuse system, presigned MinIO storage with filename sanitization, bulk folder upload that replicates an OS tree transactionally, a Recharts usage dashboard, multi-workspace with roles and modular Apps (Canvas, Code Interpreter and Image Generation). Self-hosted end to end, no fork to maintain. You own the whole stack.

15+
Cherry's Postgres schema covers chats, folders, snippets, presets, usage, files and workspaces.
3
Cherry ships three reuse tiers: Pins per message, Clipboard per chat, Snippets project-scoped.
18
Cherry maps 18 keyboard shortcuts across Navigation, Chat, Editor and Files.
Compare
Why It Exists

Four things LibreChat leaves you to build yourself.

LibreChat is a good open-source starting point. It stops being enough the moment a real team runs on it and someone asks who spent what, where the assets are and how we onboard the next 20 users.

01

Shallow workspace primitives

LibreChat gives you conversations, tags and a Prompt Library. Cherry ships a fifteen-plus entity data model on Postgres via Prisma: Users, Workspaces, WorkspaceMembers with roles, Projects, Folders (self-referential, unbounded depth), Chats, Messages, Snippets, Clipboards, Files, Models, Presets, UsageEvents, BillingPlans, StorageUsage. The workspace has a spine, not a folder icon.

02

No first-class cost attribution

LibreChat surfaces token counts. Cherry ships a full UsageEvent per message with tokens in, tokens out, dollar cost, latency in ms, model, preset, chat, user and workspace, plus a Recharts dashboard that filters by today / 7d / 30d / billing cycle and breaks down by user / model / chat. Consultants attribute AI spend per client engagement in a single query.

03

Storage discipline is DIY

LibreChat leaves storage strategy to the operator. Cherry ships MinIO by default with local-disk fallback, generates short-TTL presigned URLs per request, sanitizes filenames and never exposes bucket paths in any client response. Bulk folder upload replicates an entire OS folder tree transactionally.

04

No product ownership, only a fork

LibreChat is a codebase you maintain against upstream. Every custom feature is a fork to rebase. Cherry is a product you deploy and own. There's no upstream to chase. The feature roadmap is set by you and Middle Mann, not by whoever merges to LibreChat main. Docker Compose orchestrates nginx, frontend, backend, Postgres, Redis and MinIO.

What Cherry Ships

Same open-source spirit, without the fork you rebase forever.

LibreChat gets a lot right: MCP servers, Agents, Code Interpreter, Artifacts, OAuth and SAML. Cherry starts from a different data spine. A Postgres schema through Prisma with fifteen-plus entities replaces MongoDB defaults. A UsageEvent per message replaces raw token counts. Three reuse tiers (Pins, Clipboard, Snippets) replace a single Prompt Library. Multi-workspace with roles replaces flat user accounts. And Cherry ships as a product you deploy, not a repo you rebase against upstream forever.

Where LibreChat Stops
0115+ entity data model. LibreChat groups conversations via tags. Cherry's schema covers Workspaces, Folders, Presets, UsageEvents and more
02Folder tree. LibreChat has no nested folders. Cherry ships a self-referential Folder entity with unbounded depth and circular-ref guards
03Three reuse tiers. LibreChat ships a Prompt Library. Cherry adds Pins per-message and per-chat Clipboard on top: three tiers where LibreChat ships one
04Global search. LibreChat searches conversations. Cherry queries chats, snippets, files, folders, pins and clipboard in parallel, ranked
Provider Depth
01Typed adapter interface. LibreChat wires providers via config. Cherry ships a typed interface where a new provider is a single-file addition
02First-class Compare. LibreChat has no Compare modal. Cherry fires one prompt at every provider side by side, ready to diff
03Tier-gated Presets. LibreChat ships Presets without a tier requirement. Cherry adds per-model tier gating with PlanRestrictedError server-side
04Cancel mid-stream. Both use SSE. Cherry adds real cancel-mid-stream, optimistic rendering and per-provider stop signaling on top
Production Ops
01UsageEvent per message. LibreChat surfaces token counts. Cherry logs tokens + dollars + latency + model + preset per user + workspace
02Recharts dashboard. LibreChat has no real dashboard. Cherry ships today / 7d / 30d / billing cycle with breakdowns by user / model / chat
03MinIO storage discipline. LibreChat leaves storage DIY. Cherry ships MinIO with local-disk fallback, presigned URLs, sanitized filenames
04Multi-workspace teams. LibreChat has user accounts. Cherry ships Workspaces with Owner/Admin/Member roles, BillingPlan and StorageUsage
No Fork to Maintain
01No upstream chase. LibreChat is a repo you rebase. Cherry is a product you deploy, with a features roadmap set by you and Middle Mann
02Ownership. LibreChat is open-source you maintain. Cherry is code you own outright: deploy on-prem, in your cloud or as your own SaaS
Side by Side

LibreChat vs Cherry.

Both self-hosted, both multi-provider, both open in principle. The difference is depth of the workspace primitives and product ownership.

Feature LibreChat Cherry
Model providersMulti-provider (config-driven)OpenAI + Anthropic shipping, pluggable adapter for any provider
Data model depthConversations + tags + Prompt Library15+ entity Postgres model via Prisma
OrganizationBookmarks and tags on conversationsInfinite nested folder tree, self-referential parents
Per-message bookmarksNoPins with scroll-to-highlight animation
Per-chat clipboardNoDrag-reorderable saved passages, promote to Snippet
Cross-chat snippetsPrompt LibraryProject-scoped, tagged, source-tracked, one-click injection
Model presetsPresets (per-model config)Agent Library. Presets with model + temp + system prompt + tier gating
Model comparisonNot first-classFire one prompt at multiple models side by side
Cost per promptToken countsTokens, dollar cost, latency on every message via UsageEvent
Cost attributionDIYPer user, per workspace, per chat, per model
Usage dashboardBasicRecharts. Today / 7d / 30d / billing cycle
Bulk folder uploadNoReplicates an entire OS folder tree transactionally
File storageLocal / configurableMinIO with local-disk fallback, presigned URLs, sanitized filenames
Conversation historyMongoDB defaultPostgres via Prisma. Exportable, portable
Streaming transportSSEServer-Sent Events with cancel-mid-stream
Team workspacesUser accounts, limited team surfaceMulti-workspace with Owner / Admin / Member roles, BillingPlan, StorageUsage
SSOOAuth, SAML, LDAP, 2FA (config-driven)Available in Enterprise, configurable on your infrastructure
Keyboard shortcutsLimited18 mapped across Navigation / Chat / Editor / Files
ConnectorsPlugin ecosystemGitHub + Google Drive shipping, Notion / Slack / Jira on roadmap
AppsAgents, Code Interpreter, Artifacts, MCP serversCanvas, Code Interpreter (beta), Image Generation, modular
Outbound APINot a product surfaceCherry outbound API for third-party integration
DeploymentSelf-hosted (fork to customize)Self-hosted. On-prem, cloud, run as your own SaaS. You decide
OwnershipOpen source, upstream to chaseYou own the code, the data, the deployment. No upstream fork
FAQ

Frequently asked questions.

Why not just self-host LibreChat and customize it?

You can. And if the workspace primitives (folders, cost attribution, Pins/Clipboard/Snippets, presigned MinIO storage, roles, modular Apps) don't matter to you, LibreChat is a reasonable answer. The moment they do, you either build them yourself against a fork you'll rebase forever, or you deploy Cherry and skip the maintenance treadmill.

Which providers does Cherry ship?

OpenAI and Anthropic adapters ship today. The provider abstraction is a typed interface, so lighting up Google, xAI, Perplexity Sonar, DeepSeek or any future provider is a single-file adapter addition. Google models are already in the catalog for Preset filtering; the runtime adapter is on the roadmap.

How granular is cost tracking?

Every message generates a UsageEvent record with tokens in, tokens out, dollar cost, latency in ms, model, preset, chat, user and workspace. The Recharts dashboard filters by today, 7 days, 30 days or billing cycle and shows a daily cost bar chart, breakdown by user / model / chat and storage growth in GB.

What's the storage story?

MinIO S3-compatible object storage with local-disk fallback if MinIO isn't wired. The storageKey is stored in the File record. The raw bucket path is never exposed. Every file access goes through a short-TTL presigned URL generated per request. Filenames are sanitized. Bulk folder upload replicates an entire OS folder tree transactionally.

How does Cherry stream responses?

Cherry streams via Server-Sent Events over HTTP. Every provider adapter implements the streaming interface, so tokens appear the moment the model emits them. The Stop button cancels mid-stream. SSE is a standard browser API. There's no proprietary transport.

How is Cherry deployed?

Cherry is self-hosted. Docker Compose orchestrates nginx, the Next.js frontend, the Express backend, Postgres, Redis and MinIO. Deploy it on your own hardware for internal use, run it in your cloud or spin it up as your own SaaS product. You own the code, the data and the deployment.

What does Cherry cost?

Contact sales for pricing. Every engagement is scoped to how you plan to deploy, who your users are, which provider adapters you need lit up and what support terms fit your organization.

Start a Conversation

Ready to stop chasing a fork?

Tell us how your team uses LibreChat today, what you had to build on top and where the maintenance burden started biting. We'll respond within one business day with an honest read on whether Cherry fits.

Build yours

Want to own your AI workspace?

[email protected]