Skip to main content

PyPI version Tests Docs

ChatDNS

ChatDNS is a ChatArch DNS helper extracted from ChatTool. It provides a standalone chatdns CLI and importable Python API for DNS record management, DDNS updates, provider clients, IP detection, DNS-01 certificate automation, and MCP registration.

Commands

chatdns --help
chatdns list
chatdns --env work list --provider tencent
chatdns list --provider tencent --env work
chatdns records example.com
chatdns records test.example.com
chatdns set test.example.com -t A -v 1.2.3.4
chatdns delete test.example.com -t A -v 1.2.3.4 --yes
chatdns ip
chatdns cert apply -d '*.precision.example.com' -e admin@example.com --provider aliyun --cert-path precision
chatdns cert check '*.precision.example.com' --cert-path precision
chatdns cert manifest ./manifest.json

Supported providers in this release:

  • Aliyun DNS
  • Tencent Cloud DNSPod

Certificate management from the old chattool dns cert surface is now available as chatdns cert. It uses ACME DNS-01 validation and writes TXT records through the configured DNS provider. Treat live certificate issuance as an external side effect: test with --staging first and verify provider credentials before production use.

Configuration

ChatDNS reads provider credentials and defaults from environment / ChatEnv-compatible config fields:

  • CHATDNS_PROVIDER (default DNS provider/channel: aliyun or tencent)
  • CHATDNS_CERT_DIR (certificate storage directory; defaults to $CHATARCH_HOME/certs)
  • ALIBABA_CLOUD_ACCESS_KEY_ID
  • ALIBABA_CLOUD_ACCESS_KEY_SECRET
  • ALIBABA_CLOUD_REGION_ID
  • TENCENT_SECRET_ID
  • TENCENT_SECRET_KEY
  • TENCENT_REGION_ID

Active ChatEnv profiles are loaded automatically from $CHATARCH_HOME/envs (default: ~/.chatarch/envs). Use --env/-e to select a named provider profile, either globally before the command (chatdns --env work list -p tencent) or on DNS commands after the provider (chatdns list -p tencent -e work). Command-level --env/-e overrides the global value. chatdns cert apply keeps -e for email, so use --env work there.

Certificate roots use this precedence: explicit --cert-dir / Python cert_dir, then ChatEnv CHATDNS_CERT_DIR, then $CHATARCH_HOME/certs. Each certificate is stored at <registered-domain>/<cert-path>/; an omitted path uses default, collisions use numeric suffixes, and the same SAN set reuses its existing directory. ACME state stays under $CHATARCH_HOME/private/chatdns/acme, outside the certificate root.

See the certificate storage and creation rules for the generated file tree, permissions, multi-SAN renewal behavior, central managed-zone layout, and remote infrastructure boundary.

Provider aliases are registered through the package's chatenv.configs entry point as chatdns.config.

Development

python -m pytest -q
chatpypi build --project-dir .
chatpypi check --project-dir .
PYTHONPATH=src python -m chatdns.cli --help

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.6.tar.gz (47.3 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.6-py3-none-any.whl (43.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chatdns-0.1.6.tar.gz
  • Upload date:
  • Size: 47.3 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.6.tar.gz
Algorithm Hash digest
SHA256 effd540cd79bf36559ea7c083d3e36273b1635ce60cca238babd376f9b04373d
MD5 dcc4d586b34345e70c2e04dca67147cc
BLAKE2b-256 6d1830de03830ca0af1b7ac063fef05bc68fde56a7671aac9988f36afbfa802a

See more details on using hashes here.

Provenance

The following attestation bundles were made for chatdns-0.1.6.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.6-py3-none-any.whl.

File metadata

  • Download URL: chatdns-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 43.2 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a8348aff15b5621c158ab4c030ad76b9f77f85abfee3c9be54f273b2dfae967f
MD5 fa733d70fe89b726e33cec6a4a874523
BLAKE2b-256 d242369f23545e7857f5f6bc038c18ebe0aa3f7af13adf238b61d03ba7ec2ce6

See more details on using hashes here.

Provenance

The following attestation bundles were made for chatdns-0.1.6-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

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

This release

0.1.6 This release

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