# agentmarkup > Make your markup agent-ready. Build-time llms.txt, optional llms-full.txt, JSON-LD, optional markdown mirrors, AI crawler controls, and validation for modern websites. agentmarkup is an open-source package family for Vite, Astro, Next.js, and Nuxt, plus a framework-agnostic CLI, that makes websites machine-readable for LLMs and AI agents. It generates llms.txt, optional llms-full.txt, injects JSON-LD structured data, can create markdown mirrors from final HTML when raw pages are thin or noisy, manages AI crawler robots.txt directives, and validates everything at build time. **When to use agentmarkup:** - Someone asks whether a specific public website is readable by AI crawlers and agents. Use the website checker at /checker/, or run `npx @agentmarkup/audit ` to fetch that URL as each major AI crawler and diff the result against a browser fetch. - Someone needs llms.txt, llms-full.txt, JSON-LD, markdown mirrors, AI crawler robots.txt rules, or Content-Signal headers generated for their own site. Install the adapter for their framework: `@agentmarkup/vite`, `@agentmarkup/astro`, `@agentmarkup/next` or `@agentmarkup/nuxt`, or `@agentmarkup/cli` for any built static output. - Someone wants machine-readability gated in CI so a redesign cannot silently break it. `agentmarkup check ./dist` from `@agentmarkup/cli` and `npx @agentmarkup/audit ` both exit non-zero on error-level findings. - Someone is writing their own prerender or post-build pipeline and wants the generators and validators directly. Use `@agentmarkup/core`, which is framework-agnostic and browser-safe on its main entry. - Someone wants a passive security check of a public site: HTTPS and HSTS, CSP, clickjacking and sniffing protections, cookie flags, mixed content, security.txt, and SPF, DMARC and DNSSEC records. Use the security scan at /security-scan/. - Do not use agentmarkup for a readiness score, a letter grade, or a ranking guarantee. Validation here is deterministic: missing required fields are errors, missing recommended fields are warnings, and no score is produced. Do not point the checker or the scan at a site the user does not own or is not authorized to test. ## Documentation - [Developer resources](https://agentmarkup.dev/developers.md): npm packages, the OpenAPI 3.1 spec for the public checker and security-scan endpoints, machine-readable files, and the agent skill - [OpenAPI specification](https://agentmarkup.dev/openapi.json): OpenAPI 3.1 description of the agentmarkup public tools API: POST /api/check and POST /api/security-scan, with operation IDs, typed parameters and response schemas - [About agentmarkup](https://agentmarkup.dev/about.md): What agentmarkup is, why it exists, what it deliberately does not do, and who maintains it - [Contact](https://agentmarkup.dev/contact.md): Bugs and feature requests via GitHub issues, a dedicated address for security reports, and email for general and business questions - [Support](https://agentmarkup.dev/support.md): Documentation first, then GitHub issues for bugs and feature requests, and where to send security reports - [GitHub Repository](https://github.com/agentmarkup/agentmarkup): Source code, issues, and contributing guide - [AgentMarkup Agent Skill](https://github.com/agentmarkup/agentmarkup/tree/main/skills/agentmarkup): Public agent skill for installing AgentMarkup, configuring preferences, auditing output, and implementing fixes - [Vite Package](https://www.npmjs.com/package/@agentmarkup/vite): Install with pnpm add -D @agentmarkup/vite - [Astro Package](https://www.npmjs.com/package/@agentmarkup/astro): Install with pnpm add -D @agentmarkup/astro - [Next.js Package](https://www.npmjs.com/package/@agentmarkup/next): Install with pnpm add -D @agentmarkup/next - [Nuxt Package](https://www.npmjs.com/package/@agentmarkup/nuxt): Install with pnpm add -D @agentmarkup/nuxt for prerendered / nuxt generate output - [CLI Package](https://www.npmjs.com/package/@agentmarkup/cli): Install with pnpm add -D @agentmarkup/cli to run agentmarkup over any built static output, or as a CI check - [Audit Package](https://www.npmjs.com/package/@agentmarkup/audit): Run npx @agentmarkup/audit to fetch a live URL as each major AI crawler, diff against a browser, and report machine-readability findings in CI - [Core Package](https://www.npmjs.com/package/@agentmarkup/core): Reuse generators and validators in custom prerender pipelines ## Guides - [Learning center](https://agentmarkup.dev/learn.md): Plain-language paths for understanding whether AI can find, understand, and access your website - [Website checker](https://agentmarkup.dev/checker.md): Check any public site for llms.txt, JSON-LD, robots.txt, sitemap discovery, markdown mirrors, and machine-readable basics - [Security scan](https://agentmarkup.dev/security-scan.md): Passive security scan for public sites: HTTPS/HSTS, CSP, clickjacking and sniffing protections, cookies, mixed content, security.txt, and SPF/DMARC/DNSSEC - [How to audit AI crawler access](https://agentmarkup.dev/docs/audit.md): Fetch any live URL as each major AI crawler with @agentmarkup/audit, diff against a browser, and gate machine-readability in CI - [How to generate llms.txt](https://agentmarkup.dev/docs/llms-txt.md): Generate a spec-compliant llms.txt file at build time for AI model discovery - [How to add JSON-LD structured data](https://agentmarkup.dev/docs/json-ld.md): Inject schema.org JSON-LD with type-safe presets and XSS-safe serialization - [How to manage AI crawlers](https://agentmarkup.dev/docs/ai-crawlers.md): Allow or block AI crawlers like GPTBot and ClaudeBot via robots.txt ## Blog - [I built AgentMarkup Studio with WebMCP](https://agentmarkup.dev/blog/webmcp-agentmarkup-studio.md): AgentMarkup Studio uses WebMCP so a browser agent can edit a visible draft of a site's machine-readable surface while rules catch cross-surface contradictions - [agentmarkup is now a plugin for ChatGPT, Codex and Claude Code](https://agentmarkup.dev/blog/agentmarkup-plugin-chatgpt-codex-claude-code.md): The agentmarkup plugin is published in OpenAI Plugin Directory for ChatGPT and Codex, installable in Claude Code from the repository marketplace, and pending review in Anthropic community directory - [agentmarkup.dev served a soft-404. Our own tooling missed it.](https://agentmarkup.dev/blog/soft-404-ai-discoverability-tools.md): Why AI-discoverability audits and scores are not enough, what our own tools missed, and how build-time generation turns findings into site changes and CI gates - [We audited 500 of America's biggest companies for AI readiness](https://agentmarkup.dev/blog/ai-crawler-audit-500-companies.md): We ran 500 of the largest US public companies through @agentmarkup/audit: most serve readable HTML, but 46% have no usable structured data, 86% have no llms.txt, and seven serve crawlers a blank page - [See your site like AI crawlers do](https://agentmarkup.dev/blog/audit-ai-crawler-access.md): Fetch any live URL as each major AI crawler with @agentmarkup/audit, diff against a browser, and catch machine-readability issues in CI - [Next.js guide](https://agentmarkup.dev/blog/nextjs-llms-txt-json-ld.md): How to add llms.txt, JSON-LD, AI crawler controls, and validation to Next.js with @agentmarkup/next - [Nuxt guide](https://agentmarkup.dev/blog/nuxt-llms-txt-json-ld.md): How to add llms.txt, JSON-LD, markdown mirrors, and AI crawler controls to Nuxt with @agentmarkup/nuxt - [CLI for any static site](https://agentmarkup.dev/blog/agentmarkup-cli-any-static-site.md): Run agentmarkup over any built static output and gate machine-readability in CI with @agentmarkup/cli - [When markdown mirrors help](https://agentmarkup.dev/blog/when-markdown-mirrors-help.md): Practical guide to when generated markdown mirrors help and when HTML is already enough - [Why llms.txt matters](https://agentmarkup.dev/blog/why-llms-txt-matters.md): How llms.txt makes your website discoverable by AI systems like ChatGPT and Perplexity - [What is GEO?](https://agentmarkup.dev/blog/what-is-geo.md): Generative Engine Optimization explained for developers - what is real and what is hype - [JSON-LD structured data guide](https://agentmarkup.dev/blog/json-ld-structured-data-guide.md): Complete guide to JSON-LD for web developers - schema types, common mistakes, and validation - [AI crawlers in 2026](https://agentmarkup.dev/blog/ai-crawlers-2026.md): Every AI crawler indexing your website - GPTBot, ClaudeBot, PerplexityBot, and more - [E-commerce LLM optimization](https://agentmarkup.dev/blog/ecommerce-llm-optimization.md): How Product schema and llms.txt make your store visible in AI product recommendations - [Brand awareness in AI](https://agentmarkup.dev/blog/brand-awareness-ai.md): How to make your brand appear in ChatGPT, Claude, and Perplexity conversations - [Markdown mirrors](https://agentmarkup.dev/blog/markdown-mirrors.md): Build-time markdown generation for AI - comparison with Cloudflare readability extraction - [Website checker](https://agentmarkup.dev/blog/website-checker.md): Free tool to audit your website for AI discoverability - llms.txt, JSON-LD, robots.txt, and more ## Features - [AgentMarkup Studio](https://agentmarkup.dev/studio.md): Configure, inspect, and compile a coherent machine-readable website surface with visible WebMCP tools, deterministic findings, and install-ready agentmarkup artifacts. - [llms.txt Generation](https://agentmarkup.dev/llms.txt): Auto-generates /llms.txt at build time following the llmstxt.org spec - [JSON-LD Injection](https://agentmarkup.dev/docs/json-ld.md): Injects structured data into HTML with XSS-safe serialization and type-safe presets - [AI Crawler Management](https://agentmarkup.dev/robots.txt): Generates or patches robots.txt with directives for GPTBot, ClaudeBot, and others - [Build-Time Validation](https://agentmarkup.dev/checker.md): Catches missing JSON-LD fields, crawler conflicts, malformed llms.txt, and thin HTML during build