agentmarkup - machine-readable websites for Next.js, Vite, Astro, and Nuxt
Build websites AI can understand.
Generate llms.txt, JSON-LD, markdown mirrors, crawler rules, and validation at build time for Next.js, Vite, Astro, Nuxt, or any static site.
Install your npm package.
Add machine-readable output at build time, without runtime JavaScript.
pnpm add -D @agentmarkup/next
Scan what AI can access.
Whatever page you enter, we normalize it to the site root and start the scan there.
Website address
Scan website
Free, no account required.
Choose only the package you need.
The framework integrations share the same configuration and output. The CLI covers any static build, while Audit checks what AI crawlers receive after deployment.
Supported Packages
- Next.js
@agentmarkup/next: Build-time integration for static Next.js output. - Vite
@agentmarkup/vite: Plugin for Vite applications and static sites. - Astro
@agentmarkup/astro: Native integration for Astro builds. - Nuxt
@agentmarkup/nuxt: Module for prerendered Nuxt output. - Any static site
@agentmarkup/cli: Run AgentMarkup after any framework finishes building. - Live audit
@agentmarkup/audit: Test a deployed URL using the user-agents of real AI crawlers.
The signals AI systems actually use.
AgentMarkup creates and validates the public files, structured data, discovery links, and access rules that help machines interpret a website reliably.
llms.txt discovery
Generate llms.txt and optional llms-full.txt, then publish the homepage discovery link.
JSON-LD structured data
Add XSS-safe schema.org markup with built-in presets or your own custom schemas.
AI crawler access
Manage GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, and existing robots.txt rules.
Markdown mirrors
Publish clean .md companions with canonical relationships when raw HTML is not the clearest machine-readable source.
Usage signals
Publish Content-Signal headers and an optional A2A Agent Card without changing the runtime application.
Build validation
Audit the final public output locally, in CI, or through the hosted checker before it reaches production.
Useful whether you sell, publish, or build a brand.
- Products E-commerce: Make products visible in AI shopping recommendations with product schema, llms.txt catalogs, and crawler access.
- Reputation Brand awareness: Use organization schema, FAQ markup, and clear positioning so AI systems accurately represent your brand.
- Publishing Content websites: Power Google rich results and AI citations with Article, FAQ, and WebSite schemas before broken markup goes live.
Frequently Asked Questions
What does agentmarkup actually do?
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.
Does this improve my search rankings?
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.
Is llms.txt a standard?
It is a proposal from llmstxt.org, not an official standard. The website checks and structured-data features remain useful without it.
Is the config the same for Next.js, Vite, Astro, and Nuxt?
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.
What is @agentmarkup/core for?
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.
Does @agentmarkup/next handle fully dynamic SSR routes automatically?
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.
Does it add any runtime JavaScript?
No browser runtime is added by AgentMarkup. The adapters run during build or post-build processing and output static files or server header rules.
Do I need markdown mirrors on every page?
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.
Can I use my own JSON-LD schemas instead of presets?
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.
Will this break my existing robots.txt?
No. The plugin updates only its marked section and leaves your existing rules intact.