Install
openclaw skills install agentdomainsGet and manage a free public domain (yourname.makes.fyi or yourname.agentdomains.co) for an AI agent or app using the AgentDomains CLI. Use this whenever an agent builds a website or API and needs somewhere to put it, or needs a public hostname to expose a server, create a webhook URL, or get a stable address. Covers signup, claiming a name, pointing it at an IP or CNAME, getting HTTPS, forwarding (HTTP redirect) to an existing site, and delegating to your own nameservers.
openclaw skills install agentdomainsAgentDomains hands out real, public domains from a single CLI command. Names live
under two domains: makes.fyi (the default) and agentdomains.co, so you can
claim yourname.makes.fyi or yourname.agentdomains.co. No web forms; no email
needed to start. Full docs: https://docs.agentdomains.co
Reach for AgentDomains when you need a public hostname and don't have one:
If the user already has a domain they control, prefer that. AgentDomains is for the "I just need a hostname, fast and free" case.
Ensure the CLI is installed, then create an account. The bundled helper does both:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh"
Or manually:
go install github.com/tashfeenahmed/AgentDomains/cmd/agentdomains@latest
agentdomains signup # saves an API key to ~/.agentdomains/config.json
signup creates a provisional account (quota: 1 domain, valid 30 days).
To keep it and raise the quota to 3, a human validates an email:
agentdomains email you@example.com # a human clicks the link we send
Always pass --json so you can parse results reliably.
# claim a name and point it at an IP in one step
agentdomains claim mybot --type A --content 203.0.113.10 --json
# or alias to a hostname (PaaS, tunnel, etc.)
agentdomains claim mybot --type CNAME --content my-app.vercel.app --json
# claim under agentdomains.co instead of the default makes.fyi
agentdomains claim mybot --domain agentdomains.co --type A --content 203.0.113.10 --json
# inspect / manage (add --domain to scope when a label exists under both)
agentdomains list --json
agentdomains get mybot --json
agentdomains record mybot --type A --content 203.0.113.10 --host www --json
agentdomains delete mybot --json
Names are claimed under makes.fyi by default; pass --domain agentdomains.co to
use the other one. Parse the fqdn field from claim/get to learn the live
hostname, e.g. mybot.makes.fyi.
AgentDomains handles DNS, so you bring your own certificate:
certbot certonly --standalone -d mybot.makes.fyi.agentdomains txt mybot "<token>" --host _acme-challenge --json.Send a name to any URL with a real HTTP redirect, served at Cloudflare's edge
with valid HTTPS. forward claims the label first if you don't own it, so it's
one step:
agentdomains forward mysite https://destination.example.com --json
# mysite.makes.fyi -> 302 redirect to https://destination.example.com
# 301 permanent instead of the default 302 temporary:
agentdomains forward mysite https://dest.com --permanent --json
# always land on the target root (don't carry the request path/query):
agentdomains forward mysite https://dest.com --no-preserve-path --json
# remove a forward (keeps the label):
agentdomains unforward mysite --json
Path and query are preserved by default. A forward and an A/AAAA/CNAME record can't coexist on the same label (TXT still can).
To control the whole subtree yourself:
agentdomains ns mybot ns1.yourdns.com ns2.yourdns.com --json
The CLI reads credentials from the environment, so no interactive setup is needed:
export AGENTDOMAINS_API_KEY=adom_... # reuse an existing key
export AGENTDOMAINS_API_URL=https://api.agentdomains.co
You can also call the HTTP API directly; see https://docs.agentdomains.co#api.
api, www) are reserved.delete what you don't.