Zinnector®

用于 WordPress 托管的开发者命令行界面(CLI)

Zinnector® 在本地构建 WordPress,除 Node 外无需安装任何其他软件——无需 Docker,无需 MAMP——然后在您推送之前,对照您即将部署到的主机槽位检查您构建的内容,并告知您哪些内容不匹配。使用 npm install -g zinnector 进行安装。它完全免费,采用 MIT 许可,并基于与此处其他所有功能相同的公共 API 构建。

浏览器中的代码编辑器,打开的文件旁有文件树,且文件中带有一个光标。

五个命令,而中间的那一个是重点

大多数托管平台的命令行界面(CLI)都是从部署环节才开始介入。Zinnector® 则在此之前便已启动——它与您协同构建网站,并在交付前对照目标机器检验您的工作成果。“在我的笔记本电脑上运行正常”与“在服务器上运行正常”之间的差距往往消耗了整个下午的时间,而这种差距是可以量化的。

新建 zinnector

搭建一个可以立即启动的站点、插件或区块主题。没有占位符文件,没有待办事项(TODO)——插件即可激活,主题在生成瞬间即可选用。

zinnector dev

数秒内即可在您的设备上运行真正的 WordPress,提供您自有的插件与主题,无需 Docker,且 PATH 中无需配置 PHP。可任选 5.2 至 8.5 的任意 PHP 版本进行开发。

zinnector 检查

预检。在您推送之前,将您构建的内容与即将部署到的槽位进行比对,并列出每一处不匹配之处——以及未能执行的每一项检查。

zinnector 推送

进行飞行前检查,推送您的提交,触发部署并观察直至完成。如果失败,只需一条命令即可查看构建日志。

zinnector ai

从终端向助手提问,并将您的项目和站点作为上下文。它在平台上针对您自己的账户运行,因此您的计算机上绝不会存储任何模型密钥。

两分钟内测试其功能,无需账户

按顺序排列的六条命令,以及每条命令执行成功时的状态。此处的所有内容均在您自己的计算机上运行;仅当您使用到托管机位时才需要 API 密钥。

  1. 安装它

    请在 Node 24 或更高版本上运行 npm install -g zinnector。如果 npm 输出 EBADENGINE,则表明您的 Node 版本低于 24 — 请从 nodejs.org 安装当前的 LTS 版本,然后重新运行安装。

  2. 检查版本

    zinnector --version 会输出版本号(如 0.1.2)。在低于 24 的 Node 版本上,它会显示需要 Node 24 或更高版本的提示信息,然后退出。

  3. 阅读帮助

    zinnector --help 会在下方列出每个命令及其一行简要说明。每个命令还支持其自身的 --help 选项。

  4. 搭建网站基础框架

    zinnector new my-site 会创建一个可立即启动的项目——包含 zinnector.json、wp-content 目录树和一个 README——并输出接下来要运行的命令。

  5. 运行

    cd my-site,然后运行 zinnector dev。初次运行会提示下载一次 WordPress 运行时(约 570 MB,保存在 CLI 自身的缓存中,绝不会存放在您的项目中)。成功启动后将显示“running at http://127.0.0.1:9400”。

  6. 在浏览器中打开

    http://127.0.0.1:9400 是一个全新的 WordPress 站点;/wp-admin 会直接以已登录状态打开仪表盘。将插件放入 wp-content/plugins 中,下次重新加载时它就会显示在那里。

  7. 然后,通过主机槽位

    zinnector login、zinnector link、zinnector check、zinnector push — 针对卡槽预检您构建的内容,然后进行部署并观察其完成。

预检详情

您在 PHP 8.3 上构建。该槽位运行的则是 8.1。在网站出现白屏之前,没有任何提示。这正是此命令旨在解决的问题,也是该平台的拥有者指名要求提供的功能。Zinnector® 会读取两种环境并将它们并排比对——但随后仍会允许您进行部署,因为您可能有自己的考量。

PHP,如实评级

