A command-line tool skill for managing Halo blog instances.
bash
npm install -g @halo-dev/cli
Verify:
bash
halo --version
halo --help
Requirements: Node.js >= 22
Authenticate (see references/auth.md): bash
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): bash
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: bash
halo post list
AreaCommandsReferenceAuthenticationhalo auth *auth.mdPublishing RulesMarkdown → HTML workflow, front matter, visibility checkspublishing.mdPosts & Pageshalo post *, halo single-page *content.mdThemes, Plugins, Attachments, Backups, Momentshalo theme *, halo plugin *, halo attachment *, halo backup *, halo moment *operations.mdComments & Notificationshalo comment *, halo notification *moderation.mdPublic Searchhalo 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.bash
halo auth profile list
halo auth profile use production
bash
halo post export-json my-post --output ./post.json
halo post import-json --file ./post.json --force
bash
halo post import-markdown --file ./article.md --force
bash
halo theme upgrade --all
halo plugin upgrade --all --yes
bash
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.