SkillHub

openclaw-inwx

v0.2.0

INWX domain registrar management: domain registration, availability check, DNS records, nameservers, DNSSEC, pricing, transfers.

Sourced from ClawHub, Authored by elvatis_com

Installation

Please help me install the skill `openclaw-inwx` from SkillHub official store. npx skills add homeofe/openclaw-inwx

openclaw-inwx

OpenClaw plugin for INWX (InterNetworX) domain registrar automation.

It provides 23 tools for domain lifecycle operations, DNS management, DNSSEC, contact handling, WHOIS, and account checks.

Features

  • INWX DomRobot JSON-RPC integration via domrobot-client
  • Environment switch: production or ote
  • Optional 2FA login support (otpSecret)
  • Safety controls:
  • readOnly blocks all write tools
  • allowedOperations allowlist for tool-level policy
  • TypeScript strict mode

Installation

npm install @elvatis_com/openclaw-inwx

For local development:

npm install
npm run build
npm test

INWX Account Setup

  1. Create or use your INWX account.
  2. Enable API access in INWX account settings.
  3. If 2FA is enabled, provide a shared secret via otpSecret.
  4. For safe testing, use OTE environment (ote.inwx.com).

Plugin Config

{
  "username": "your-inwx-user",
  "password": "your-inwx-password",
  "otpSecret": "optional-2fa-secret",
  "environment": "ote",
  "readOnly": false,
  "allowedOperations": []
}

Tool List

Read Tools

  1. inwx_domain_check
  2. INWX method: domain.check
  3. Params: domain (string)
  4. inwx_domain_list
  5. INWX method: domain.list
  6. Params: optional filters (object)
  7. inwx_domain_info
  8. INWX method: domain.info
  9. Params: domain (string)
  10. inwx_domain_pricing
  11. INWX method: domain.check
  12. Params: domain (string) or domains (string[])
  13. inwx_nameserver_list
  14. INWX method: nameserver.list or domain.info
  15. Params: optional domain
  16. inwx_dns_record_list
  17. INWX method: nameserver.info
  18. Params: domain (string)
  19. inwx_dnssec_list
  20. INWX method: dnssec.info
  21. Params: optional filters
  22. inwx_contact_list
  23. INWX method: contact.list
  24. Params: optional filters
  25. inwx_whois
  26. INWX method: domain.whois
  27. Params: domain (string)
  28. inwx_account_info
    • INWX method: account.info
    • Params: none

Write Tools

  1. inwx_domain_register
    • INWX method: domain.create
    • Params: domain, period, contacts, ns
  2. inwx_domain_update
    • INWX method: domain.update
    • Params: method payload
  3. inwx_domain_delete
    • INWX method: domain.delete
    • Params: method payload
  4. inwx_domain_transfer
    • INWX method: domain.transfer
    • Params: method payload
  5. inwx_domain_renew
    • INWX method: domain.renew
    • Params: method payload
  6. inwx_nameserver_set
    • INWX method: domain.update
    • Params: domain, ns (string[])
  7. inwx_dns_record_add
    • INWX method: nameserver.createRecord
    • Params: method payload
  8. inwx_dns_record_update
    • INWX method: nameserver.updateRecord
    • Params: method payload
  9. inwx_dns_record_delete
    • INWX method: nameserver.deleteRecord
    • Params: method payload
  10. inwx_dnssec_enable
    • INWX method: dnssec.create
    • Params: method payload
  11. inwx_dnssec_disable
    • INWX method: dnssec.delete
    • Params: method payload
  12. inwx_contact_create
    • INWX method: contact.create
    • Params: method payload
  13. inwx_contact_update
    • INWX method: contact.update
    • Params: method payload

OTE Test Environment

Set:

{ "environment": "ote" }

This points the client to INWX OTE API endpoint and allows free integration testing without production costs.

Integration with openclaw-ispconfig

This plugin exports provisionDomainWithHosting() for end-to-end domain-to-hosting provisioning. It orchestrates both plugins without a hard dependency:

  1. Domain check - inwx_domain_check
  2. Domain register - inwx_domain_register (skipped if taken or skipRegistration=true)
  3. Nameserver set - inwx_nameserver_set
  4. Hosting provision - isp_provision_site (site, DNS zone, mail, database)
import { buildToolset, provisionDomainWithHosting } from "@elvatis_com/openclaw-inwx";
import ispPlugin from "@elvatis_com/openclaw-ispconfig";

const result = await provisionDomainWithHosting(
  buildToolset(inwxConfig),
  ispPlugin.buildToolset(ispConfig),
  { domain: "example.com", nameservers: ["ns1.host.de"], serverIp: "1.2.3.4", clientName: "Acme", clientEmail: "[email protected]" },
);

Safety

  • readOnly=true allows only:
  • domain check/list/info/pricing
  • nameserver list
  • dns record list
  • dnssec list
  • contact list
  • whois
  • account info
  • allowedOperations can restrict to explicit tool names.

Notes

  • No live tests are included in this repository.
  • Unit tests use mocks only.