MCPcopy Index your code
hub / github.com/get-convex/chef

github.com/get-convex/chef @prompts-v0.0.1 sqlite

repository ↗ · DeepWiki ↗ · release prompts-v0.0.1 ↗
964 symbols 2,868 edges 327 files 11 documented · 1%
README

Convex logo

Chef is the only AI app builder that knows backend. It builds full-stack web apps with a built-in database, zero config auth, file uploads, real-time UIs, and background workflows.

Chef's capabilities are enabled by being built on top of Convex, the open-source reactive database designed to make life easy for web app developers.

Development of the Chef is led by the Convex team. We welcome bug fixes and love receiving feedback.

This project was made in collaboration with the Bolt team and is a fork of the stable branch of bolt.diy.

Getting Started

Visit our documentation to learn more about Chef and check out our prompting guide.

The easiest way to build with Chef is through our hosted webapp, which includes a generous free tier. If you want to run Chef locally, you can follow the guide below.

Running Locally

Note: This will use our control plane to provision Convex projects. However, Chef tokens used in this enviroment will not count towards usage in your Convex account.

1. Set up local environment

Run the following commands in your terminal:

nvm install
nvm use
npm install -g pnpm
pnpm i
echo 'VITE_CONVEX_URL=placeholder' >> .env.local
npx convex dev --once # follow the steps to create a convex project in your team

2. Set up Chef OAuth application

Go to the Convex dashboard and create an OAuth application. Redirect URIs will not matter for Chef, but you can set one to http://127.0.0.1:5173 (or whatever port you’ll run the Chef UI on) so that the form can be submitted. To develop using Chef locally, your OAuth app will need to be verified by the Convex team. Contact a Convex team member or click the “Request Verification” menu option to continue.

3. Set up Convex deployment

Open the Convex dashboard and go to Settings → Environment Variables. Then, set the following environment variables:

BIG_BRAIN_HOST=https://api.convex.dev
CONVEX_OAUTH_CLIENT_ID=<value from oauth setup>
CONVEX_OAUTH_CLIENT_SECRET=<value from oauth setup>

4. Add API keys for model providers

Add any of the following API keys in order to enable code generation:

ANTHROPIC_API_KEY=<your api key>
GOOGLE_API_KEY=<your api key>
OPENAI_API_KEY=<your api key>
XAI_API_KEY=<your api key>

Note: you can also add your own API keys through the settings page.

4. Run Chef backend and frontend

Run the following commands in your terminal:

pnpm i
pnpm run dev

## in another terminal
npx convex dev

Congratulations, you now have Chef running locally! You can log in to Chef with your existing Convex account.

Repository Layout

  • app/ contains all of the client side code and some serverless APIs.

  • components/ defines the UI components

  • lib/ contains client-side logic for syncing local state with the server
  • routes/ defines some client and server routes

  • chef-agent/ handles the agentic loop by injecting system prompts, defining tools, and calling out to model providers.

  • chefshot/ defines a CLI interface for interacting with the Chef webapp.

  • convex/ contains the database that stores chats and user metadata.

  • template/ contains the template that we use to start all Chef projects.

  • test-kitchen/ contains a test harness for the Chef agent loop.

Extension points exported contracts — how you extend this code

GenerateAppOptions (Interface)
(no doc)
chefshot/interact.ts
GenerateOptions (Interface)
(no doc)
chefshot/cli.ts
EncodingOpts (Interface)
(no doc)
types/istextorbinary.d.ts
ConvexProfile (Interface)
(no doc)
convex/sessions.ts
Window (Interface)
(no doc)
app/types/global.d.ts
ErrorDisplayProps (Interface)
(no doc)
app/components/ErrorComponent.tsx
ModifiedFile (Interface)
(no doc)
app/utils/diff.ts
ConvexProfile (Interface)
(no doc)
app/lib/convexProfile.ts

Core symbols most depended-on inside this repo

run
called by 94
app/lib/runtime/action-runner.ts
storeChat
called by 55
convex/test.setup.ts
classNames
called by 55
app/utils/classNames.ts
parse
called by 43
chef-agent/message-parser.ts
getChatByIdOrUrlIdEnsuringAccess
called by 35
convex/messages.ts
createChat
called by 27
convex/test.setup.ts
formatNumber
called by 23
app/components/DebugPromptView.tsx
cssVar
called by 23
app/components/workbench/terminal/theme.ts

Shape

Function 694
Method 149
Interface 96
Class 24
Enum 1

Languages

TypeScript100%

Modules by API surface

iframe-worker/worker.bundled.mjs67 symbols
app/lib/stores/workbench.client.ts57 symbols
proxy/proxy.bundled.cjs26 symbols
app/components/workbench/FileTree.tsx21 symbols
app/lib/runtime/action-runner.ts20 symbols
app/components/DebugPromptView.tsx20 symbols
chef-agent/message-parser.ts18 symbols
chef-agent/ChatContextManager.ts17 symbols
convex/lz4.ts16 symbols
app/lib/stores/files.ts16 symbols
convex/messages.ts15 symbols
app/utils/shell.ts15 symbols

Dependencies from manifests, versioned

@ai-sdk/amazon-bedrock2.2.9 · 1×
@ai-sdk/anthropic1.2.12 · 1×
@ai-sdk/google1.2.11 · 1×
@ai-sdk/google-vertex2.2.24 · 1×
@ai-sdk/openai1.3.6 · 1×
@ai-sdk/react1.2.5 · 1×
@ai-sdk/xai1.2.13 · 1×
@aws-sdk/credential-providers3.782.0 · 1×
@aws-sdk/rds-signer3.782.0 · 1×
@blitz/eslint-plugin0.1.0 · 1×
@codemirror/autocomplete6.18.3 · 1×
@codemirror/commands6.7.1 · 1×

For agents

$ claude mcp add chef \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact