Skip to main content

ChatDNS

简体中文 · English

ChatDNS 是 ChatArch 的 DNS、DDNS 与 ACME DNS-01 证书工具。它统一 Aliyun DNS 与 Tencent Cloud / DNSPod provider,通过 ChatEnv profile 选择账号,并将证书安全写入 $CHATARCH_HOME/certs/<registered-domain>/<cert-path>/

按场景进入

目标 入口
第一次安装并安全验证 profile 快速开始
查找命令、参数和副作用 CLI 树
理解证书目录、SAN 复用和 symlink 拒绝规则 证书目录与创建规则
直接查看所有公开命令 chatdns --tree / chatdns --tree-brief / chatdns --help

安装

推荐使用 Python 3.12;包元数据中的 >=3.10 只表示最低兼容版本,不会把环境固定到 Python 3.10。

uv venv --python 3.12
uv pip install ChatDNS
chatdns --version

开发安装:

uv pip install -e '.[dev,docs]'

安全起步

先选择 ChatEnv profile 和 provider,再从只读命令开始:

chatdns --env work list --provider tencent
chatdns --env work records example.com --provider tencent
chatdns ip --type public
chatdns --env work cert check '*.example.com' --cert-path default

确认账号、zone 与记录无误后,再执行 setdeleteddnscert apply

CLI 树

chatdns
├── --help  # Show this message and exit.
├── --version  # Show the installed ChatDNS version.
├── --tree  # Print this registered command tree and exit.
├── --tree-brief  # Print this registered command tree without parameter signatures and exit.
├── --env ENV-PROFILE  # ChatEnv profile name for provider credentials (use before the command).
├── --chatarch-home CHATARCH-HOME  # Override CHATARCH_HOME when reading ChatEnv profiles.
├── cert  # Manage Let's Encrypt certificates through DNS-01 validation.
│   ├── apply [--domain DOMAINS] [--email EMAIL] [--provider PROVIDER] [--env ENV-PROFILE] [--cert-dir CERT-DIR] [--cert-path CERT-PATH] [--staging] [--force] [--log-file LOG-FILE] [--log-level LOG-LEVEL] [--interactive]  # Apply or renew certificates using ACME DNS-01 validation.
│   ├── check [DOMAINS...] [--cert-dir CERT-DIR] [--cert-path CERT-PATH] [--provider PROVIDER]  # Check local certificate expiry for one or more domains.
│   ├── manifest  # Show, create, or validate Infra certificate manifests.
│   │   ├── init [MANIFEST-PATH] [--cert-dir CERT-DIR] [--cert-path CERT-PATH] [--from-store] [--scripts-dir SCRIPTS-DIR] [--force] [--format OUTPUT-FORMAT]  # Create an Infra manifest and scripts/README scaffold from the local store.
│   │   ├── show [MANIFEST-PATH]  # Render an Infra certificate manifest as a table without modifying it.
│   │   └── validate [MANIFEST-PATH]  # Validate manifest shape and referenced local certificate files.
│   └── status [DOMAINS...] [--cert-dir CERT-DIR] [--cert-path CERT-PATH] [--expiring-within EXPIRING-WITHIN] [--format OUTPUT-FORMAT] [--strict]  # Scan the internal certificate store and report current leaf status.
├── ddns [FULL-DOMAIN] [--domain DOMAIN] [--rr RR] [--ttl TTL] [--interval INTERVAL] [--max-retries MAX-RETRIES] [--retry-delay RETRY-DELAY] [--monitor] [--log-file LOG-FILE] [--log-level LOG-LEVEL] [--ip-type IP-TYPE] [--local-ip-cidr LOCAL-IP-CIDR] [--provider PROVIDER] [--env ENV-PROFILE] [--interactive]  # Run dynamic DNS updates once or in continuous monitoring mode.
├── delete [FULL-DOMAIN] [--domain DOMAIN] [--rr RR] [--type RECORD-TYPE] [--value VALUE] [--yes] [--provider PROVIDER] [--env ENV-PROFILE] [--interactive]  # Delete DNS records by domain, host record, type, and optional value.
├── ip [--type IP-TYPE] [--local-ip-cidr LOCAL-IP-CIDR]  # Show the current public or local IP without touching DNS records.
├── list [--provider PROVIDER] [--page PAGE-NUMBER] [--page-size PAGE-SIZE] [--env ENV-PROFILE]  # List DNS domains in the provider account.
├── records [TARGET] [--domain DOMAIN] [--rr RR] [--type RECORD-TYPE] [--provider PROVIDER] [--env ENV-PROFILE] [--interactive]  # Show DNS record details.
└── set [FULL-DOMAIN] [--domain DOMAIN] [--rr RR] [--type RECORD-TYPE] [--value VALUE] [--ttl TTL] [--provider PROVIDER] [--env ENV-PROFILE] [--interactive]  # Create or update a DNS record.

完整参数、profile 位置规则、交互选项和副作用矩阵见 CLI 树

证书状态入口是 chatdns cert statuschatdns cert manifest init 会从当前证书根创建/更新 Infra 工作区里的 manifest.json,并创建 scripts/README.md 作为模型/人工手写同步脚本的说明入口;ChatDNS 不提供 cert script 生成或执行接口。

配置解析

Provider 选择顺序:

  1. 命令行 --provider
  2. ChatDNS profile 的 CHATDNS_PROVIDER
  3. 默认 aliyun

Profile 使用全局 chatdns --env PROFILE ... 选择;DNS 命令也支持命令级 --env。Aliyun 与 Tencent 凭据由同名 ChatEnv profile 读取,敏感值不写入仓库。

能力与边界

操作 副作用
listrecords provider 只读 API
ip 本机接口读取或公网 IP 查询
cert checkcert statuscert manifest showcert manifest validate 本地只读
cert manifest init 只写本地 Infra manifest.jsonscripts/README.md
setdeleteddns 写 DNS provider
cert apply 写 DNS challenge 与本地证书

ChatDNS 负责 DNS、证书申请/检查、证书根状态扫描和 manifest 创建/解析;SSH 分发、Nginx rewrite/reload 与服务器 rollback 属于 Infra,不在 ChatDNS 中执行,也不生成同步脚本。

Python API 与 MCP

from chatdns import create_dns_client, DynamicIPUpdater, SSLCertUpdater

MCP 暴露 DNS 查询/设置、IP 查询、DDNS 与证书申请工具;MCP 工具不属于 CLI 子命令。完整映射见 CLI 树

验证

pytest -q
mkdocs build --strict

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatdns-0.1.11.tar.gz (55.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatdns-0.1.11-py3-none-any.whl (48.8 kB view details)

Uploaded Python 3

File details

Details for the file chatdns-0.1.11.tar.gz.

File metadata

  • Download URL: chatdns-0.1.11.tar.gz
  • Upload date:
  • Size: 55.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chatdns-0.1.11.tar.gz
Algorithm Hash digest
SHA256 256b51b808eaa6fd6286d6c1c76f06bfe3aa1497c26c0a3ac8ba1cd7ee4096a1
MD5 b0a2552f4fbc206626542d51850d6a0b
BLAKE2b-256 93a029bd20f9d2a830fbcf4d590963326d4f02ccea5aeed44ab63fdc52ec2628

See more details on using hashes here.

Provenance

The following attestation bundles were made for chatdns-0.1.11.tar.gz:

Publisher: publish.yml on ChatArch/ChatDNS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chatdns-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: chatdns-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 48.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chatdns-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 34980c096171670df30506334ac83502b7f5340e893dfc2ecba5c1197305bf12
MD5 d01c585bd48f52c384b195921afc91db
BLAKE2b-256 edec884d0708c776875e4a240dd110169be72c79d6f09da0153b315eca258d1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for chatdns-0.1.11-py3-none-any.whl:

Publisher: publish.yml on ChatArch/ChatDNS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.11 This release

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page