Help us shape the future of Go! Take the 2026 Go Developer Survey

acurl

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2026 License: Apache-2.0

README

acurl

acurl

See your website the way AI agents see it.
acurl.dev · Docs · tragent.io

acurl is a free, open-source tool by tragent.io.

acurl fetches a URL several times, once per agent profile: a real Chrome browser, AI agents such as ChatGPT-User and Claude-Web, search crawlers, and plain curl. It then shows how each one was treated side by side.

It is built for store owners and developers who want to know whether AI shopping and search agents can actually read their pages.

Install

go install github.com/tragent-io/acurl/cmd/acurl@latest

Usage

acurl https://example.com
acurl --agents ChatGPT-User,Googlebot https://yourstore.com/products/1
acurl --category ai-assistant,ai-search https://yourstore.com
acurl --diff GPTBot https://yourstore.com     # what text did GPTBot not see?
acurl robots https://yourstore.com/products/1  # robots.txt, content signals, llms.txt
acurl profiles list
acurl watch https://yourstore.com --interval 1h --webhook https://hooks.slack.com/... --webhook-format slack
acurl --sign mybot.key --signature-agent https://bot.example https://yourstore.com   # Web Bot Auth
acurl -f html -o report.html https://yourstore.com
acurl serve                                    # local web UI on 127.0.0.1:8080
claude mcp add acurl -- acurl mcp              # let Claude run checks for you

Each result is classified as allowed, blocked, challenged (WAF or captcha page), rate-limited, cloaked (visible text differs a lot from what Chrome got), robots-disallowed or error.

Every run ends with an AI readiness score (0-100) and concrete fixes for anything that fails.

More: profiles · robots.txt and llms.txt · scoring · CI · signing · watch · web UI · MCP

Output formats: table (default), json, markdown, csv, junit and sarif. Use -o file to write to a file.

CI

acurl batch urls.txt -f sarif -o acurl.sarif --fail-on blocked,challenged,score<80

Exit code 0 means nothing matched --fail-on, 1 means something did, and 2 means a request failed. See the CI guide for GitHub Actions, JUnit, batch runs and .acurl.yaml.

Status

Early development. Expect breaking changes until v1.0.

License

Apache 2.0. See LICENSE.

About

acurl is built and maintained by tragent.io, which helps online stores get found, understood and bought from by AI shopping agents. acurl is the free, open-source diagnostic we use ourselves, and contributions are welcome.

Directories

Path Synopsis
cmd
acurl command
Command acurl shows how AI agents see a URL compared to a real browser.
Command acurl shows how AI agents see a URL compared to a real browser.
internal
batch
Package batch runs acurl checks over many URLs.
Package batch runs acurl checks over many URLs.
classifier
Package classifier labels each fetch result with how the site treated it.
Package classifier labels each fetch result with how the site treated it.
cli
Package cli implements the acurl command line interface.
Package cli implements the acurl command line interface.
config
Package config applies settings from .acurl.yaml files and ACURL_* environment variables to command flags.
Package config applies settings from .acurl.yaml files and ACURL_* environment variables to command flags.
detect
Package detect recognises bot-challenge and WAF block pages.
Package detect recognises bot-challenge and WAF block pages.
extract
Package extract pulls schema.org product data out of HTML pages, so acurl can show whether an agent was given the price and availability a browser sees.
Package extract pulls schema.org product data out of HTML pages, so acurl can show whether an agent was given the price and availability a browser sees.
fetcher
Package fetcher retrieves a URL once per agent profile.
Package fetcher retrieves a URL once per agent profile.
llmstxt
Package llmstxt finds and validates /llms.txt files (https://llmstxt.org).
Package llmstxt finds and validates /llms.txt files (https://llmstxt.org).
mcp
Package mcp implements a Model Context Protocol server over stdio that exposes acurl checks as tools for AI assistants.
Package mcp implements a Model Context Protocol server over stdio that exposes acurl checks as tools for AI assistants.
netguard
Package netguard stops requests to private and internal networks.
Package netguard stops requests to private and internal networks.
output
Package output renders acurl reports in human and machine formats.
Package output renders acurl reports in human and machine formats.
profiles
Package profiles loads and filters the agent profiles acurl fetches with.
Package profiles loads and filters the agent profiles acurl fetches with.
render
Package render estimates how much of a page depends on JavaScript, which most AI agents do not execute.
Package render estimates how much of a page depends on JavaScript, which most AI agents do not execute.
robots
Package robots fetches robots.txt and answers RFC 9309 access questions.
Package robots fetches robots.txt and answers RFC 9309 access questions.
score
Package score turns an acurl report into an AI-readiness score from 0 to 100, with the checks behind it.
Package score turns an acurl report into an AI-readiness score from 0 to 100, with the checks behind it.
server
Package server implements acurl serve: a local web UI and JSON API.
Package server implements acurl serve: a local web UI and JSON API.
sign
Package sign implements HTTP Message Signatures (RFC 9421) with Ed25519, as used by the Web Bot Auth proposal for cryptographically identifying automated clients.
Package sign implements HTTP Message Signatures (RFC 9421) with Ed25519, as used by the Web Bot Auth proposal for cryptographically identifying automated clients.
textdiff
Package textdiff compares what different agents were shown on a page.
Package textdiff compares what different agents were shown on a page.
watch
Package watch detects changes in how a site treats AI agents between runs.
Package watch detects changes in how a site treats AI agents between runs.
pkg
acurl
Package acurl is the Go API behind the acurl command: it fetches a URL once per agent profile and reports how each agent was treated.
Package acurl is the Go API behind the acurl command: it fetches a URL once per agent profile and reports how each agent was treated.
types
Package types holds the data structures shared across acurl packages.
Package types holds the data structures shared across acurl packages.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL