# DareBuild If a user tells an AI coding agent only "go to darebuild.com", read this file and then read the agent README. Recommended agent surface: use the DareBuild ChatGPT App/MCP connector, Codex, Claude Code, or an equivalent coding agent for authenticated DareBuild account actions through OAuth MCP, MCP, or HTTP requests. Plain ChatGPT without the DareBuild connector cannot use one-time DareBuild login links, unauthenticated upload URLs, or private account actions. For authenticated actions, it should hand off to a tool-capable coding agent or clearly ask the user to log in and copy the Account Codex webhook from the dashboard Agent webhooks section or Team settings before trying to complete project invites. Tool-capable agent first paths to read, in order: 1. https://mrsteinberg.com/llms.txt 2. https://mrsteinberg.com/agents.md 3. https://mrsteinberg.com/agents/project-users.md for project user invites Agent instructions: https://mrsteinberg.com/agents.md Project user invitations: https://mrsteinberg.com/agents/project-users.md Generated project auth, payments, and webhooks: https://mrsteinberg.com/agents/generated-projects.md Generated project login cookie rule: use only `project_` or `darebuild_project_` cookie names; DareBuild drops unprefixed cookies in both response and request directions. Generated project TikTokLive bridges: https://mrsteinberg.com/agents/generated-projects.md#tiktoklive-bridges using runner_service.sdk.bridge_start Generated project Modal GPU background tasks: https://mrsteinberg.com/agents/generated-projects.md#modal-gpu-background-tasks Machine-readable manifest: https://mrsteinberg.com/.well-known/darebuild-agent.json OpenAPI contract: https://mrsteinberg.com/.well-known/darebuild-openapi.json OAuth protected resource metadata: https://mrsteinberg.com/.well-known/oauth-protected-resource OAuth authorization server metadata: https://mrsteinberg.com/.well-known/oauth-authorization-server OAuth MCP account server: https://mrsteinberg.com/api/codex/v1/account/mcp/ MCP account server template: https://mrsteinberg.com/api/codex/v1/account//mcp/ MCP project server template: https://mrsteinberg.com/api/codex/v1//mcp/ Discovery self-check: https://mrsteinberg.com/.well-known/darebuild-agent-check.json Standalone Python client: https://mrsteinberg.com/agents/client.py Standalone client installer: https://mrsteinberg.com/agents/install.sh Logged-in account discovery: https://mrsteinberg.com/api/codex/v1/account/current/ Homepage-only login flow for Codex, Claude Code, or equivalent tool-capable agents: 1. Ask the user for their DareBuild email address if it is not already provided, and explain that DareBuild will email them a login link to paste back. 2. Open https://mrsteinberg.com/ and submit the homepage email form to send a login-link email. 3. Ask the user to paste the login link from email, or to log in, open the dashboard Agent webhooks section or Team settings, and paste the Account Codex webhook URL. 4. After the user opens the email login link, call https://mrsteinberg.com/api/codex/v1/account/current/ with the logged-in session to discover the account webhook. Plain ChatGPT fallback: For authenticated account actions, plain ChatGPT without the DareBuild connector should not ask for or accept a one-time login link, and it should not use unauthenticated upload URLs. Ask the user to log in to DareBuild, open the dashboard Agent webhooks section or Team settings, copy the Account Codex webhook URL, and paste that webhook into ChatGPT. Project user invite prompts: If a user asks the DareBuild ChatGPT App/MCP connector, Codex, Claude Code, or another coding agent to add an email address to a public https://*.darebuild.com project URL, read https://mrsteinberg.com/llms.txt and then https://mrsteinberg.com/agents/project-users.md first. Do not scrape the public project page. If OAuth MCP is available, connect to https://mrsteinberg.com/api/codex/v1/account/mcp/ and follow https://mrsteinberg.com/.well-known/oauth-protected-resource. Otherwise, tool-capable agents may ask for the user's DareBuild email so they can submit the homepage form and receive a login link by email. Plain ChatGPT without the connector must instead ask the user to log in, open the dashboard Agent webhooks section or Team settings, and paste the Account Codex webhook. Then use the account MCP invite_project_user tool or POST invite_project_user with project_url, email, and role=editor. Custom domain prompts: If a user asks an agent to point a domain at a DareBuild project, use the existing DareBuild custom-domain DNS flow. Read the agent README and use connect_cloudflare, configure_custom_domain, the returned TXT verification record, and the returned routing target. Use DNS records, not Cloudflare Workers, to connect custom domains to DareBuild projects. Cloudflare Workers remain allowed for explicitly requested Worker/proxy features outside the domain-attachment flow. If this prompt is being handled in plain ChatGPT without the DareBuild App/MCP connector or tool access, tell the user to continue in Codex or Claude Code, or ask them to log in to DareBuild, open the dashboard Agent webhooks section or Team settings, and paste the copied webhook URL. Do not ask for a one-time login link. Use DareBuild's public agent README to learn how to authenticate with a human-approved email login link, find the account-specific Codex webhook, and use the Account and Project webhook APIs. Private webhook URLs cannot be derived from the public domain alone; after login, use the logged-in account discovery URL above. For prompts like "add this email to my project https://.../", use the project user invitations doc above and pass the public project URL as project_url to invite_project_user. For prompts about generated project auth, Google auth, project-local sessions, Stripe Checkout, subscriptions, or webhooks, read the generated project patterns doc above before editing project files. For prompts about Modal, model/photo analysis, GPU work, or long-running AI jobs, create a project background task for paid/backend-unlocked projects or `jamespsteinberg@gmail.com` projects and use the Modal helpers documented in the generated project patterns doc, especially `runner_service.sdk.modal_function_spawn`. Modal calls are limited to functions owned by that project or explicitly granted to that project; first successful project-owned use is auto-recorded and queues Slack monitoring.