秋风小站

这不是一次单纯的“装个 CLI”,而是把它整理成一套可复用、可持久化、可直接调用的工作流。


这次做了什么

为了让 Halo 站点后续管理更顺手,我把官方 @halo-dev/cli 整理成了一个可复用的本地 Skill,并且顺手做成了全局可调用的命令入口。

现在,这套能力已经具备下面几件事:

能力 结果
官方 CLI 本地安装 不污染系统全局环境
Halo 站点登录 使用 PAT 持久化保存连接
Workspace 级配置隔离 每个站点都可以单独管理
Skill 封装 以后同类操作可以重复复用
全局快捷命令 在任意目录直接调用

为什么要把它写成 Skill

直接安装 CLI 当然也能用,但真正麻烦的,往往不是第一次安装,而是后面的重复操作。

比如这些场景:

  1. 过几天还要重新连站点。
  2. 换一个目录后命令失效。
  3. 配置散落在系统目录里,不好迁移也不好备份。
  4. 同样的操作每次都要重新敲一遍。

把它写成 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 接通之后,真正的玩法才刚开始。

后面可以继续把这些事情接进来:

  1. 直接用命令行创建和发布文章
  2. 批量管理分类、标签和页面
  3. 查询或切换主题、插件
  4. 做站点备份和内容导出
  5. 继续把常用操作封装进 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,再落成一键调用入口,本质上是在给内容管理搭一条顺手的工作通道。

以后不管是发文、查文章、看主题,还是继续做自动化,这条通道都可以继续往前延展。

分类: 默认分类 标签: Halo

回复

和大家一起讨论

目录

    暂无目录
目录