netlify-edge-functions

netlify-edge-functions is a cursor rule for Cursor from netlify/context-and-tools. It costs 161 tokens per session (4,038 once invoked), scanned C, original, MIT.

Instructions for writing Netlify Edge Functions, which run JavaScript or TypeScript close to website visitors before a request reaches the main site. They can inspect or change requests and responses.

In plain words
What is it for?
Use it for authentication checks, location-based redirects, A/B tests, personalization, localization, rewrites, and server-rendered pages at the network edge.
Why use it?
It helps avoid routing mistakes and deployment conflicts, especially when a function needs an explicit URL path or when a web framework already generates similar code.

Cursor rule for Cursor

Written for Cursor: a Cursor rule (.mdc).

Good fit Use it for authentication checks, location-based redirects, A/B tests, personalization, localization, rewrites, and server-rendered pages at the network edge.

Compare 6 cursor rules from other repositories ↓
Install with agentmods
npx agentmods add rules/netlify/context-and-tools/netlify-edge-functions
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/netlify/context-and-tools

Made for: Cursor.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for netlify-edge-functions

README.md
[![agentmods](https://agentmods.dev/badge/rules/netlify/context-and-tools/netlify-edge-functions/github.svg)](https://agentmods.dev/rules/netlify/context-and-tools/netlify-edge-functions)
Your own site
<a href="https://agentmods.dev/rules/netlify/context-and-tools/netlify-edge-functions"><img src="https://agentmods.dev/badge/rules/netlify/context-and-tools/netlify-edge-functions/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for netlify-edge-functions

Your own site · 80×15
<a href="https://agentmods.dev/rules/netlify/context-and-tools/netlify-edge-functions"><img src="https://agentmods.dev/badge/rules/netlify/context-and-tools/netlify-edge-functions.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 161 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 4,038 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00161 $0.04038
Opus 5.5 $0.00064 $0.01615
Sonnet 5.5 $0.00032 $0.00808
Haiku 4.5 $0.00016 $0.00404

Measured 9d ago against content hash c18554abc5e9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade C, and why

netlify-edge-functions scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Hidden instructionshighPrompt injection

Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.

<!-- system: agent-context/edge-functions/system.md — human-owned, merged by ctx-gen; edit system.md, not this section -->
cursor/rules/netlify-edge-functions.mdc · 332 lines

How it starts

The opening of the file, as written. The whole thing — 332 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Netlify Edge Functions

Modern syntax (reach for this)

Export a default handler plus a config object. Import Config/Context types from @netlify/edge-functions; Request/Response/URL are global.

import type { Config, Context } from "@netlify/edge-functions";

export default async (request: Request, context: Context) => {
  return new Response("Hello world");
};

export const config: Config = {
  path: "/test",
};

Do not hand-write an edge function when your framework's adapter already generates middleware for the job — duplicating it causes conflicts. Check the framework adapter/reference first.

Edge vs serverless: use edge functions for low-latency request/response manipulation, geolocation logic, auth checks/redirects, and A/B personalization. Use serverless functions for long-running work (up to 15 min), heavy Node.js dependencies, database-heavy operations, background/scheduled tasks, or memory above 512 MB.

File location

  • Default directory: YOUR_BASE_DIRECTORY/netlify/edge-functions. Custom: edge_functions under [build] in netlify.toml (path relative to base directory).
  • Keep the directory outside your publish directory so source files aren't deployed.
  • Extensions: .js, .ts, .jsx, .tsx (.jsx/.tsx useful for SSR).
  • Same-name conflict: if my-function.ts and my-function.js both exist, the TypeScript file is ignored and the JavaScript one is deployed.

Routing — required, or the function silently never runs

⚠️ An edge function without a route (no config export and no netlify.toml declaration) still deploys but never runs — no build error, no warning. When "my edge function does nothing", check the route first.

⚠️ Scope path narrowly. path: "/*" intercepts every request including static assets, adding latency and billing an edge invocation for each one.

Edge functions are not auto-assigned a URL route. Configure via inline config or netlify.toml.

path is a URLPattern expression, must start with /, single string or array:

Read the full file on GitHub · 332 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago Changed c18554abc5e9
  2. 19d ago Changed · +65 lines · +43 tokens per session 4b30b64ec107
  3. 29d ago Changed · +7 lines 529bc0f134ca
  4. 1mo ago First seen · 260 lines · 118 tokens per session scan C aaa323024c45

Subscribe to this mod's changes

netlify-edge-functions is a cursor rule published in the GitHub repository netlify/context-and-tools (41 stars, last pushed 2d ago), licensed MIT. It adds 161 tokens to every session and 4,038 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it C with 1 finding (hidden instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.