Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/bizibeast/bento-surf-open-source itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 21, 2026Bento Surf
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.
Local setup
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.
bun install
cp .env.example .env
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:
bun scripts/migrate-supabase.ts --dry-run
bun scripts/migrate-supabase.ts
Then run:
bun run dev
bun run check
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.
Product coverage
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.
On /content, WebMCP exposes the self-hosted Brain, Media, Routines, Agent, and Discover reads and actions with bounded responses that omit private media URLs and provider payloads. It also opens the visible Content tabs. Hosted subscription cancellation and founder retention metrics do not apply to a self-hosted instance. OAuth approval, credentials, and final payment-provider steps stay in the visible UI.
The reviewed private-source snapshot is recorded in docs/upstream-source.json. Corporate marketing and Bento-only founder operations remain outside the public boundary.
Cursor Marketplace / MCP plugin
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.
Source boundary
This repository includes the application and public creator/product pages. Corporate marketing pages and their related content are intentionally excluded. See the source boundary.
License
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.