Use when managing a Halo blog instance via CLI, including authentication, posts, pages, themes, plugins, attachments, backups, comments, moments, notifications, or public site search.
A command-line tool skill for managing Halo blog instances.
npm install -g @halo-dev/cli
Verify:
halo --version
halo --help
Requirements: Node.js >= 22
Authenticate (see references/auth.md):
halo auth login --profile local --url http://127.0.0.1:8090 --auth-type bearer --token <token>
Create a post from Markdown (see content.md for full format rules):
halo post import-markdown --file ./article.md --force
Markdown files are automatically converted to HTML by default; if conversion fails, falls back to raw Markdown import.
List posts:
halo post list
| Area | Commands | Reference |
|---|---|---|
| Authentication | halo auth * | auth.md |
| Publishing Rules | Markdown → HTML workflow, front matter, visibility checks | publishing.md |
| Posts & Pages | halo post *, halo single-page * | content.md |
| Themes, Plugins, Attachments, Backups, Moments | halo theme *, halo plugin *, halo attachment *, halo backup *, halo moment * | operations.md |
| Comments & Notifications | halo comment *, halo notification * | moderation.md |
| Public Search | halo search * | search.md |
--profile <name> when working with multiple Halo instances.--json for scripted or automated workflows.delete, uninstall, overwrite imports) usually require --force when run non-interactively.--halo.security.basic-auth.disabled=false.halo auth profile list
halo auth profile use production
halo post export-json my-post --output ./post.json
halo post import-json --file ./post.json --force
halo post import-markdown --file ./article.md --force
halo theme upgrade --all
halo plugin upgrade --all --yes
halo search --keyword "halo" --url https://www.halo.run
--halo.security.basic-auth.disabled=false to Halo startup flags.halo auth profile doctor to diagnose keyring/config problems.--profile matches an existing profile from halo auth profile list.