1. 项目概述一个为Claude Code量身定制的自动化技能库如果你和我一样日常工作中需要频繁地与DNS记录和远程服务器打交道那么手动操作不仅耗时还容易出错。我最近整理并开源了一套名为“my-claude-skills”的技能集合专门为Claude CodeAnthropic推出的AI辅助编程工具设计核心目标就是把DNS管理和VPS运维这两大块繁琐工作通过自然语言指令彻底自动化。简单来说这个项目包含两个核心技能文件.skill。一个是dns-api.skill它能让你直接对着Claude说“帮我把blog.example.com的A记录指向192.168.1.100”然后它就能自动调用Cloudflare、腾讯云或阿里云的API去完成。另一个是vps-ops.skill它让你可以一次性查询名下所有服务器的负载、磁盘使用情况或者批量执行安全更新命令而无需逐台登录。这本质上是在LLM大语言模型的交互层之上构建了一套可复用的、针对特定领域的“自动化插件”极大提升了开发者和运维人员的工作效率。2. 核心技能设计与实现思路拆解2.1 为什么选择为Claude Code开发技能Claude Code不同于通用的聊天机器人它被深度集成在开发环境中对代码、系统命令和上下文有更好的理解。为其开发技能Skill相当于扩展了它的“原生能力”。当我说“/dns-api list records for example.com”时Claude Code能理解这是一个结构化的指令并触发我预定义的、包含复杂逻辑如API调用、错误处理的脚本而不是仅仅生成一段需要我手动复制执行的代码。这种“对话即执行”的体验是传统脚本或CLI工具无法比拟的。我的设计思路是“低耦合、高内聚”。每个.skill文件都是一个独立的模块只专注于解决一个领域的问题。dns-api只处理与DNS相关的所有操作vps-ops则专注于服务器运维。这样做的好处是维护简单用户也可以按需安装。同时我严格遵循了Claude Code的技能开发规范确保技能能正确注册命令、解析参数并与Claude的上下文安全地交互。2.2 DNS管理技能 (dns-api.skill) 的架构解析这个技能的核心是充当了一个“统一适配器”。市面上每家云服务商的DNS API接口设计、认证方式、返回格式都不同。如果为每个厂商写一套独立的操作逻辑技能会变得臃肿且难以维护。我的解决方案是定义一个抽象的“DNS提供商接口”包含create_record、list_records、update_record、delete_record这几个核心方法。然后为Cloudflare、腾讯云、阿里云分别实现这个接口的具体类。技能的主入口一个Python脚本负责根据用户输入或配置动态加载对应的提供商实现。例如Cloudflare使用API Token和Zone ID认证其更新记录的API端点是PATCH https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records/{record_id}。而阿里云则使用AccessKey签名认证端点完全不同。技能内部封装了所有这些差异。用户只需要提供统一的凭证信息通过安全方式然后就可以用一致的命令语法进行操作。注意技能内部绝不硬编码任何API密钥。我设计了灵活的凭证加载机制优先从环境变量如CLOUDFLARE_API_TOKEN读取其次支持从本地的加密配置文件读取。在技能的使用指南中我会强烈建议用户使用环境变量这是目前最安全、最便携的凭证管理方式。2.3 VPS运维技能 (vps-ops.skill) 的设计考量服务器运维的痛点在于重复和分散。vps-ops.skill的设计哲学是“批量操作”和“状态聚合”。它底层依赖于paramiko用于SSH连接和concurrent.futures用于并发执行这类库但对外暴露的是极其简单的命令。其核心是一个“服务器清单”模型。你需要在一个YAML配置文件里定义你的服务器集群像下面这样servers: web-server-1: hostname: 192.168.1.10 port: 22 user: deploy # 推荐使用SSH密钥认证密码字段可留空或从环境变量读取 db-server-1: hostname: db1.example.com port: 22 user: admin当执行/vps-ops check disk命令时技能会并发地登录清单中的所有服务器执行df -h命令然后将所有结果汇总、格式化以一个清晰的表格形式返回给用户。这比手动登录每台机器查看要高效得多。此外技能还包含一些常用的自动化脚本片段例如“一键更新所有服务器的安全补丁但排除内核更新”或“批量部署一个配置文件”。这些片段以“子技能”或“预设命令”的形式存在用户可以通过自然语言快速调用和修改。3. 技能部署与核心配置详解3.1 环境准备与Claude Code安装首先确保你已经在你的开发环境可以是本地机器也可以是一台用于操作的跳板机上安装了Claude Code CLI工具。具体的安装方法请参照Anthropic的官方文档。通常它可以通过包管理器如Homebrew、pip或直接下载二进制文件来安装。安装成功后Claude Code会在你的用户目录下创建配置文件目录。对于Linux/macOS系统通常是~/.claude/对于Windows系统则是%USERPROFILE%\.claude\。这个目录是存放技能、配置和上下文数据的地方。在部署我们的技能之前我建议先运行一次claude命令确保CLI能正常启动这会自动创建必要的目录结构。3.2 技能文件的安装与验证获取技能文件有两种方式一是直接从本项目的GitHub仓库下载Release中的压缩包二是通过Git克隆整个仓库。我个人推荐克隆仓库的方式便于后续更新。# 克隆仓库到本地 git clone https://github.com/ammar2211332/my-claude-skills.git cd my-claude-skills # 将技能文件复制到Claude Code的技能目录 # Linux/macOS cp *.skill ~/.claude/skills/ # Windows (PowerShell) Copy-Item *.skill -Destination $env:USERPROFILE\.claude\skills\安装完成后需要重启Claude Code CLI或者发送一个重载技能的命令如果Claude Code支持的话以让新技能生效。验证安装是否成功的最简单方式就是在Claude Code的对话窗口中输入/然后按Tab键看看弹出的命令列表里是否出现了/dns-api和/vps-ops。3.3 DNS API凭证的安全配置这是最关键也最需要谨慎的一步。以Cloudflare为例你需要创建一个API Token。登录Cloudflare控制台进入“我的个人资料” - “API令牌”。点击“创建令牌”选择“编辑区域DNS”模板。在权限设置中确保“区域”的权限是“DNS编辑”并选择你要管理的具体域名建议使用“包括”特定区域而不是所有区域遵循最小权限原则。生成令牌后你会得到一串长字符。这个令牌只显示一次请立即妥善保存。接下来配置技能使用这个令牌。绝对不要把它写在技能文件或任何明文脚本里。最佳实践是设置为环境变量。# 在~/.bashrc, ~/.zshrc 或 ~/.profile 中设置Linux/macOS export CLOUDFLARE_API_TOKEN你的API令牌 export CLOUDFLARE_ZONE_ID你的区域ID # 在Cloudflare域名概述页面可以找到 # 对于腾讯云或阿里云类似地设置 export TENCENT_CLOUD_SECRET_ID你的SecretId export TENCENT_CLOUD_SECRET_KEY你的SecretKey export ALIBABA_CLOUD_ACCESS_KEY_ID你的AccessKey ID export ALIBABA_CLOUD_ACCESS_KEY_SECRET你的AccessKey Secret设置完成后记得执行source ~/.bashrc或对应shell的配置文件使环境变量生效。这样dns-api技能在运行时就能安全地读取到这些凭证而你的敏感信息不会出现在任何代码或聊天记录中。3.4 VPS服务器清单配置对于vps-ops技能你需要创建一个服务器清单文件。我建议在~/.claude/目录下创建一个config子目录来存放这类配置文件。# ~/.claude/config/servers.yaml default_user: deploy # 默认用户名可在单个服务器中覆盖 servers: production_web: hostname: 203.0.113.10 user: deploy # 使用默认用户此行可省略 tags: [web, production] # 给服务器打标签便于分组操作 staging_db: hostname: db.staging.example.com user: admin port: 2222 # 非标准SSH端口 tags: [db, staging] backup_server: hostname: 192.168.10.5 user: backup # 使用SSH密钥认证无需密码。确保本地私钥已加载到ssh-agent。配置好后你需要在技能中指定这个清单文件的路径。通常可以通过环境变量VPS_OPS_SERVER_LIST来设置或者在首次使用/vps-ops命令时通过交互式指引进行配置。实操心得关于SSH认证强烈推荐使用SSH密钥对而非密码。将你的公钥部署到所有VPS上并在本地使用ssh-agent管理私钥。这样vps-ops技能在连接时无需处理密码既安全又方便。在技能内部我会利用paramiko的Agent支持自动使用ssh-agent中的密钥。4. 核心功能实操与命令详解4.1 使用/dns-api管理域名解析安装配置妥当后你就可以在Claude Code的对话界面中像与助手聊天一样管理DNS了。基础记录操作列出记录/dns-api list records for example.com。技能会询问你使用哪个服务商如果配置了多个然后调用对应API返回一个包含所有A、AAAA、CNAME、MX等记录的清晰表格。添加A记录/dns-api add A record blog.example.com pointing to 192.168.1.100。你可以附加参数如--ttl 3600来设置TTL。更新记录/dns-api update the A record for blog.example.com to 192.168.1.200。技能通常会先找到该记录的唯一ID然后执行更新。删除记录/dns-api delete the CNAME record for www.example.com。出于安全考虑技能在执行删除前可能会要求二次确认。动态DNS (DDNS) 场景这是该技能非常实用的一个功能。假设你家里有一个NASIP地址是动态分配的。你可以写一个简单的cron任务或系统定时任务定期执行类似下面的逻辑通过Claude Code CLI的脚本模式或API获取你当前的公网IP例如通过curl ifconfig.me。调用技能/dns-api update A record home.example.com to 当前公网IP。 这样无论你的家庭宽带IP如何变化home.example.com这个域名总会指向你最新的地址。批量操作技能支持简单的批量操作语法例如/dns-api add A records for server1.example.com and server2.example.com pointing to 10.0.0.1。对于更复杂的批量任务如从CSV文件导入技能提供了“批处理模式”的接口你可以将一个包含多条操作指令的文本块交给它处理。4.2 使用/vps-ops进行批量服务器运维VPS运维技能的强大之处在于其“一次命令全网执行”的能力。服务器状态监控系统概览/vps-ops check status。这个命令会并发地对所有配置的服务器执行一系列快速检查uptime运行时间、free -m内存使用、df -h磁盘使用、top -bn1CPU负载并将结果整合成一个综合仪表盘视图。专项检查你可以进行更具体的检查如/vps-ops check disk usage on servers tagged db这只会在标签包含“db”的服务器上执行df -h命令。批量命令执行这是最常用的功能。语法非常直观/vps-ops run “sudo apt update sudo apt upgrade -y” on all servers。 技能会解析命令和目标服务器all servers或servers tagged web。并发地建立到每台目标服务器的SSH连接。在每台服务器上执行给定的命令。实时收集每台服务器的标准输出和标准错误。将所有结果汇总并按服务器分组展示给你。如果某台服务器执行失败你会清晰地看到错误信息而其他服务器的成功结果也会正常返回。日志分析与检索你可以使用技能来快速定位问题。例如/vps-ops search in /var/log/nginx/error.log for “502 Bad Gateway” on web servers。技能会在所有标记为“web”的服务器上使用grep命令搜索指定的日志文件并将匹配的行及其上下文返回给你。5. 高级技巧、问题排查与安全实践5.1 技能的组合使用与场景化扩展这两个技能的真正威力在于组合使用并与你的工作流结合。假设一个场景你需要部署一套新的微服务到10台服务器上并为每台服务器生成一个唯一的子域名。你可以设计一个工作流使用/vps-ops在所有服务器上预装Docker和必要的依赖。编写一个部署脚本通过/vps-ops run分发并执行。部署成功后每台服务器会有一个新的服务端口。你需要获取每台服务器的IP或现有域名。使用/dns-api通过一个循环或批处理自动为每台服务器的IP地址创建或更新一个DNS记录例如service-01.cluster.example.com,service-02.cluster.example.com。更进一步你可以将这些步骤封装成一个更高级的“部署技能”只需一个命令/deploy-microservice version1.2.3就能触发整个链条。这就是Claude Code技能生态的扩展性所在。5.2 常见问题与排查指南在实际使用中你可能会遇到以下问题1. 技能命令未找到 (Command ‘/dns-api’ not found)原因技能文件未正确放置在~/.claude/skills/目录或Claude Code未重载技能列表。解决确认文件路径正确。尝试完全退出Claude Code CLI并重新启动。检查技能文件是否有可执行权限虽然不是必须但有时相关。2. DNS API操作失败提示认证错误原因环境变量未设置、设置错误或未被当前shell进程读取。解决使用echo $CLOUDFLARE_API_TOKEN命令检查环境变量是否存在且值正确。确保你是在同一个终端会话中启动的Claude Code。对于长期运行的服务考虑将环境变量写入系统级或用户级的配置文件。3. VPS-OPS连接服务器超时或认证失败原因网络不通、SSH端口错误、用户名错误、或SSH密钥未正确加载。解决先用ssh userhostname -p port手动测试连接确保基础SSH配置无误。检查servers.yaml配置文件中的主机名、端口、用户名。确认你的SSH私钥已添加到ssh-agent使用ssh-add -l查看。vps-ops技能依赖系统已有的SSH代理。4. 批量命令执行时部分服务器成功部分失败原因这是分布式系统操作的常态。可能因为某台服务器临时负载高、网络抖动、或命令在该服务器特定环境下不兼容。解决技能的输出会清晰区分每台服务器的结果。针对失败的服务器查看其返回的错误信息。通常需要单独登录该服务器排查具体原因如磁盘满、权限不足、软件包缺失等。技能的价值在于帮你快速定位到“哪台”出了问题。5.3 安全最佳实践再强调自动化工具在带来便利的同时也放大了安全风险。请务必遵守以下准则最小权限原则为DNS API令牌和VPS SSH密钥分配尽可能小的权限。DNS令牌只管理需要的域名VPS上使用具有sudo权限的专用运维用户而非root。凭证隔离永远不要将API密钥、Secret、SSH密码等硬编码在技能文件、配置文件除非加密或聊天记录中。坚持使用环境变量或安全的密钥管理服务如操作系统密钥环、HashiCorp Vault等。操作审计重要的DNS变更或服务器批量操作前可以利用技能的“模拟运行”或“确认”功能。对于生产环境考虑将技能与审批流程结合例如Claude生成操作命令但需要人工复制执行。定期轮换密钥为重要的API凭证和SSH密钥设置过期时间并建立定期轮换机制。虽然这增加了管理成本但能有效降低凭证泄露带来的长期风险。这套“my-claude-skills”是我将日常运维工作流程化的一个产物。它不一定适合所有人但如果你恰好也在使用Claude Code并且苦于DNS和服务器的手动管理那么尝试一下这些技能可能会为你打开一扇新的大门。自动化不是为了取代思考而是将我们从重复劳动中解放出来去处理更复杂、更有价值的问题。如果你在使用过程中有任何改进想法或者发现了bug非常欢迎在项目仓库提交Issue或PR让我们一起让它变得更好。