From technitium-dns
Set up Technitium DNS Server credentials — save the server URL and API token (or username/password). Use when the user wants to configure Technitium DNS, connect to an instance, asks "how do I set this up," or wants to check connection status.
npx claudepluginhub cameri/claude-skills --plugin technitium-dnsThis skill is limited to using the following tools:
<objective>
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Designs, audits, and improves analytics tracking systems for reliable, decision-ready data. Computes Measurement Readiness & Signal Quality Index across decision alignment, event clarity, accuracy, and governance.
Guides A/B test setup with mandatory gates for hypothesis validation, metrics definition, sample size calculation, and execution readiness checks.
<quick_start>
Save with token: /technitium-dns:access url=<URL> token=<TOKEN>
Save with user/pass: /technitium-dns:access url=<URL> user=<USER> password=<PASS>
Check status: /technitium-dns:access (no args)
Guided setup: /technitium-dns:access setup
</quick_start>
<credential_format>
~/.claude/channels/technitium-dns/${ENV}.env:
API token auth (preferred):
TECHNITIUM_URL=http://192.168.1.1:5380
TECHNITIUM_TOKEN=myapitoken
Or username/password auth:
TECHNITIUM_URL=http://192.168.1.1:5380
TECHNITIUM_USER=admin
TECHNITIUM_PASSWORD=mypassword
TECHNITIUM_TOKEN takes priority if both are set. Single-quote values containing special characters. chmod 600 after writing.
</credential_format>
Read ~/.claude/channels/technitium-dns/${ENV}.env (missing = not configured) and show:
TECHNITIUM_URL: show value, or "not set".TECHNITIUM_TOKEN set: "API token (set, masked)"; if TECHNITIUM_USER/TECHNITIUM_PASSWORD set: show username and "password set"; otherwise: "not configured".http --ignore-stdin -b GET "${TECHNITIUM_URL%/}/api/user/session/get" token=="$TECHNITIUM_TOKEN"
http --ignore-stdin -b GET "${TECHNITIUM_URL%/}/api/user/login" user=="$TECHNITIUM_USER" pass=="$TECHNITIUM_PASSWORD" includeInfo==true
status == "ok"): show "✓ Connection OK" plus server version if available./technitium-dns:access again after correcting the failing credential."/technitium-dns:manage-dns-zones, /technitium-dns:manage-dns-records, and /technitium-dns:query-dns-stats."*.env files in ~/.claude/channels/technitium-dns/, stripping .env suffix. Display .env as "(default)".setup — guided setup:
http://192.168.1.1:5380).http --ignore-stdin -b GET "http://<host>:5380/api/user/createToken" user==admin pass==<password> tokenName==claude
Copy the token value from the response.env= for default):
/technitium-dns:access url=<URL> token=<TOKEN>
Explicit save — url=<URL> token=<TOKEN> or url=<URL> user=<USER> password=<PASS>:
Parse key=value pairs. Accept both url= and TECHNITIUM_URL= forms (strip TECHNITIUM_ prefix if present, case-insensitive).
Required: url plus at least one of token or (user + password). List absent keys and stop if missing.
mkdir -p ~/.claude/channels/technitium-dns${ENV}.env if present; update/add provided keys, preserve others.TECHNITIUM_URL before writing.KEY='value' (single-quoted for special characters).chmod 600 ~/.claude/channels/technitium-dns/${ENV}.envclear — remove all credentials for this environment:
Delete ~/.claude/channels/technitium-dns/${ENV}.env. Confirm first: "This will remove all Technitium DNS credentials for the selected environment. Are you sure?"
clear <key> — remove a single credential:
Remove only the named key line from ${ENV}.env. Valid keys: url, token, user, password.
</workflow>
<security_checklist>
TECHNITIUM_PASSWORD — show set/not-set onlyTECHNITIUM_TOKEN — show only first 4 chars + ...chmod 600 the .env file after writingTECHNITIUM_URLTECHNITIUM_TOKEN takes priority over user/pass when both are set.env file — re-authenticate per requesthttp:// vs https:// and certificate validity
</security_checklist><success_criteria>
~/.claude/channels/technitium-dns/${ENV}.env with chmod 600status == "ok")