Help us improve
Share bugs, ideas, or general feedback.
From technitium-dns
Manage DNS zones on a Technitium DNS Server — list, create, delete, enable, or disable zones. Use when the user wants to view or manage DNS zones, create a new zone, or toggle a zone on/off.
npx claudepluginhub cameri/claude-skills --plugin technitium-dnsHow this skill is triggered — by the user, by Claude, or both
Slash command
/technitium-dns:manage-dns-zonesThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<objective>
Mines projects and conversations into a searchable memory palace and retrieves past work via semantic search.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
Share bugs, ideas, or general feedback.
<quick_start>
/technitium-dns:manage-dns-zones # list all zones
/technitium-dns:manage-dns-zones create example.com
/technitium-dns:manage-dns-zones delete example.com
/technitium-dns:manage-dns-zones enable example.com
/technitium-dns:manage-dns-zones disable example.com
/technitium-dns:manage-dns-zones export example.com
</quick_start>
Parse `env=` from `$ARGUMENTS` before any other processing. Strip it from remaining arguments. Default to `""` (empty string). Credential file: `~/.claude/channels/technitium-dns/${ENV}.env`. Omit `env=` from suggested commands when ENV is empty.Load credentials from the env file. If missing or TECHNITIUM_URL is not set, tell the user to run /technitium-dns:configure-technitium first.
Auth token resolution (before every API call):
TECHNITIUM_TOKEN is set, use it directly as $TOKEN.http --ignore-stdin -b GET "${TECHNITIUM_URL%/}/api/user/login" user=="$TECHNITIUM_USER" pass=="$TECHNITIUM_PASSWORD"
Parse the token field from the JSON response.All subsequent API calls use token==$TOKEN as a query parameter.
list (default) — list all authoritative zones:
http --ignore-stdin -b GET "${TECHNITIUM_URL%/}/api/zones/list" token=="$TOKEN"
Display a table with columns: Zone, Type, Internal, Enabled, DNSSEC. Sort by zone name. Show total count at the bottom.
create <zone> [type=<type>] — create a new zone:
<zone> is required. type defaults to Primary.
Valid types: Primary, Secondary, Stub, Forwarder, SecondaryForwarder, Internal.
http --ignore-stdin -b POST "${TECHNITIUM_URL%/}/api/zones/create" \
token=="$TOKEN" zone=="<zone>" type=="<type>"
delete <zone> — delete a zone:
Confirm first: "This will permanently delete zone <zone>. Are you sure?" Only proceed if confirmed.
http --ignore-stdin -b POST "${TECHNITIUM_URL%/}/api/zones/delete" \
token=="$TOKEN" zone=="<zone>"
enable <zone> — enable a disabled zone:
http --ignore-stdin -b POST "${TECHNITIUM_URL%/}/api/zones/enable" \
token=="$TOKEN" zone=="<zone>"
disable <zone> — disable a zone without deleting it:
http --ignore-stdin -b POST "${TECHNITIUM_URL%/}/api/zones/disable" \
token=="$TOKEN" zone=="<zone>"
export <zone> — export zone as BIND format zone file:
http --ignore-stdin GET "${TECHNITIUM_URL%/}/api/zones/export" \
token=="$TOKEN" zone=="<zone>"
Print the raw zone file content to the user.
- Zone names should not have a trailing dot — strip it if the user provides one. - `type` is case-sensitive — always capitalize the first letter (e.g. `Primary` not `primary`). - If `"status": "invalid-token"`, tell the user the session expired and suggest re-running or reconfiguring. - If `"status": "error"`, show the `errorMessage` field.<success_criteria>