Skills halo-blog

Use when managing a Halo blog instance via CLI, including authentication, posts, pages, themes, plugins, attachments, backups, comments, moments, notifications, or public site search.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/alex-shen1121/halo-blog" ~/.claude/skills/clawdbot-skills-halo-blog && rm -rf "$T"
manifest: skills/alex-shen1121/halo-blog/SKILL.md
source content

Halo Blog CLI Skill

A command-line tool skill for managing Halo blog instances.

Installation

npm install -g @halo-dev/cli

Verify:

halo --version
halo --help

Requirements: Node.js >= 22

Quick Start

  1. Authenticate (see references/auth.md):

    halo auth login --profile local --url http://127.0.0.1:8090 --auth-type bearer --token <token>
    
  2. 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.

  3. List posts:

    halo post list
    

Command Areas

AreaCommandsReference
Authentication
halo auth *
auth.md
Publishing RulesMarkdown → HTML workflow, front matter, visibility checkspublishing.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

Shared Conventions

  • Profile selection: Use
    --profile <name>
    when working with multiple Halo instances.
  • JSON output: Use
    --json
    for scripted or automated workflows.
  • Non-interactive safety: Destructive commands (
    delete
    ,
    uninstall
    , overwrite imports) usually require
    --force
    when run non-interactively.
  • Basic Auth requirement: If using basic auth instead of bearer token, ensure Halo is started with
    --halo.security.basic-auth.disabled=false
    .

Common Workflows

Switch between environments

halo auth profile list
halo auth profile use production

Export and import a post

halo post export-json my-post --output ./post.json
halo post import-json --file ./post.json --force

Publish via Markdown file

halo post import-markdown --file ./article.md --force

Upgrade all App Store themes/plugins

halo theme upgrade --all
halo plugin upgrade --all --yes

Search public content without login

halo search --keyword "halo" --url https://www.halo.run

Troubleshooting

  • Login fails with anonymous user: Basic auth is likely disabled on the Halo server. Add
    --halo.security.basic-auth.disabled=false
    to Halo startup flags.
  • Credential issues: Run
    halo auth profile doctor
    to diagnose keyring/config problems.
  • Profile not found: Ensure
    --profile
    matches an existing profile from
    halo auth profile list
    .