主版本差异被标记为高风险,因为它确实会导致网站崩溃;次要差异的标记级别较低。将所有内容都定级为严重,只会让人们学会忽略警告。

磁盘和文件数,分别计算

WordPress 目录树包含数万个小文件,站点可能会在远低于其磁盘上限的情况下耗尽其 inode 配额。这两者都是根据槽位中实际剩余的资源进行检查,而不是根据套餐计划。

“无法检查”本身就是一个答案

无法看到其目标的检查会报告为未检查,绝不会报告为通过。一次干净的运行会说明有多少项无法核实,因为虚假的安全信号才最容易被人忽视而不再复查。

仅警告,绝不拦截

每个发现都可以通过 --force 覆盖,摘要中也是这么说明的。在 CI 中,退出代码充当门禁,因此管道可以保持严格,同时人员仍能掌握控制权。

两个本地运行时,皆为真实

WordPress Playground 是默认选项:PHP 被编译为 WebAssembly 并在 Node 内部运行,因此一台仅安装了 Node 的笔记本电脑从零开始到运行 WordPress 所需的时间,大致相当于读完这句话的时间。

当您需要原生 PHP — 例如 imagick 扩展、真实的 MySQL — 时,请传递 --runtime docker 并改用 php-fpm 和 MariaDB 容器。两者均提供来自同一项目的相同文件,因此在它们之间切换只会更改引擎,其他均不受影响。

您已经在控制面板中完成的所有其他操作

Zinnector® 基于与仪表板相同的公共 API 构建,因此控制面板能做的一切,它都能做到——并且每个命令都是 OpenAPI 规范中记录的操作,而非专用私有端点。

站点与部署

列出网站,读取平台已知关于某个网站的全部信息,重新部署,以及读取部署历史记录和构建日志。

域名、DNS 和邮件

列出域名,在写入前显示记录的情况下读取和更改 DNS 记录,并读取您的邮件服务。

PHP、配额、数据库和日志

切换 PHP 版本,对照方案配额查看磁盘和 inode 使用情况,获取进入 phpMyAdmin 的一次性链接,并实时查看访问与错误日志。

WP-CLI 与批量操作

针对单个站点运行列入白名单的 WP-CLI 命令,并只需单次调用即可对所选的全部站点清除缓存或启动恶意软件扫描,无需逐个站点分别操作。

每个命令,完全按照 --help 所列出的形式

完整列表,每行一项。完整的参考信息 — 包含每个标志、一个可运行的示例以及每个命令打印的内容 — 均直接从 CLI 本身生成,并存放在开发者文档和知识库中,因此它绝不会与您所安装的工具脱节。

新建 zinnector

搭建一个可以立即运行的WordPress项目框架。

zinnector dev

在本地运行此项目 — 无需 Docker。

zinnector 登录

使用 Zinn Digital® API 密钥登录。

zinnector 注销

忘记存储的 API 密钥。

zinnector whoami

显示此 CLI 已作为谁进行身份验证。

zinnector 站点

列出此密钥可以查看的站点。

zinnector 状态

平台所掌握的关于单个网站的所有信息。

zinnector 共享

为单个人授予单个网站的访问权限 — 开发人员、设计师、客户 — 并指定角色和原因。

zinnector 协作人员

查看谁已获得网站的访问权限、其角色以及是否已接受。

取消共享 zinnector

通过电子邮件或授予 ID 撤回个人的访问权限。

zinnector 邀请函

等待您的邀请,并接受其中一个。

zinnector 链接

将此项目指向托管槽(并连接其存储库)。

Zinnnector 拉取

将托管网站的文件拉取到此项目中以进行本地开发,并重新运行以再次同步。当网站同步到其自身存储库时将采用快速路径,否则将根据最新的备份进行操作。

zinnector 同步

托管网站的实时文件与其代码仓库之间的双向同步:查看其当前状态、开启同步、提交网站的更改,或选择保留哪一方。

