Overview

ai.txt is a proposed root file for declaring how AI systems may train on, quote, or summarize a site’s content. Several unratified proposals share the name, including Spawning’s per-file-type opt-out, and no major AI vendor documents reading the file, so it states intent without enforcing it. The LLM discoverability standard requires a permissive /ai.txt next to agents.txt; the restrictive form below is for sites outside the standard. Quick definition: ai-txt.

Keep ai.txt apart from llms.txt and robots.txt

Each file has one job, all served at the site root.

  • ai.txt states what AI systems may do with the content. It is policy.
  • llms-txt states what is worth reading. It is an index.
  • robots.txt states what crawlers may fetch, and through tokens such as GPTBot and Google-Extended it is the control vendors document for training opt-outs.

ai.txt does not replace the robots.txt tokens.

Serve it at the root as text/plain

Serve https://<your-domain>/ai.txt with Content-Type: text/plain. Static hosts serve it from the build root. Do not nest it under /.well-known/ or any other prefix.

Use robots-style directives, one per line

The format mirrors robots.txt: user-agent blocks with * as the fallback. The purpose-level directives below are the form this site uses, not a ratified vocabulary; Spawning’s original format instead lists file types, such as Disallow: *.jpg.

  • User-Agent: the agent or vendor the block covers.
  • Disallow: and Allow: path prefixes.
  • Train:, Quote:, Summarize: with yes or no.
  • Contact: an email or URL for licensing.

The permissive house form:

# https://example.com/ai.txt
User-Agent: *
Train: yes
Quote: yes
Summarize: yes
Contact: ai-policy@example.com

A restrictive form for a site outside the standard allows quoting and summarizing, refuses training, and keeps agents out of paid paths:

User-Agent: *
Train: no
Quote: yes
Summarize: yes

User-Agent: GPTBot
Disallow: /paid/

Enforce through robots.txt, never ai.txt alone

ai.txt is advisory: compliant vendors honor it and others ignore it.

  • Mirror critical restrictions in robots.txt under each vendor’s documented token: GPTBot (OpenAI training), ClaudeBot (Anthropic training), CCBot (Common Crawl), and Google-Extended. A site that follows the standard may not root-disallow them.
  • Google-Extended is a product token for Gemini training and grounding. It never appears in logs, and it does not control Search, AI Overviews, or AI Mode; use nosnippet or noindex for those.
  • Search and user-fetch agents such as OAI-SearchBot and Claude-SearchBot are separate tokens. Blocking them removes you from those engines’ answers.
  • Do not rely on noai or noimageai meta tags. They are a non-standard convention that originated at DeviantArt, and none of Google, OpenAI, or Anthropic documents honoring them. This standard counts them as a conformance failure.
  • Enforce paid or private content at the application layer.

Watch the IETF AIPREF work

The standards-track route is the IETF AI Preferences (AIPREF) working group, which defines a vocabulary and two attachment points: a Content-Usage HTTP header and a Content-Usage rule in robots.txt, extending RFC 9309. The vocabulary has three categories, train-ai, ai-use, and search, each set to y or n. As of October 2026 the vocabulary and attachment drafts are still Internet-Drafts, not RFCs.

Content-Usage: train-ai=n

Drafts say plainly that preferences are not a security mechanism. Re-check the drafts yearly and adopt the syntax once a vendor documents honoring it.

Validate the file in the build

Check that the file exists at the build root, each non-comment line is a known directive or User-Agent: header, path prefixes start with /, and Train, Quote, and Summarize values are yes or no. There is no official validator; a regex pass and a deploy-time HEAD check suffice.