The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Bento MCP listing page.
Bento Surf is an AGPL-3.0-only, self-hosted creator application. This release is a local setup foundation: it includes application source, configuration examples, and migrations, but does not claim fresh-database, provider, MCP/WebMCP browser, or deployment proof.
The creator app includes Content Agent, Brain, discovery and routines; multiple workspaces; knowledge and Telegram integrations; social analytics and scheduling, including Instagram Trial Reels; and the latest authenticated dark-mode UI.
Install Bun and the Supabase CLI, then create a Supabase project you control.
On a fresh local instance, open /self-hosted-setup to enter the required Supabase and instance keys before creator sign-up. The screen explains each setting and lets you add optional integration keys. It generates a configuration file locally in your browser; put that file at the repository root as .env. The app does not receive or store values typed on that screen. Restart the app after applying the file. On a hosted deployment, set the same variables in your host and rebuild so the VITE_ public settings reach the browser. Keep the downloaded file private. You can revisit the screen later to prepare additional optional integrations, but it does not read your existing secrets back from the server.
Set WORKSPACE_COOKIE_SIGNING_KEY to an independent random value of at least 32 bytes. Set the core Supabase and URL values in .env, including SUPABASE_PROJECT_ID, SUPABASE_DB_URL, and MIGRATION_CONFIRMATION=MIGRATE:<SUPABASE_PROJECT_ID>. Preview and apply migrations only through the guarded workflow:
Then run:
Optional integrations remain disabled until you add their configuration. See configuration; treat local checks as local evidence only.
For Cloudflare, see the deployment guide. A compatible coding agent can follow skills/deploy-bento/SKILL.md to configure and verify an instance while keeping provider approvals and live external actions under your control.
See verification status for the exact boundary between local checks and provider/deployment proof.
The public tree contains the complete self-hostable creator and customer product: Link, Store, Email Marketing, Priority DM, Calendar, Community, Post Scheduler, Social Insights, Auto-DMs, Earn, Settings, customer checkout/library flows, remote OAuth MCP, and page-scoped WebMCP. Provider-backed features remain disabled until the instance owner supplies their own credentials and approvals.
The reviewed private-source snapshot is recorded in docs/upstream-source.json. Corporate marketing and Bento-only founder operations remain outside the public boundary.
The Cursor plugin for the hosted Bento remote MCP lives in cursor-plugin/. It signs in with OAuth on a Bento account and does not include API keys. Install it from the Cursor Marketplace, or add the remote MCP URL by hand using that document.
The Grok Build plugin for the same hosted MCP lives in grok-plugin/. It is a marketplace package only. Grok Build loads that directory's MCP config; it does not change how this app runs.
Each plugin sits in its own directory so a marketplace client does not package this app's skills/ tree as plugin components.
This repository includes the application and public creator/product pages. Corporate marketing pages and their related content are intentionally excluded. See the source boundary.
This project is licensed under the GNU Affero General Public License v3.0 only. If you modify it and let users interact with it over a network, the AGPL requires offering those users the corresponding source. The license text is in LICENSE.