llms.txt discovery
Generate llms.txt and optional llms-full.txt, then publish the homepage discovery link.
Open-source npm packages
Generate llms.txt, JSON-LD, markdown mirrors, crawler rules, and validation at build time for Next.js, Vite, Astro, Nuxt, or any static site.
Build with AgentMarkup
Add machine-readable output at build time, without runtime JavaScript.
pnpm add -D @agentmarkup/nextCheck your website
Whatever page you enter, we normalize it to the site root and start the scan there.
One toolkit, every build
The framework integrations share the same configuration and output. The CLI covers any static build, while Audit checks what AI crawlers receive after deployment.
@agentmarkup/nextBuild-time integration for static Next.js output.
View on npmVite@agentmarkup/vitePlugin for Vite applications and static sites.
View on npmAstro@agentmarkup/astroNative integration for Astro builds.
View on npmNuxt@agentmarkup/nuxtModule for prerendered Nuxt output.
View on npmAny static site@agentmarkup/cliRun AgentMarkup after any framework finishes building.
View on npmLive audit@agentmarkup/auditTest a deployed URL using the user-agents of real AI crawlers.
View on npmTechnical coverage
AgentMarkup creates and validates the public files, structured data, discovery links, and access rules that help machines interpret a website reliably.
Generate llms.txt and optional llms-full.txt, then publish the homepage discovery link.
Add XSS-safe schema.org markup with built-in presets or your own custom schemas.
Read the JSON-LD guideManage GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, and existing robots.txt rules.
Publish clean .md companions with canonical relationships when raw HTML is not the clearest machine-readable source.
Publish Content-Signal headers and an optional A2A Agent Card without changing the runtime application.
Explore the learning centerAudit the final public output locally, in CI, or through the hosted checker before it reaches production.
Read the audit guideMake products visible in AI shopping recommendations with product schema, llms.txt catalogs, and crawler access.
Explore e-commerce guidanceReputationUse organization schema, FAQ markup, and clear positioning so AI systems accurately represent your brand.
Explore brand guidancePublishingPower Google rich results and AI citations with Article, FAQ, and WebSite schemas before broken markup goes live.
Explore content guidanceQuestions, answered
Read clear answers about the checks, setup, and what AgentMarkup changes on your website.
It checks whether AI systems can find, understand, and access your website, then gives you clear next steps. Developers can also use AgentMarkup packages to improve machine-readable website output.
Structured data can support richer search results, but AgentMarkup does not promise rankings or traffic. It helps make your website easier for people, search engines, and AI systems to read.
It is a proposal from llmstxt.org, not an official standard. The website checks and structured-data features remain useful without it.
The shared AgentMarkupConfig object is the same across all adapters. The integration point changes: Next.js uses withAgentmarkup, Vite uses plugins, Astro uses integrations, and Nuxt uses the agentmarkup key. The same config also drives the CLI.
The core package contains the generators and validators without any framework binding. Use it for a custom build script, prerender pipeline, or a route that needs direct integration instead of an adapter-owned build step.
No. The Next adapter is strongest where Next emits build-time HTML. For fully dynamic SSR routes with no build-time HTML file, use the re-exported @agentmarkup/core helpers directly in the route.
No browser runtime is added by AgentMarkup. The adapters run during build or post-build processing and output static files or server header rules.
No. They are most useful when raw HTML is thin, noisy, or heavily client-rendered. If pages already serve substantial HTML, keep HTML as the primary fetch target.
Yes. Pass any object with an @type field. AgentMarkup adds the @context, escapes the output for XSS safety, and validates that the @type is present.
No. The plugin updates only its marked section and leaves your existing rules intact.