mcpField
D
domain-mask

domain-mask

github.com/adobe开发316235 次安装今天更新
代码仓库

关于 domain-mask

domain-mask 用于在演示或录制时通过自定义域名展示真实网页。它启动本地 HTTPS 反向代理并使用 mkcert 生成受信任证书,同时管理 hosts 条目;仅支持 macOS,且每次运行一个域名。

主要功能

  1. 01通过展示域名代理目标 URL
  2. 02使用本地 HTTPS 反向代理
  3. 03用 mkcert 生成受信任证书
  4. 04添加并移除 hosts 文件条目
  5. 05每次运行处理一个展示域名

适用场景

  1. 01在演示地址栏中显示简洁域名
  2. 02以自定义域名录制网页
  3. 03通过受信任的本地 HTTPS 预览目标站点

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/adobe/skills --skill domain-mask

安装后在 Claude Code 中输入/domain-mask确认已加载。

附带文件.releaserc.jsonpackage.json

详细介绍

domain-mask

在演示和录屏中,将 URL 隐藏在自定义域名后。HTTPS 反向代理会让地址栏显示简洁的域名(例如 wknd.adventures),而内容仍由真实 URL(例如 https://main--mysite--org.aem.page)提供。通过 mkcert 获取受信任的证书,不会出现浏览器警告。

要求

  • Node 22+、mkcert(brew install mkcert && mkcert -install)、sudo(端口 443 和 /etc/hosts)
  • web CLI(此命令不需要 playwright-cli)。只需定位一次:
# <skill-dir> is the directory containing this SKILL.md
WEB=$(command -v web || echo "node <skill-dir>/../../cli/dist/web.mjs")

然后运行 $WEB …;它会在标准输出中准确打印一个 JSON 文档,因此可以安全地运行 $WEB … > file.json。 发布后可使用备用方案:npx -y @adobe/web-cli。请使用绝对路径 <skill-dir>;不要 cd 进入该目录。

工作流

步骤 1:收集输入

向用户询问(或从其消息中提取):

  • 显示域名:要显示的域名(例如 wknd.adventures)
  • 目标 URL:要代理的真实 URL(例如 https://gabrielwalt.github.io)
步骤 2:检查前置条件
which mkcert || echo "Install mkcert: brew install mkcert && mkcert -install"

如果缺少 mkcert,请告知用户安装它,并运行一次 mkcert -install。

步骤 3:让用户启动代理

该命令会提示输入 sudo 密码,并在前台持续运行,直到按下 Ctrl+C,因此应让用户在自己的终端中运行。将 WEB 替换为解析后的值,再提供命令:

sudo env CAROOT="$(mkcert -CAROOT)" $WEB mask "<display-domain>" "<target-url>"

CAROOT 会在运行 sudo 之前解析,因此 mkcert 会使用用户安装的 CA 签名,而不是 root 家目录下的 CA;后者不会被浏览器信任。 没有 root 权限时,命令会以状态码 2(USAGE)退出。

该命令会将 127.0.0.1 <display-domain> 添加到 /etc/hosts,通过 mkcert 生成受信任的证书,在端口 443 上启动 HTTPS 反向代理,并打印 { url, displayDomain, targetUrl }。

告知用户:

  • 打开 https://<display-domain>;地址栏会显示显示域名和挂锁图标
  • 完成后按 Ctrl+C:hosts 条目会被移除,证书也会清理
步骤 4:确认清理完成

用户停止代理后,检查 hosts 条目是否已移除(没有输出表示清理完成):

grep -Fx '127.0.0.1 <display-domain>' /etc/hosts

如果该行仍然存在,请让用户将其移除。将点号转义,使 sed 只匹配该行,例如,对于 wknd.adventures:

sudo sed -i '' '/^127\.0\.0\.1 wknd\.adventures$/d' /etc/hosts

限制

  • 仅支持 macOS(/etc/hosts 路径、brew install mkcert)
  • 需要 sudo(特权端口 443 和 hosts 文件)
  • 每次调用只能使用一个显示域名
  • 不会重写 HTML/CSS/JS 响应正文中的 URL

评论

支持 Markdown