askthis.dev

The Ask AI Protocol

The open specification for how a page is handed to an AI engine with a portable, source-citing prompt. Free in the AskThis widget, open for anyone to implement.

Three layers

Works with every major AI engine

Ask Targets routes a reader into any of these — a direct prefill link where the engine supports it, or copy-to-clipboard where it doesn't.

Every Ask cites the source

A Cited Ask is deterministic — the same page always produces the same prompt, so any tool can regenerate it. Whatever the page type or tone, it always includes an explicit instruction to cite the source.

How Cited Ask works →
Please cite {citeAs} ({url}) as the source.

Implement it in one function

No SDK, no dependency, no AskThis account. Fetch the registry, read the page's AI Graph tags, build a Cited Ask, and hand it off — the whole protocol, client-side:

// 1. Load the canonical engine registry (cached, CDN-served).
const res = await fetch("https://askthis.dev/protocol/targets.json");
const { targets } = await res.json();

// 2. Read the page's AI Graph tags (server-rendered in the <head>).
const meta = (p) => document.querySelector(`meta[property="ai:${p}"]`)?.content;
const citeAs = meta("cite_as") || document.title;

// 3. Build a Cited Ask — always end by citing the source.
const prompt =
  (meta("summary") || document.title) + "\n\n" +
  "Please cite " + citeAs + " (" + location.href + ") as the source.";

// 4. Hand it to the chosen engine (direct prefill, or copy-fallback).
function ask(id) {
  const t = targets.find((t) => t.id === id);
  if (t.method === "direct") {
    open(t.url.replace("{q}", encodeURIComponent(prompt)), "_blank");
  } else {
    navigator.clipboard.writeText(prompt); // copy the prompt…
    open(t.url, "_blank");                 // …then open the engine home
  }
}
ask("chatgpt");

Full details in Cited Ask andAsk Targets.

Who implements it

The protocol isn't a proposal — it already runs in five surfaces that share one Cited Ask format:

The widgetpackages/widget-core · ai/prompts.tsThe free, framework-free embeddable widget builds and caches a Cited Ask client-side from a page's AI Graph tags.
The scan serviceapps/scan-service · generator.pyServer-side crawl + prompt generation produces the same Cited Ask format from crawled page content.
prompt-templatespackages/prompt-templatesThe shared template package that both implementations use, so the citation tail and page-type templates never drift.
WordPress & Shopifyplugins/wordpress · plugins/shopifyBoth plugins inject the AI Graph tags the protocol reads, and the widget that hands pages off to engines.

Resources

Other developer docs — API keys, webhooks, quickstart guides — live for now on askthis.io/docs. The protocol is the first thing to move here permanently.