dns-record-manager
Operate dns-record-manager -- manage DNS records across Cloudflare and Route 53, review change history, and configure providers.
Best use case
dns-record-manager is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Operate dns-record-manager -- manage DNS records across Cloudflare and Route 53, review change history, and configure providers.
Teams using dns-record-manager should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/dns-record-manager/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How dns-record-manager Compares
| Feature / Agent | dns-record-manager | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Operate dns-record-manager -- manage DNS records across Cloudflare and Route 53, review change history, and configure providers.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
## When to use this skill
Use this skill when working with dns-record-manager: adding or editing DNS records, reviewing the change audit log, configuring provider credentials, or deploying the stack.
## Quick Start (development)
```bash
cd dns-record-manager
pnpm install
cp .env.example .env
# Edit .env: add CLOUDFLARE_API_TOKEN and/or AWS credentials
cd backend && pnpm dev
# In a separate terminal:
cd frontend && pnpm dev
# Dashboard: http://localhost:5173
```
## Quick Start (Docker)
```bash
cp .env.example .env
# Edit .env with your provider credentials
docker compose up -d
# Dashboard: http://localhost:8080
```
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `PORT` | `3000` | Express server port |
| `DB_PATH` | `./data/dns.db` | SQLite audit log path |
| `CLOUDFLARE_API_TOKEN` | `` | Cloudflare API token (Zone:Read + DNS:Edit) |
| `CLOUDFLARE_ZONE_IDS` | `` | Comma-separated zone IDs (empty = all zones) |
| `AWS_ACCESS_KEY_ID` | `` | AWS access key for Route 53 |
| `AWS_SECRET_ACCESS_KEY` | `` | AWS secret key |
| `AWS_REGION` | `us-east-1` | AWS region |
| `ROUTE53_HOSTED_ZONE_IDS` | `` | Comma-separated hosted zone IDs (empty = all) |
| `STATIC_ZONES_FILE` | `` | Path to static JSON file (dev fallback) |
| `CORS_ORIGIN` | `http://localhost:5173` | Dashboard CORS origin |
| `VITE_API_URL` | `http://localhost:3000` | API base URL for frontend |
## API Reference
| Method | Path | Description |
|--------|------|-------------|
| `GET` | `/api/health` | `{ ok: true }` |
| `GET` | `/api/zones` | All zones across all providers |
| `GET` | `/api/zones/:zoneId/records` | Records for a zone |
| `POST` | `/api/zones/:zoneId/records` | Create a record |
| `PUT` | `/api/zones/:zoneId/records/:recordId` | Update a record |
| `DELETE` | `/api/zones/:zoneId/records/:recordId` | Delete a record |
| `GET` | `/api/audit` | Last 200 change log entries |
| `GET` | `/api/settings` | Current settings |
| `POST` | `/api/settings` | Update settings |
## Record Types
| Type | Color | Typical Use |
|------|-------|-------------|
| A | Blue | IPv4 address |
| AAAA | Indigo | IPv6 address |
| CNAME | Violet | Alias to another hostname |
| MX | Amber | Mail server (with priority) |
| TXT | Emerald | SPF, DKIM, DMARC, site verification |
| NS | Gray | Nameserver delegation |
| SRV | Pink | Service location |
| CAA | Red | CA authorization |
## Record Request Body
```json
{
"name": "app.example.com",
"type": "A",
"content": "198.51.100.42",
"ttl": 300,
"proxied": true,
"comment": "Production app server"
}
```
For MX records, include `"priority": 10`. For CNAME, `content` is the target hostname.
## Audit Log
Every create, update, and delete writes a row to `change_log` before and after the provider API call. The `old_value` and `new_value` columns contain JSON snapshots of the record.
View recent changes:
```bash
curl http://localhost:3000/api/audit
```
## Cloudflare API Token
Required permissions:
- Zone: Read (to list zones)
- DNS: Edit (to create/update/delete records)
Scope: "All zones" or a specific zone list.
## Route 53 IAM Policy
Minimum required permissions:
```json
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"route53:ListHostedZones",
"route53:ListResourceRecordSets",
"route53:ChangeResourceRecordSets"
],
"Resource": "*"
}]
}
```
## Static JSON File Format (Development)
```json
[
{
"id": "zone-1",
"name": "dev.local",
"records": [
{
"id": "rec-1",
"name": "app.dev.local",
"type": "A",
"content": "127.0.0.1",
"ttl": 300
}
]
}
]
```
## Troubleshooting
**"No zones found"**
- Verify at least one provider is configured (check Settings page)
- For Cloudflare: test the token with `curl -H "Authorization: Bearer $TOKEN" https://api.cloudflare.com/client/v4/user/tokens/verify`
- For Route 53: check IAM permissions and AWS region setting
**"HTTP 403 -- Invalid API token" from Cloudflare**
- Token lacks Zone:Read or DNS:Edit permission
- Token may be zone-scoped and not include the target zone
- Token may have been revoked
**Records not updating after save**
- Check the audit log -- if `result = 'error'`, the provider rejected the request
- The `error_message` column shows the original provider error messageRelated Skills
bookmark-manager
Save and organize URLs with tags, full-text search, and auto-generated screenshots. Use when you need to save a URL for later, organize links into collections, search saved bookmarks, or import browser bookmarks. Triggers include "save this link", "bookmark", "organize URLs", "find that article I saved", or any task involving managing a personal URL library.
health-records-vault
Encrypted personal health document storage system. Use when you need to upload, browse, download, or share encrypted health documents, generate share links, export a backup archive, or understand the AES-256-GCM security model. Triggers include "upload health record", "encrypt document", "share medical file", "vault backup", "download record", "health record storage", or any task involving personal medical documents.
Skill: clinic-queue-manager API
## When to use this skill
appointment-manager
Schedule and track healthcare appointments, manage provider contacts, build pre-appointment checklists, attach documents, receive reminders, and export appointment history. Use when a user needs to add, view, update, or export healthcare appointments.
env-manager
Manage encrypted .env file vaults across projects and environments using env-file-manager
proxy-record
Record HTTP/HTTPS traffic through the dev-proxy-recorder. Covers starting the proxy, session management, proxy.yaml routes, and HTTPS interception setup.
ssh-config-manager
Manage SSH host configurations in ~/.ssh/config from the terminal. Use when adding, editing, or searching SSH hosts, cloning host configs, testing connections, or importing configs. Triggers include "ssh config", "ssh host", "sshm", "add ssh host", "edit ssh config", "test ssh connection".
health-records
Manage per-animal health event records, follow-up scheduling, and treatment cost tracking. Use when asked to add a vet visit note, record a treatment with cost, set a follow-up date, view all events for one animal, filter events by type across the herd, or export health history to CSV. Triggers include "vet visit", "treatment record", "follow-up date", "health event log", "export health history", "cost tracking", or any task focused on individual health event documentation rather than vaccination scheduling.
Skill: farm-task-manager
## Purpose
Skill: Uptime Monitoring
## Overview
Skill: Status Page
## Overview
Skill: unit-conversion
## Overview