Unified CLI for 20+ domain & DNS providers — list domains, manage records, auto-update DDNS from one terminal.
# One-command DDNS for your Raspberry Pi
domain-manager ddns example.com --type A --name home --provider cloudflare
# Or update all configured providers at once
domain-manager ddns example.com --type A --name @ --all- 19+ providers in one CLI (add yours via PR!)
- List domains across all registrars
- DNS management — A, AAAA, CNAME, MX, TXT
- Dynamic DNS (DDNS) — auto-detect IP, update if changed
- Bulk mode —
--allflag updates every configured provider - Cron-ready —
--quietflag only outputs on change - JSON output —
--jsonfor piping - Zero external dependencies — pure Python 3 stdlib
- Hermes Agent skill — included in
hermes-skill/
| # | Provider | Auth | DDNS | List | Edit |
|---|---|---|---|---|---|
| 1 | GoDaddy | Key + Secret | ✅ | ✅ | ✅ |
| 2 | Namecheap | User + Key + IP | ✅ | ✅ | |
| 3 | Domain.com | User ID + Key | ✅ | ✅ | ✅ |
| 4 | Cloudflare | API Token | ✅ | ✅ | ✅ |
| 5 | Porkbun | Key + Secret | ✅ | ✅ | ✅ |
| 6 | Gandi | Token | ✅ | ✅ | ✅ |
| 7 | DigitalOcean | Token | ✅ | ✅ | ✅ |
| 8 | Vultr | Token | ✅ | ✅ | ✅ |
| 9 | Hetzner DNS | Token | ✅ | ✅ | ✅ |
| 10 | OVH | App Key + Consumer Key | ✅ | ✅ | ✅ |
| 11 | DNSimple | Token | ✅ | ✅ | ✅ |
| 12 | NameSilo | Key | ✅ | ✅ | ✅ |
| 13 | Bunny.net | Key | ✅ | ✅ | ✅ |
| 14 | DuckDNS | Token | ✅ | — | — |
| 15 | No-IP | User + Password | ✅ | — | — |
| 16 | Dynu | Token | ✅ | ✅ | ✅ |
| 17 | 阿里云 DNS | AccessKey ID + Secret | ✅ | ✅ | ✅ |
| 18 | 腾讯云 DNS | SecretId + Key | ✅ | ✅ | ✅ |
Namecheap DNS edits require full zone re-submission.
pip install domain-managerOr clone & run:
git clone https://github.com/monah-studio/domain-manager.git
cd domain-manager
python3 -m domain_manager --help# See all providers
domain-manager config list
# Configure one
domain-manager config cloudflare --token <CF_API_TOKEN>
domain-manager config godaddy --key <KEY> --secret <SECRET>
domain-manager config aliyun --key <AccessKeyId> --secret <AccessKeySecret>
# Verify
domain-manager status
domain-manager list --all# List domains
domain-manager list
domain-manager list --all --json
# View DNS records
domain-manager dns list example.com
domain-manager dns list example.com --json
# Update record
domain-manager dns update example.com --type A --name @ --value 1.2.3.4
# DDNS: auto-detect IP
domain-manager ddns example.com --type A --name home --provider porkbun
# DDNS: all providers at once
domain-manager ddns example.com --type A --name @ --all
# DDNS: cron mode (silent unless IP changed)
domain-manager ddns example.com --type A --name home --quiet
# Check your public IP
domain-manager ip
domain-manager ip --type AAAA# Every 5 minutes
*/5 * * * * domain-manager ddns home.example.com --type A --name @ --provider cloudflare --quiet
# With log
*/5 * * * * domain-manager ddns home.example.com --type A --name @ --provider godaddy --quiet >> /tmp/ddns.log 2>&1- Create
domain_manager/providers/<name>.py - Define a
Providerclass inheritingBaseProvider - Implement:
list_domains,list_records,update_record,ddns - Open a PR!
See CONTRIBUTING.md for details.
This project communicates with these provider APIs — thank you for maintaining them:
| Provider | API Docs |
|---|---|
| GoDaddy | Domain management REST API |
| Cloudflare | DNS zone & record API |
| Namecheap | XML-RPC domain & DNS API |
| Porkbun | JSON API for domains & DNS |
| Gandi | LiveDNS REST API |
| DigitalOcean | Domains & DNS API |
| Vultr | DNS API |
| Hetzner | DNS API |
| OVH | Domain & DNS API |
| DNSimple | Domain & DNS REST API |
| NameSilo | Domain API |
| Bunny.net | DNS zone API |
| Domain.com | Domain API |
| DuckDNS | Free DDNS API |
| No-IP | Dynamic DNS API |
| Dynu | DNS & DDNS API |
| 阿里云 DNS | DNS API |
| 腾讯云 DNSPod | DNS API |
Architecture inspiration: octodns (multi-provider DNS sync), acme.sh (provider plugin pattern).
Sister projects: OpenBalance, SmartClipAI
Domain Manager 是一个统一的命令行工具,支持 20+ 域名注册商和 DNS 提供商的域名管理与 DDNS 自动更新。
本工具对以下中国主流 DNS 服务商提供完整支持:
| # | 提供商 | 认证方式 | DDNS | 域名列表 | 记录编辑 |
|---|---|---|---|---|---|
| 17 | 阿里云 DNS | AccessKey ID + Secret | ✅ | ✅ | ✅ |
| 18 | 腾讯云 DNSPod | SecretId + Key | ✅ | ✅ | ✅ |
阿里云 DNS 通过阿里云 DNS API (alidns.aliyuncs.com) 实现域名解析管理,支持 A/AAAA/CNAME/MX/TXT 记录的全生命周期管理。
腾讯云 DNSPod 通过 DNSPod API (dnspod.tencentcloudapi.com) 实现智能解析、负载均衡等高级 DNS 功能。
# 配置阿里云 DNS
domain-manager config aliyun --key <AccessKeyId> --secret <AccessKeySecret>
# 配置腾讯云 DNSPod
domain-manager config tencentcloud --key <SecretId> --secret <SecretKey>感谢以下服务商提供的稳定 API 服务:
- 阿里云 DNS — 稳定可靠的域名解析服务
- 腾讯云 DNSPod — 智能 DNS 解析与流量管理
- 以及所有 开源贡献者 的代码贡献
MIT — Monah Limited