Card snapshot
doorman.clawhard.com
·
2026-11-06 07:54:12 UTC
·
e48fc2a1b93edb207fa9fb38f15ebdb801e543f6b0a125c9677b1f999d5d7cae
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "Doorman",
"description": "Doorman reads any website's robots.txt and shows which AI bots it lets in: who can train on it, which AI search engines can find and cite it, and which assistants can read it for people. Pick what you want and copy a fixed robots.txt, including the new shared AI-training opt-out line. No account.",
"version": "1.1.0",
"url": "https://doorman.clawhard.com/a2a",
"preferredTransport": "JSONRPC",
"protocolVersion": "1.0",
"supportedInterfaces": [
{
"url": "https://doorman.clawhard.com/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
},
{
"url": "https://doorman.clawhard.com/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "0.3"
}
],
"provider": {
"organization": "Clawhard Studio",
"url": "https://clawhard.com"
},
"iconUrl": "https://clawhard.com/icon-512.png",
"documentationUrl": "https://doorman.clawhard.com/llms.txt",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"application/json",
"text/plain"
],
"defaultOutputModes": [
"application/json",
"text/plain"
],
"skills": [
{
"id": "doorman_check_ai_bot_access",
"name": "See which AI bots a website lets in",
"description": "Reads the public robots.txt of a website and reports which AI bots it lets in, by purpose: AI training (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, Meta-ExternalAgent, CCBot, Bytespider, Amazonbot and more), AI search and answers (OAI-SearchBot, Claude-SearchBot, PerplexityBot, DuckAssistBot), assistants opening pages for a person (ChatGPT-User, Claude-User, Perplexity-User,\u2026",
"tags": [
"doorman",
"DeveloperApplication",
"read-only"
],
"examples": [
"Which AI bots does my site allow?",
"Write a robots.txt that allows AI search but blocks training",
"Check this robots.txt for AI crawler rules"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "doorman_check_robots_txt",
"name": "Check a robots.txt file for AI bot access",
"description": "Same report as the check tool, for robots.txt text you already have (a draft, or a file from a site the checker cannot reach). Parses it the way crawlers do (RFC 9309 groups, longest-match Allow/Disallow, * and $ wildcards) and reports which AI training bots, AI search bots, assistants and search engines it lets in, plus the shared __usage_ai-training preference.",
"tags": [
"doorman",
"DeveloperApplication",
"read-only"
],
"examples": [
"Which AI bots does my site allow?",
"Write a robots.txt that allows AI search but blocks training",
"Check this robots.txt for AI crawler rules"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "doorman_write_robots_txt",
"name": "Write a robots.txt that lets in only the AI bots you want",
"description": "Builds a robots.txt from a simple choice: AI training in or out, AI search in or out, assistants in or out. Keeps every rule in the existing file (pass it as robots_txt), removes old lines for the AI bots it manages, and adds one clearly labelled block, including the shared User-agent: __usage_ai-training preference. Never touches Googlebot, Bingbot or Applebot, so normal search is unaffected.",
"tags": [
"doorman",
"DeveloperApplication",
"read-only"
],
"examples": [
"Which AI bots does my site allow?",
"Write a robots.txt that allows AI search but blocks training",
"Check this robots.txt for AI crawler rules"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
}
]
}