Skip to main content

Namecheap DNS provider extension for npmctl.

Project description

npmctl-namecheap

Namecheap DNS provider plugin for npmctl

Extend npmctl with Namecheap-backed DNS record management for declarative workflows, provider discovery, and DNS-aware automation.

PyPI version Python versions CI Apache 2.0 License

npmctl-namecheap package hits npmctl-namecheap downloads

npmctl architecture infographic

npmctl-namecheap is the Namecheap DNS provider package for npmctl. Install it when you want desired-state DNS records or DNS diagnostics to resolve through Namecheap instead of using only the base npmctl package.

Supported Python Versions

npmctl-namecheap supports Python 3.10, 3.11, 3.12, 3.13, and 3.14.

Why npmctl-namecheap

  • Adds Namecheap DNS provider discovery to npmctl
  • Lets DNS workflows live beside proxy and certificate desired state
  • Keeps provider-specific credentials out of the core CLI package
  • Supports operator diagnostics through npmctl dns doctor
  • Persists A and CNAME records through Namecheap setHosts during npmctl apply

FAQ

What is npmctl-namecheap?

Answer: npmctl-namecheap is a plugin package that teaches npmctl how to talk to the Namecheap DNS API for DNS record operations and DNS provider diagnostics.

When do I need npmctl-namecheap?

Answer: You need npmctl-namecheap when your npmctl workflow includes Namecheap-managed DNS records or when you want npmctl to validate Namecheap DNS connectivity and credentials.

Does npmctl-namecheap work without npmctl?

Answer: No. npmctl-namecheap is an extension package for npmctl, not a standalone CLI.

What credentials are required?

Answer: Namecheap API access requires NAMECHEAP_API_USER, NAMECHEAP_API_KEY, NAMECHEAP_USERNAME, and NAMECHEAP_CLIENT_IP. You can also override the endpoint with NAMECHEAP_API_BASE_URL for tests or non-default environments.

Install

Install the base CLI and the Namecheap provider package together:

pipx install npmctl
pipx inject npmctl npmctl-namecheap
npmctl plugins list

With uv:

uv tool install npmctl
uv tool install npmctl-namecheap
npmctl plugins list

Inside a virtual environment:

python -m venv .venv
. .venv/bin/activate
python -m pip install npmctl npmctl-namecheap
npmctl plugins list

Configure Namecheap

Set the required environment variables:

export NAMECHEAP_API_USER=your-api-user
export NAMECHEAP_API_KEY=your-api-key
export NAMECHEAP_USERNAME=your-username
export NAMECHEAP_CLIENT_IP=your-public-ip

Optional for tests or alternate endpoints:

export NAMECHEAP_API_BASE_URL=https://api.namecheap.com/xml.response

Verify Plugin Discovery

Check that npmctl can discover the provider:

npmctl plugins list
npmctl dns doctor --provider namecheap

Minimal DNS Workflow

Once the provider is installed and configured, npmctl can validate, plan, apply, and diagnose Namecheap-backed DNS behavior through the base CLI:

npmctl validate desired-state/dns.yaml
npmctl plan desired-state/dns.yaml --owner site-a
npmctl apply desired-state/dns.yaml --owner site-a
npmctl dns doctor --provider namecheap
npmctl dns records --provider namecheap --zone example.com

Namecheap apply uses namecheap.domains.dns.setHosts, so npmctl sends the full zone host set required by the Namecheap XML API. Unmanaged records returned by Namecheap are preserved; stale npmctl-owned records can be removed with owner-scoped prune behavior when they are omitted from desired state.

More Documentation

Project details


Download files

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

Source Distribution

npmctl_namecheap-0.3.8.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

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

npmctl_namecheap-0.3.8-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file npmctl_namecheap-0.3.8.tar.gz.

File metadata

  • Download URL: npmctl_namecheap-0.3.8.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for npmctl_namecheap-0.3.8.tar.gz
Algorithm Hash digest
SHA256 9be41d7d65a73150cd45c114936c7894be95af1e609d95b25f1416170238d3d5
MD5 f0a21dd6c9edde6e97946d46106ed86a
BLAKE2b-256 f99c92cfa58c68826a3b431c313e31f8587babf4fbf48b666308ea4e263e7eb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for npmctl_namecheap-0.3.8.tar.gz:

Publisher: release.yml on groupsum/npmctl

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

File details

Details for the file npmctl_namecheap-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for npmctl_namecheap-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 c6da3b8af738676f5c8ca32a722b2c4f56cefa8d19816facd903f6589f2ab3fe
MD5 9710e8ef163d8ae5b822b14c95072548
BLAKE2b-256 d71fe94f53bc608df685b6b79ab1e38dfc9f9b8d209236479a5949a4bb9ad2fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for npmctl_namecheap-0.3.8-py3-none-any.whl:

Publisher: release.yml on groupsum/npmctl

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

Supported by

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