# agentmarkup is now a plugin for ChatGPT, Codex and Claude Code - agentmarkup

> The agentmarkup plugin is now published for ChatGPT and Codex, with a guided workflow for installing, building and validating machine-readable website output.

Source: https://agentmarkup.dev/blog/agentmarkup-plugin-chatgpt-codex-claude-code/

By [Sebastian Cochinescu](/authors/sebastian-cochinescu/) · August 23, 2026 · 8 min read

 Beginner People who build websites Implementation

# agentmarkup is now a plugin for ChatGPT, Codex and Claude Code

agentmarkup is now published in OpenAI's Plugin Directory, which is shared by ChatGPT and Codex. You can install it there, point it at a website repository, and use a guided workflow to choose the right package, update the build, inspect the generated output and validate what agents will actually receive.

## Available now in OpenAI's Plugin Directory

I submitted the agentmarkup plugin to OpenAI, and it was approved and published on 2026-08-23. Because ChatGPT and Codex share the directory, the same listing is available from either product.

I have also submitted it to Anthropic's community plugin directory. That submission is still pending review, so agentmarkup is not listed in Anthropic's public catalog yet. Anthropic publishes no review-time commitment, and an approved plugin then waits for the catalog's nightly synchronization job.

A directory listing provides discovery, not access. Claude Code users can install the plugin today from the repository's own marketplace, without waiting for the community directory review:

```
/plugin marketplace add agentmarkup/agentmarkup
/plugin install agentmarkup@agentmarkup
```

OpenAI and Anthropic conduct independent reviews. OpenAI's guide explicitly notes that Claude marketplace listings and approvals do not transfer, so publication in one directory does not imply approval in the other.

## What the plugin actually does

The plugin is a skill, so it runs as a guided sequence rather than hiding the work behind one command. Its job is to connect the repository, the build system and the final machine-readable output without assuming that the first framework name it sees is the right integration point.

- **It reads the repository first.** This inspection changes nothing. It checks `package.json`, lockfiles, framework configuration, build scripts, existing `public/` assets and generated output. It also records whether the project already has `llms.txt`, `robots.txt`, `_headers`, JSON-LD, a sitemap or canonical tags.
- **It identifies who owns the final HTML.** That decision determines the package. The presence of Vite-shaped tooling inside a Next.js project does not make the Vite adapter the right choice. The important question is which layer produces the HTML that will actually be deployed. Choosing an earlier layer can leave the generated artifacts describing an intermediate shell instead of the finished site.
- **It asks once before changing anything.** The proposed plan names the package, every file it would modify, the exact commands it would run and the audit target URL when a live audit is included. One approval gate covers installing a package, editing `package.json` or the lockfile, writing or patching configuration, running the build and making an outbound request. It does not ask for permission one step at a time, and silence is not approval.
- **A live audit requires confirmation of the origin.** `@agentmarkup/audit` sends requests from the user's own machine under real crawler user agents. Before it makes those requests, the plugin names the target origin and asks the user to confirm that they own or operate it. The audit is not intended for probing somebody else's site.
- **It builds and then reads the result.** A valid configuration is not proof that the build emitted the intended files. The plugin inspects generated HTML and root assets in the output directory. When the user approved a live audit, it also reads the deployed site because hosting headers, redirects and final rewrites can differ from local output.
- **It reports deterministic validation results.** A missing required field is an error. A missing recommended field is a warning. That is the entire scale. I deliberately left out grades and readiness ratings because combining unrelated checks into a single result would hide the concrete condition that needs attention.

Existing curated `llms.txt`, `robots.txt`, `_headers` and JSON-LD are preserved by default. The plugin does not overwrite work already present in the repository unless the user explicitly chooses replacement.

There is also a clear boundary. In a plain chat window with no shell and no repository, the plugin cannot install dependencies or run a build. It can read what the user pastes or links, identify which layer owns the final HTML, recommend the appropriate package and write the configuration for the user to apply. It says that directly instead of describing work it did not perform.

## The packages behind the workflow

The plugin selects from the published packages according to the project and the layer that produces its final output. The build-time packages share a release line, while the live audit package tracks its own. Current releases are available on npm.

 Package What it is for

