关于 pp-domain-goat
pp-domain-goat 是用于筛选待注册域名的只读命令行技能,面向品牌命名、域名投资及 Agent 工作流。它结合可用性、品牌评分、价格、到期监测与本地 SQLite 短名单,帮助比较候选项;不负责购买域名。
主要功能
- 01批量检查域名可用性
- 02生成并评分品牌名称
- 03比较 TLD 价格与五年成本
- 04跟踪即将释放的域名
- 05管理本地短名单和 SQLite 数据
适用场景
- 01从名称列表中筛选可注册域名
- 02按预算比较多个 TLD
- 03为品牌候选生成并排序短名单
- 04监测待释放域名及竞价时间
MCP 相关
README 提到可通过 MCP 驱动域名检查、比较等工作流,但未说明 MCP 服务具体暴露的工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-domain-goat安装后在 Claude Code 中输入/pp-domain-goat确认已加载。
详细介绍
Domain Goat — Printing Press 命令行工具
前提条件:安装命令行工具
此技能使用 domain-goat-pp-cli 二进制文件。**调用此技能中的任何命令之前,必须确认命令行工具已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install domain-goat --cli-only - 验证:
domain-goat-pp-cli --version - 确保报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用 Go 直接安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/developer-tools/domain-goat/cmd/domain-goat-pp-cli@latest
如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,不要执行技能命令。
何时使用此命令行工具
当你需要找出(而非交易)值得注册的域名时,可以使用 domain-goat,例如:跨多个 TLD 批量检查名称列表、生成适合打造品牌的变体、为候选项评分、监控即将释放的域名、比较不同 TLD 的 5 年实际成本,或通过 MCP 让 Agent 执行上述任何工作流。如果你已经确定要哪个域名,只需要购买,就不必使用它——这是注册商的工作。
何时不应使用此命令行工具
对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此命令行工具。此打印版命令行工具仅提供用于检查、导出、同步和分析的只读命令。
独特功能
这些功能无法通过此 API 的任何其他工具实现。
可不断积累的本地状态
-
shortlist promote— 将列表中的前 N 个候选项提升到按综合得分、价格和可用性排序的入围子列表中。当 Agent 需要收敛出可购买的候选清单时,此命令可用一次确定性调用,取代“获取评分、获取价格、获取可用性、排序、保存”这一整套操作。
domain-goat-pp-cli shortlist promote --list ai-startup --top 10 --by combined --agent -
budget— 筛选 5 年总成本(注册费 + 4 次续费)低于预算上限的候选项,并按价格升序排列。在你爱上某个名称之前,避免落入“第一年 12 美元/续费 4,800 美元”的陷阱。
domain-goat-pp-cli budget --list ai-startup --max-annual-cost 50 --years 5 --available-only -
compare— 每个域名一行,显示评分、长度、TLD 声望、跨注册商价格、RDAP 状态和即将释放标记。让 Agent 或用户通过一条命令就能敲定候选清单,无需在 5 个标签页之间来回核对。
domain-goat-pp-cli compare kindred.io kindred.ai kindred.studio --json --select status,price,score -
why-killed— 显示域名为何不再列于当前候选清单中:状态、评分、备注、标签历史记录和最新价格。没有此功能,代理机构团队可能在一次冲刺中两次否决同一个名称;而 Agent 再次推荐已否决的名称,则会损害用户信任。
domain-goat-pp-cli why-killed kindred.studio --json -
tld-affinity— 给定种子关键词后,根据后缀语义契合度、本地历史记录中的历史可用率和价格档次对 TLD 排名。帮助 Agent 在运行耗费较大的排列组合之前,先选出适合生成的 TLD。
domain-goat-pp-cli tld-affinity kindred --top 10 --json
可达性 + 持久化
-
drops timeline— 按时间轴显示所有受监控域名进入 pendingDelete/redemptionPeriod 的情况,并按品牌适配度评分和 TLD 筛选。域名抢注者和品牌投资者想知道“下周有哪些排队释放、值得竞价的域名?”此功能就能回答这个问题。
domain-goat-pp-cli drops timeline --days 30 --min-score 7 --tld io,ai --agent -
pricing-arbitrage— 按续费价差(第一年价格陷阱风险)或声望与价格比对 TLD 排名。帮助用户和 Agent 避开第二年价格会让交易不划算的 TLD。
domain-goat-pp-cli pricing-arbitrage --by renewal-delta --top 20 --agent -
drop-bid-window— 计算处于 pendingDelete 状态的域名重新释放的准确 UTC 时间窗口(RDAP 事件 + 5 天宽限期)。域名抢注者需要精确到分钟的时间安排;此功能取代了手动解析 WHOIS 正则表达式。
domain-goat-pp-cli drop-bid-window expiring.io --json
命令参考
可用性与查询
check— 批量检查可用性(RDAP → WHOIS → DNS 回退)。rdap— 通过 IANA 引导查询 RDAP。whois— 通过 43 端口进行 WHOIS 查询,并解析输出。dns— DNS 查询(A/AAAA/NS/MX/SOA)。cert— 检查域名的 TLS 证书。
生成与评分
gen <suggest|mix|affix|blend|hack|rhyme>— 离线生成适合打造品牌的名称。similar— 生成类似 typoquatting / dnstwist 的变体。score— 品牌适用性评分(长度、音节、词典、顶级域名声望)。socials— 检查常见平台上的社交账号名称是否可用。
候选名单与比较
lists <create|add|show|list|annotate|kill>— 管理候选名单。shortlist promote— 将排名前 N 的候选项移入决选子名单。compare— 为每个域名生成并排对照行。why-killed— 审查域名为何被移出活动名单。budget— 按 5 年实际成本筛选。
过期域名与监控
drops timeline— 按时间轴查看 pendingDelete / redemptionPeriod 状态。drop-bid-window— 获取准确的 UTC 重新开放注册时间段。watch <add|run|list|remove>— 定期重新检查并持久化状态。
定价与顶级域名
pricing <sync|show|compare>— Porkbun 顶级域名定价快照。pricing-arbitrage— 按续费价差或声望价值为顶级域名排序。tlds <sync|list|get>— IANA RDAP 引导表。tld-affinity— 为种子关键词匹配最合适的顶级域名。namecheap— 可选的 Namecheap 适配器(需要凭据)。
本地数据
sync— 将 API 数据同步到本地 SQLite。import— 通过 API create/upsert 导入 JSONL。
Agent 与实用工具
doctor— 检查身份验证与连接状态。agent-context— 输出描述此 CLI 的结构化 JSON。which— 将功能解析为对应命令。api— 按接口浏览端点。workflow— 执行多步骤复合工作流。profile— 保存并应用具名标志集。feedback— 在本地记录 CLI 反馈。
查找合适的命令
知道要做什么,但不确定该用哪个命令时,可以直接询问 CLI:
domain-goat-pp-cli which "<capability in your own words>"
which 会根据自然语言功能查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出码 0 表示至少找到一个匹配项;退出码 2 表示没有足够可信的匹配项 — 此时可改用 --help,或缩小查询范围。
使用示例
周五品牌提案 — 200 个名称 → 20 个决选项
# 1. Generate, filter, score.
domain-goat-pp-cli gen suggest --seeds-file seeds.txt --tlds com,io,ai,studio --count 200 --available-only --max-renewal 80 --json > /tmp/candidates.json
# 2. Persist the finalists into a shortlist (positional args, not stdin).
domain-goat-pp-cli lists create brand-sprint
domain-goat-pp-cli lists add brand-sprint $(jq -r '.results[].fqdn' /tmp/candidates.json | head -50) --tags generated
# 3. Promote the top 20 by combined ranking.
domain-goat-pp-cli shortlist promote --list brand-sprint --top 20 --by combined --json
生成、筛选、保存、排序 — 不到一分钟即可输出适用于周五演示文稿的结果。
寻找值得竞价的过期域名
domain-goat-pp-cli drops timeline --days 14 --min-score 7 --tld com,io --json --select fqdn,drop_at,score,price
查看未来两周即将过期的域名,经评分筛选,并输出适合 Agent 进一步筛选的结果。
五年实际成本候选名单
domain-goat-pp-cli budget --list ai-startup --max-annual-cost 50 --years 5 --agent --select fqdn,total_5yr,renewal_price
在你爱上某个名称之前,先排除首年 $12、续费 $4,800 的陷阱。
为什么淘汰了这个?
domain-goat-pp-cli why-killed kindred.studio --json
对备注、标签及最新 RDAP / 定价快照执行 FTS5 搜索 — 数周后也能找回组织记忆。
适合 Agent 的对比
domain-goat-pp-cli compare kindred.io kindred.ai kindred.studio --agent --select fqdn,available,price,score,drop_flag,registrar_status
点分路径 --select 可精简 Agent 的上下文 — 每行约 80 字节,而非完整的 RDAP 数据包。
身份验证设置
无需身份验证。
运行 domain-goat-pp-cli doctor 验证设置。
Agent 模式
在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
支持管道 — JSON 输出到 stdout,错误输出到 stderr
-
支持筛选 —
--select可保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。对于内容冗长的 API,此功能对精简上下文至关重要:domain-goat-pp-cli compare kindred.io kindred.ai --agent --select fqdn,status,price,score -
支持预览 —
--dry-run可在不发送请求的情况下显示请求内容 -
适合离线使用 — 有本地 SQLite 存储时,sync/search 命令可以使用该存储
-
非交互式 — 从不显示提示,每项输入都通过标志指定
-
只读 — 请勿使用此 CLI 执行 create、update、delete、publish、comment、upvote、invite、order、send 或其他会更改数据的请求
响应信封
读取本地存储或 API 的命令会将输出封装在来源信封中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
从 .results 中解析数据,并查看 .meta.source 以了解数据来自实时来源还是本地来源。只有在 stdout 是终端时,才会向 stderr 打印人类可读的 N results (live) 摘要;管道或 Agent 消费者在 stdout 上只会收到纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:
domain-goat-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
domain-goat-pp-cli feedback --stdin < notes.txt
domain-goat-pp-cli feedback list --json --limit 10
条目会保存在本地的 ~/.domain-goat-pp-cli/feedback.jsonl。除非设置了 DOMAIN_GOAT_FEEDBACK_ENDPOINT,且传入了 --send 或 DOMAIN_GOAT_FEEDBACK_AUTO_SEND=true,否则不会发送 POST 请求。默认仅保存在本地。
写下让你感到意外的地方,而不是 Bug 报告。简短、具体,一行即可:这才是逐渐积累价值的部分。
输出传递
每条命令都接受 --deliver <sink>。除 stdout 之外(或替代 stdout),输出还会发送到指定的接收端,让 Agent 无需手动通过管道即可路由命令结果。支持以下三种接收端:
| 接收端 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 以原子方式将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 --compact 时为 application/json 或 application/x-ndjson) |
对于未知的协议,会拒绝处理并返回结构化错误,其中会列出支持的协议。Webhook 请求失败时会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态码。
命名配置
配置文件是保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都以相同配置调用同一命令,可使用此功能——这就是 HeyGen 的“Beacon”模式。
domain-goat-pp-cli profile save briefing --json --compact
domain-goat-pp-cli --profile briefing compare kindred.io kindred.ai
domain-goat-pp-cli profile list --json
domain-goat-pp-cli profile show briefing
domain-goat-pp-cli profile delete briefing --yes
显式标志始终优先于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,以便 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示domain-goat-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他任何内容 → 直接使用(将其作为带有
--agent的 CLI 命令执行)
MCP 服务安装
从此 CLI 发布的公共库条目或预构建版本中安装 MCP 二进制文件,然后注册它:
claude mcp add domain-goat-pp-mcp -- domain-goat-pp-mcp
验证:claude mcp list
直接使用
- 检查是否已安装:
which domain-goat-pp-cli如果未找到,请提供安装选项(参见本技能开头的先决条件)。 - 将用户查询与上文“独特功能”和“命令参考”中的最佳命令匹配。
- 使用
--agent标志执行:domain-goat-pp-cli <command> [subcommand] [args] --agent - 如果含义不明确,请查看子命令帮助:
domain-goat-pp-cli <command> --help。