@16bit/gidinet
v0.1.1
Published
Modern, simple CLI for GiDiNet / QuickServiceBox — domains, DNS, contacts and renewals from your terminal.
Maintainers
Readme
gidinet
A modern, simple CLI for GiDiNet / QuickServiceBox reseller accounts. Manage your domains, DNS records, contacts and renewals straight from the terminal.
$ gidinet expiring --days 30
SERVICE TYPE ENDS LEFT RENEWAL AUTO
onlyinitaly.it domain 2026-05-27 -16d 12.20 EUR no
beyondthelines.it domain 2026-06-15 3d 6.70 EUR no
mattiatrapani.com domain 2026-07-02 19d 13.20 EUR yesInstall
npm install -g @16bit/gidinetOr run it without installing:
npx @16bit/gidinet domainsRequires Node.js 20 or newer.
Authentication
The CLI talks to the QuickServiceBox reseller API and needs your reseller username and password. Credentials are resolved in this order:
-u/--usernameand-p/--passwordflagsGIDINET_USERNAME/GIDINET_PASSWORDenvironment variables- The saved config file (
gidinet login)
The quickest way to get going:
gidinet login # prompts for username + password, verifies, saves themCredentials are stored at ~/.config/gidinet/config.json with 0600
permissions. Remove them with gidinet logout.
Multiple accounts
If you manage more than one reseller account, save each under a name and switch between them:
gidinet login --name personal # saves and selects "personal"
gidinet login --name work # saves and selects "work"
gidinet accounts # list them (● marks the current one)
gidinet accounts use personal # switch the default account
gidinet accounts rm work # forget one
gidinet -a work domains # run a single command against "work"-a/--account picks a saved account for one command without changing the
current one.
Commands
| Command | Description |
| --- | --- |
| gidinet login | Save and verify reseller credentials |
| gidinet logout | Remove saved credentials |
| gidinet whoami | Show the active account and credential source |
| gidinet check <domains...> | Check domain availability (read-only, no charge) |
| gidinet domains | List the domains on the account |
| gidinet domain <domain> | Show full detail for one domain (status, dates, contacts) |
| gidinet expiring | List services approaching expiry, soonest first |
| gidinet contacts | List the contacts (anagrafiche) on the account |
| gidinet accounts | List, switch (use) and remove (rm) saved accounts |
| gidinet ns <domain> <ns...> | Replace a domain's authoritative nameservers |
| gidinet dns list <domain> | List DNS records |
| gidinet dns add <domain> <type> <host> <data> | Add a DNS record |
| gidinet dns delete <domain> <type> <host> <data> | Delete a DNS record |
Add --json to any command for machine-readable output, ideal for scripting:
gidinet --json expiring | jq '.[] | select(.daysLeft < 14) | .key'Examples
# Is a domain free?
gidinet check mycoolstartup.com mycoolstartup.it
# All domains using GiDiNet's own nameservers
gidinet domains --gidinet-dns
# Every domain, across all pages, filtered by name
gidinet domains --all --filter waste
# DNS records for a zone
gidinet dns list example.com
# Point www at an IP
gidinet dns add example.com A www 203.0.113.10 --ttl 3600
# A mail record with priority
gidinet dns add example.com MX @ mail.example.com --priority 10
# Delete a record (asks for confirmation, or pass -y)
gidinet dns delete example.com A www 203.0.113.10 -y
# Move a domain onto GiDiNet nameservers
gidinet ns example.com dnsl1.gidinet.com dnsl2.gidinet.comDestructive operations (dns add/delete, ns) ask for confirmation when run
interactively and refuse to run non-interactively unless you pass -y/--yes.
How it works
GiDiNet exposes a SOAP API (CoreAPI + DNSAPI). This CLI builds the SOAP
envelopes directly over fetch — no WSDL round-trip per call — so it starts
fast and ships with a tiny dependency footprint.
License
MIT © 16bit Srl