[`@agentmarkup/core`](https://www.npmjs.com/package/@agentmarkup/core)

 Framework-agnostic generators, presets, validation and HTML helpers. The layer everything else is built on, and the one to use directly for a custom pipeline or a dynamic SSR route.

[`@agentmarkup/vite`](https://www.npmjs.com/package/@agentmarkup/vite)

 Vite adapter.

[`@agentmarkup/astro`](https://www.npmjs.com/package/@agentmarkup/astro)

 Astro integration.

[`@agentmarkup/next`](https://www.npmjs.com/package/@agentmarkup/next)

 Next.js adapter, including a final-output build pass over exported or prerendered HTML.

[`@agentmarkup/nuxt`](https://www.npmjs.com/package/@agentmarkup/nuxt)

 Nuxt module, processing prerendered or nuxt generate output.

[`@agentmarkup/cli`](https://www.npmjs.com/package/@agentmarkup/cli)

 Framework-agnostic command that runs the whole pipeline over any directory of built HTML, plus a check subcommand that validates without writing and is the right thing to put in CI.

[`@agentmarkup/audit`](https://www.npmjs.com/package/@agentmarkup/audit)

 Fetches a live URL the way AI crawlers see it, under user agents including GPTBot, ClaudeBot and PerplexityBot.

Between them, these packages generate `llms.txt`, an optional `llms-full.txt`, JSON-LD structured data, markdown mirrors, AI crawler rules in `robots.txt`, `_headers` with Content-Signal directives and optional A2A Agent Card discovery at `/.well-known/agent-card.json`.

Everything runs at build time. There is no runtime component, hosted service or account.

## Why I built it

I run Anima Felix. ChatGPT and Claude could find the site, but they could not really understand what it did. I fixed that for Anima Felix first with tools I wrote for the job, then open-sourced those tools.

That origin still sets the standard. The work is useful when it changes what the site actually serves and keeps that output from drifting afterwards. An audit points at a problem. A build integration makes the fix part of the site, and `agentmarkup check` in CI stops it from quietly breaking again later.

## What it will not claim

The plugin will not promise that any AI system will include, rank, cite or send traffic to a site. Nobody controls that, and anyone selling that promise is guessing.

What it will do is make the site's machine-readable layer concrete, testable and part of the build, so what agents receive is something you chose deliberately rather than something you inherited.

Choose agentmarkup as a preferred source for your own Google Top stories results.

[Prefer us on Google (opens in a new tab)](https://www.google.com/preferences/source?q=https%3A%2F%2Fagentmarkup.dev&hl=en)

Written by

[Sebastian Cochinescu](/authors/sebastian-cochinescu/) · Developer of agentmarkup

Builder of developer tools for machine-readable websites. Developer of agentmarkup. Founder of Anima Felix.

Continue reading

[Is your website ready for AI?](/blog/website-checker/)

Prefer a plain-language introduction? Start with the website-checker guide.

[← Previous article I built AgentMarkup Studio with WebMCP](/blog/webmcp-agentmarkup-studio/)

[Next article → agentmarkup.dev served a soft-404. Our own tooling missed it.](/blog/soft-404-ai-discoverability-tools/)

## More from the blog

[View all articles →](/blog/)

[How to add llms.txt, JSON-LD, and AI crawler controls to Nuxt Use @agentmarkup/nuxt to generate llms.txt, inject JSON-LD, create markdown mirrors, and manage AI crawler rules from prerendered Nuxt output. Intermediate People who build websites Implementation June 21, 2026 · 7 min read](/blog/nuxt-llms-txt-json-ld/)

[Run agentmarkup on any static site with the CLI Use @agentmarkup/cli to run llms.txt, JSON-LD, markdown mirrors, and AI crawler controls over any built static output, with a CI check command. Intermediate People who build websites Implementation June 21, 2026 · 6 min read](/blog/agentmarkup-cli-any-static-site/)

[How to add llms.txt, JSON-LD, and AI crawler controls to Next.js Use @agentmarkup/next to generate llms.txt, inject JSON-LD, manage AI crawler rules, and understand the dynamic SSR boundary in Next.js. Intermediate People who build websites Implementation March 23, 2026 · 8 min read](/blog/nextjs-llms-txt-json-ld/)
