Hetzner DNS
SkillDev toolsRead and manage Hetzner DNS zones and records through gateway-proxied DNS API requests with guarded A, AAAA, CNAME, and TXT changes.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Hetzner DNS skill
What this skill tells your AI
The instructions your AI receives, as published by hybridaione/hybridclaw in skills/hetzner-dns/SKILL.md and read by ahel’s review.
Use this skill for Hetzner DNS zone discovery and A, AAAA, CNAME, TXT, and other record management through the Hetzner DNS API.
Default Workflow
- Read first: list zones, then list records for the target zone id.
- The DNS API is record-id based. Use
list-rrsetsto discover existing record ids before update or delete requests. - Use
planbefore mutations so the operator can see the tier and required grant. - Treat
hetzner_dns.cjsas the API wrapper. Do not handcraft Hetzner DNS API URLs, JSON bodies, tiers, or secret refs from memory. - For prompt/user testing, stop after
planor after helperhttp-requestpayload generation. Do not call the built-inhttp_requesttool. - For real user requests that need live Hetzner DNS reads, pass the
helper-emitted
httpRequestobject unchanged tohttp_request. ThesecretHeadersentry forAuth-API-Tokenis the secret reference; do not preflight it, inspect it, or ask the model for the token. - If a live
http_requestcall returns 401 or 403, stop after that first failure. Do not retry, do not fan out to more endpoints, and ask the operator to set or verifyHETZNER_DNS_API_TOKEN. - Require explicit operator grant before creating, updating, adding, removing,
or deleting records. Pass
--operator-grantonly after that grant. - Never paste, print, or inspect
HETZNER_DNS_API_TOKEN; the gateway injects it server-side asAuth-API-Token.
See references/operator-setup.md for DNS token setup, scope, autonomy defaults, and record-id handling.
Command Contract
node skills/hetzner-dns/hetzner_dns.cjs --help
Plan a DNS request without contacting Hetzner:
node skills/hetzner-dns/hetzner_dns.cjs --format json plan "Point demo-acme.example.com at the demo VPS"
Build read requests:
node skills/hetzner-dns/hetzner_dns.cjs --format json http-request list-zones
node skills/hetzner-dns/hetzner_dns.cjs --format json http-request list-rrsets --zone-id zone123 --name demo --type A
node skills/hetzner-dns/hetzner_dns.cjs --format json http-request get-rrset --record-id record123
Build guarded write requests:
node skills/hetzner-dns/hetzner_dns.cjs --format json http-request create-rrset \
--zone-id zone123 --name demo --type A --ttl 300 --record 203.0.113.10 \
--operator-grant
node skills/hetzner-dns/hetzner_dns.cjs --format json http-request update-rrset \
--record-id record123 --zone-id zone123 --name demo --type A --ttl 300 --record 203.0.113.11 \
--operator-grant
node skills/hetzner-dns/hetzner_dns.cjs --format json http-request delete-record \
--record-id record123 --operator-grant
Working Rules
create-rrsetandadd-recordemit one DNS API record create request. For multiple values, build one request per value.- Use
update-rrsetonly with an exact--record-idfrom a prior read. - Use
remove-record,delete-record, ordelete-rrsetonly with an exact--record-id. - Do not modify generated SOA records or default NS records.
- Use
@for apex records when the API requires a record name. - Stop before red actions (
delete-record,delete-rrset,delete-zone) unless the operator grants the exact record id or zone id target. - Cost per assistant run is recorded by HybridClaw
UsageTotals; helper output includescostMeasurement.system = "UsageTotals"for eval verification.
Eval Suite
node skills/hetzner-dns/hetzner_dns.cjs --format json eval-scenarios
The fixture at evals/scenarios.json contains 10 DNS scenarios covering zone
reads, record reads, A/AAAA/CNAME/TXT changes, and guarded deletes.
Validation
python3 skills/skill-creator/scripts/quick_validate.py skills/hetzner-dns
node skills/hetzner-dns/hetzner_dns.cjs --help
node skills/hetzner-dns/hetzner_dns.cjs --format json eval-scenarios
Signals
- GitHub stars
- 132
- Forks
- 12
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
hetzner-dns- Source
- github.com/hybridaione/hybridclaw