zinnector 管理控制面板

适用于 Claude Desktop 及其他仅启动本地服务器的 AI 客户端的 Zinn Digital® MCP 服务器桥接程序。

克隆 zinnector

只需一步即可从托管站点创建本地项目:克隆其代码仓库或拉取其文件、编写项目文件,并让您随时可以运行 zinnector dev。

zinnector 检查

将此项目与您要部署到的槽位进行比较。

zinnector push

执行预检,推送提交,然后部署。

zinnector 部署

在不进行推送的情况下,重新部署平台上已有的内容。

zinnector 部署

站点的部署历史记录。

zinnector php

显示或切换站点的 PHP 版本。

zinnector 配额

方案所包含配额对应的磁盘、文件与数据库使用情况。

zinnector db

数据库大小,以及进入 phpMyAdmin 和文件管理器的一次性链接。

zinnector 日志

实时跟踪网站的访问和错误日志。

zinnector wp

在站点上运行允许列表中的 WP-CLI 命令。

zinnector 备份

列出并创建网站备份。子命令:list、now。

zinnector 域名

列出此密钥可以查看的域名。

zinnector dns

读取和修改 DNS 记录。子命令:list、add、rm。

zinnector 邮件

列出邮件服务。

批量 zinnector

跨多个站点运行单个操作 (cache_purge, malware_scan, sitemap, block_ip)。

zinnector ai

向 Zinn Digital® 助手提问,并以此项目作为上下文。

问题

我需要成为 Zinn Digital® 客户才能使用它吗?

不需要。`zinnector new` 和 `zinnector dev` 完全不需要任何账户——您可以搭建插件、主题或整个网站的脚手架,并在本地永久免费运行。只有与您的主机通信的命令才需要 API 密钥。

是否需要 Docker?

不适用于默认运行时。WordPress Playground 将 PHP 编译为 WebAssembly 并在 Node 内部运行,因此 `zinnector dev` 可以在几秒钟内启动真正的 WordPress,无需安装任何其他内容。如果您需要原生 PHP — 用于测试诸如 imagick 或 ionCube 之类的扩展 — `--runtime docker` 则会为您提供 php-fpm 和 MariaDB 容器。两者均受支持;都不是后备方案。

预检实际对比的是什么?

您本地的 PHP 版本与槽位版本的对比、槽位是否能够切换到您构建时所用的版本、槽位的 PHP 是否已过生命周期且机器是否已实际应用该版本、您项目的大小和文件数量与剩余磁盘和 inode 空间的对比、两端的 WordPress 版本、槽位是否已完成配置,以及是否已连接用于部署的 git 仓库。任何未能检查的项目都会报告为未检查,而不是计为通过。

它可以阻止我部署吗?

不,这是刻意为之的。Pre-flight 会发出警告并允许您继续——`--force` 则会忽略任何发现直接部署。关于您自己的站点,您所了解的情况是检查工具无法获悉的,而一款拒绝部署的工具最终只会被人们卸载。

我的 API 密钥安全吗?

密钥绝不会从命令行中读取——仅从提示符或管道 stdin 中读取——因此它不会出现在您的 Shell 历史记录或进程列表中。它存储在您自己的配置目录中,文件模式为 600,且 Zinnector® 每次写入时都会重新确认这些权限。

我可以在 CI 中使用它吗?

是的。设置 `ZINNECTOR_TOKEN`,每个命令都会接受 `--json`。人类可读的输出将定向至 stderr,数据输出至 stdout,因此管道可保持整洁。`zinnector check` 在发现内容时会以非零状态退出,因此可用作流水线门控(pipeline gate),且当无法进行比对时 `--strict` 也会报错退出。

安装它并在下一分钟内运行网站

运行 npm install -g zinnector,或使用 npx zinnector new my-site 尝试一次。免费、采用 MIT 许可,并基于公开 API 构建。生成项目脚手架,无需 Docker 即可在本地运行,并在部署前进行预检。

阅读文档