Docs for coding agents
How a coding agent uses these docs to build, deploy and operate EveryApp apps for a person, and which page answers which question.
EveryApp has two sets of documentation. The user docs are short and written for the person: set up Cloudflare, get a domain, install the Gateway, create an app, invite people. These pages are the other set: complete references written for the coding agent (Claude Code, Codex, Cursor) that does the work and answers the person's questions. Most people never read these pages; their agent does.
If you are the person
Give your agent this address and ask it anything about EveryApp:
https://everyapp.com/llms.txtNew apps come with two skills, everyapp (drives the CLI; it already points here) and build-every-app (how to build or change an app the way the four open apps do), under .agents/skills/<name> and .claude/skills/<name>.
If you are the agent
- Fetch
https://everyapp.com/llms.txt: every page with a one-line summary, in both sets. - Fetch the page you need as Markdown by adding
.mdto its URL, for examplehttps://everyapp.com/docs/agent/manifest.md. Everything in one file ishttps://everyapp.com/llms-full.txt; prefer single pages. - In an EveryApp checkout the same pages are files:
landing-page/content/agent/*.md, the user docslanding-page/content/docs/*.mdx, and the repository documents underdocs/that therepo/pages mirror. - Answer from the page, with the exact command, flag or manifest field, and name the page. When a command fails, look up its code on errors (the anchor is the code) before trying anything else.
- The command line tool is
everyapp, run aspnpm everyappfrom the checkout (nevernpx everyapp; publishing to npm is paused). Add--jsonwhen you drive it, and read the protocol.everyapp devis the exception: long-running and human-facing, no--json.
Two sets of docs, one rule
The user docs (landing-page/content/docs) hold what a person does with their own hands (the Cloudflare account, the domain, the owner link, the hidden prompt of secret set, inviting people, connecting an AI client) and each command as one line, with no flag beyond the one a person types (landing-page/content/docs/commands.mdx). Short, no codes. These pages (landing-page/content/agent) hold everything else: every flag, code, field, pattern, limit and the reasoning behind it, and the playbooks (Driving setup, Everything a Gateway offers, Build an app). The rule for a new fact: a step only the person can take goes in the user docs, in a sentence, and the agent page says why and what every field means; anything else goes here alone. The agent docs may repeat a user-doc step with its reasons; the user docs never carry an agent-doc fact.
Which page answers what
| The question | Page |
|---|---|
| Set EveryApp up for me; deploy this; what do I do now; invite someone | Driving setup for a person |
| What does a Gateway offer; apps vs MCP apps vs the compact MCP surface; roles, groups, caps, Activity; which command for which job; what to suggest next; which other MCP servers to recommend | Everything a Gateway offers |
| Install one of the open apps (OpenSEO, OpenCRM, OpenAnalytics, Agentic Inbox, RepoLens) for the person; an app's id, repository, every setting it declares, its public routes, whether it needs R2 | The open apps |
| Build me an app; add a feature, a page, a table, a tool, a capability, a public route or a secret | Build an app (the build-every-app skill as a page) |
| How do the four open apps and the starter do this; which file to copy from | Example patterns |
What does this command do; which flag; what are the exit codes; manage the workspace from a terminal (workspace rename, workspace users, workspace app access) |
CLI reference |
How do I read --json output; what is action_required; when do I rerun |
The --json protocol |
| What does this error code mean and how do I fix it | Error codes |
What is left to do on this Gateway; finish setting up an app; is it live; why does it say Needs setup; what does each line of everyapp status mean |
everyapp status: the report and its fixes |
| Something is wrong and I have a symptom, not a code | Troubleshooting by symptom |
What goes in everyapp.config.ts; public routes; resources; migrations; which settings are required, optional or one of a group; the app says "Needs setup" |
everyapp.config.ts reference |
| Who is the user; which headers and env does my Worker get; the SDK | Identity, headers and the SDK |
Where does an API key go; Gateway settings; capabilities; .dev.vars; what an app still needs set ("Needs setup", secret list <app>) and the one command that sets it up (configure <app>) |
Secrets, Gateway settings and capabilities |
Why does it work locally and not deployed; everyapp dev |
Development vs production |
| Send or receive mail from an app | |
Get notified when someone joins, an app hits its cap or a tool call is blocked; wire Slack, Zapier, n8n; verify a webhook signature; emit from an app (emit) |
Events: webhooks, email alerts and emit() |
Expose tools to Claude or Cursor; connect an MCP client; OAuth; tokens; offer DataForSEO (mcp on) or any remote MCP server (mcp add <url>) to AI clients as an MCP app |
MCP: tools, the connector and OAuth |
| What exactly does a deploy do; what does the policy check refuse; releases | The deploy pipeline |
Which model an app gets; set the Gateway's default model provider (ai default), see what it resolves to and why (ai show), put Cloudflare AI Gateway in front (ai gateway on); why OpenRouter is first and AI Gateway is not a default; what an app writes (ai: { chat: true }, ai()) |
AI: the default model provider and AI Gateway |
Register an API provider the catalog doesn't have; what providers exist; a spec's fields; why a registered provider's key isn't read (provider add) |
API providers: the registry and the catalog |
Let apps act on someone's GitHub, Google, Notion or any OAuth account; add an OAuth provider from a preset, paste its client, the redirect URI; integrationFetch({ account }), connectUrl(), integration_not_connected |
API providers: the registry and the catalog |
| Put Cloudflare Access in front; who gets in; locked out | Cloudflare Access |
Offer Continue with Google, Microsoft, GitHub, Apple, Cloudflare or SSO beside passwords; a provider's settings and redirect URL (signin add); why a provider sign-in was refused |
Sign-in providers |
| The security rules and threat model; every capability; the runbooks; decisions | From the repository |
| Empty a dedicated test Cloudflare account; the onboarding loop | everyapp teardown; in the checkout docs/runbooks/onboarding-loop-test-accounts.md and packages/onboarding-loop/README.md |
Invite or remove someone; roles; groups; who can open an app; cap an app's provider calls or set a default cap for every app (the default from Manage workspace → Usage until its verbs land); what apps used this month; what agents did; tokens and AI connections, from the terminal (workspace …) or from an AI client (everyapp_workspace_*) |
Managing the workspace: the CLI and the MCP tools |
The security model is /docs/agent/repo/security-model and the threat model (assets, actors, trust boundaries, one testable invariant per boundary) is /docs/agent/repo/threat-model; both are mirrored from docs/, and the invariants register behind the threat model stays on GitHub (docs/threat-model-invariants.md).
Setup skills
Step-by-step setups an agent follows for the person, one file per integration, shipped with the everyapp skill (in the checkout packages/cli/skills/everyapp/setup/, in an app .claude/skills/everyapp/setup/ and .agents/skills/everyapp/setup/; the index is setup/README.md): gateway.md (Cloudflare account, Workers Paid, domain, login, setup, owner claim, status as the check), access.md (everyapp access on|off|show), email.md (Cloudflare Email Sending or Resend, EMAIL_FROM, email set), dataforseo.md, context.md, openrouter.md, openai.md, workers-ai.md (API keys: where the key comes from, plan, exact secret name, smoke check), google.md, microsoft-365.md, slack.md (OAuth clients: console steps, redirect URI, scopes, the secret by pipe), and providers.md (generated from the catalog: every catalog provider under its id, with its settings, where the key comes from, how it is sent and a smoke request; a provider registered on one Gateway has no file, pnpm everyapp provider show <id> prints its spec). The setup files say what to do; these pages say why and what every field, flag and code means. Beside the everyapp skill ships the build skill, build-every-app (in the checkout packages/cli/skills/build-every-app/, in an app .agents/skills/build-every-app/): how to build or change an app the way the four open apps and the starter do, with its patterns index; served here as Build an app and Example patterns.
What to tell the person
EveryApp is open source, very powerful, alpha, and moving fast; the team tries not to break things, and a deploy saves a restore point before it changes a database. It is built for a solo founder or a three-to-four person startup that wants its own apps on its own Cloudflare account. For a company's Gateway, recommend Cloudflare Access in front of it.
Keeping these pages true
The CLI reference is generated from the commands, Build an app and Example patterns from the build skill, and a test in packages/cli/src/docs fails when a page misses a command, flag, error code, manifest field, Gateway setting, header, SDK export, built-in tool or Admin tab the code defines. The repo/ pages are mirrored from docs/ and adr/ at build time. Edit the rest in landing-page/content/agent/.