把 Halo CLI 写成一个可复用 Skill,并做成一键调用
这不是一次单纯的“装个 CLI”,而是把它整理成一套可复用、可持久化、可直接调用的工作流。
这次做了什么
为了让 Halo 站点后续管理更顺手,我把官方 @halo-dev/cli 整理成了一个可复用的本地 Skill,并且顺手做成了全局可调用的命令入口。
现在,这套能力已经具备下面几件事:
| 能力 | 结果 |
|---|---|
| 官方 CLI 本地安装 | 不污染系统全局环境 |
| Halo 站点登录 | 使用 PAT 持久化保存连接 |
| Workspace 级配置隔离 | 每个站点都可以单独管理 |
| Skill 封装 | 以后同类操作可以重复复用 |
| 全局快捷命令 | 在任意目录直接调用 |
为什么要把它写成 Skill
直接安装 CLI 当然也能用,但真正麻烦的,往往不是第一次安装,而是后面的重复操作。
比如这些场景:
- 过几天还要重新连站点。
- 换一个目录后命令失效。
- 配置散落在系统目录里,不好迁移也不好备份。
- 同样的操作每次都要重新敲一遍。
把它写成 Skill 之后,流程就变成了标准化能力,而不是一次性的手工操作。
这意味着:
- 安装方式固定
- 目录结构固定
- 登录方式固定
- 包装命令固定
- 后续调用方式也固定
从“临时完成一次任务”,变成了“沉淀成一个长期能用的工具”。
Skill 里包含了什么
这次做出来的 halo-cli Skill,核心有两部分脚本:
1. 安装脚本
负责把 Halo CLI 安装到当前工作区的本地目录,并生成包装命令。
powershell -ExecutionPolicy Bypass -File .\scripts\install_halo_cli.ps1 -Workspace <workspace>
2. 连接脚本
负责使用站点地址和个人访问令牌完成登录,并把 Profile 保存下来。
powershell -ExecutionPolicy Bypass -File .\scripts\connect_halo_site.ps1 `
-Workspace <workspace> `
-Url <site-url> `
-Token <pat> `
-ProfileName <name>
这样拆分有一个明显好处:
- 安装只做一次
- 连接可以重复执行
- 不同站点可以各自保存 profile
目录是怎么设计的
为了避免把配置散落到系统里,我把这套 Halo 能力放成了一个清晰的固定结构。
C:\Users\Administrator\.codex\halo-sites\blog1077
├── .halo-cli
├── .halo-home
├── .npm-cache
├── halo-local.cmd
└── halo-local.ps1
其中:
.halo-cli用来保存本地安装的 Halo CLI.halo-home用来保存 Halo 登录配置.npm-cache用来保存 npm 缓存halo-local.cmd用来做稳定入口
这种结构的优点很直接:
- 站点和 CLI 绑定在一起
- 配置不会污染其他项目
- 后续迁移和排查都更直观
最后一步:做成一键调用
如果只做到本地安装,其实还差最后一步。
真正舒服的体验,是在任意目录都能直接执行命令。
所以我把快捷入口放进了已经在 PATH 里的目录:
C:\Users\Administrator\.local\bin
并生成了这样的命令入口:
halo-blog
现在只要输入下面这条命令,就能直接打到当前 Halo 站点:
halo-blog auth current --json
如果一条命令能完成连接确认,那后面的事情就都简单了。
这套方式适合什么场景
如果你满足下面任意一种情况,这种做法都很值得:
- 你有自己的 Halo 博客,后面会经常维护
- 你希望把命令行能力沉淀成可复用流程
- 你不想把登录配置散落在系统目录里
- 你希望以后发文、看插件、查主题都能直接调用
它本质上做的,是把“可用”推进到“长期好用”。
后续可以继续做什么
CLI 接通之后,真正的玩法才刚开始。
后面可以继续把这些事情接进来:
- 直接用命令行创建和发布文章
- 批量管理分类、标签和页面
- 查询或切换主题、插件
- 做站点备份和内容导出
- 继续把常用操作封装进 Skill
也就是说,这次完成的不是一个小脚本,而是一块站点运营的基础设施。
常用命令
下面这些命令,已经可以直接用了:
halo-blog auth current --json
halo-blog auth profile list
halo-blog post list --page 1 --size 10
halo-blog theme list
halo-blog plugin list
如果后续还会继续写作、维护主题或者管理插件,这个入口会比手动重复登录轻松很多。
写在最后
把工具装好,只是第一步。
把它变成一个稳定、可复用、低摩擦的能力,才是真正能提升日常效率的部分。
这次把 Halo CLI 封装成 Skill,再落成一键调用入口,本质上是在给内容管理搭一条顺手的工作通道。
以后不管是发文、查文章、看主题,还是继续做自动化,这条通道都可以继续往前延展。
回复
和大家一起讨论