Install
openclaw skills install @ruibaby/halo-cli-contentUse when managing Halo posts or single pages from the terminal, including list, get, create, update, delete, open, export-json, import-json, categories, tags, and content files.
openclaw skills install @ruibaby/halo-cli-contentUse this skill for halo post and halo single-page.
If auth may not be ready, check halo auth current first or load halo-cli-auth.
halo post --help
halo single-page --help
Post workflows:
listget <name>open <name>createupdate <name>delete <name>export-json <name>import-jsoncategory (subcommand)tag (subcommand)Single-page workflows:
listget <name>open <name>createupdate <name>delete <name>export-json <name>import-jsonList and inspect:
halo post list
halo post list --keyword halo --publish-phase PUBLISHED
halo post get my-post --json
Create or update:
halo post create --title "Hello Halo" --content "# Hello Halo" --publish true
halo post create --title "Hello Halo" --content "<h1>Hello Halo</h1>" --raw-type html
halo post update my-post --title "Updated title"
halo post update my-post --content "Updated content" --publish true
halo post update my-post --new-name my-post-renamed
Taxonomy-aware create/update:
halo post create \
--title "Release Notes" \
--content "Release notes content" \
--categories News,CLI \
--tags Halo,Release
JSON round-trip:
halo post export-json my-post --output ./post.json
halo post import-json --file ./post.json --force
Markdown round-trip:
halo post export-markdown my-post
halo post export-markdown my-post --output ./post.md
halo post import-markdown --file ./post.md --force
Rules:
--raw-type defaults to markdown, so --content is rendered as Markdown unless you set --raw-type html.--content for direct inline updates, or use import-markdown for Markdown files.open only works for published content; with --json it returns the URL.post.metadata.name.content.raw or content.content.Manage post categories:
halo post category list
halo post category list --keyword Technology
halo post category get category-abc123
halo post category create --display-name "Technology" --slug "tech"
halo post category create --display-name "News" --description "Latest news" --priority 100
halo post category update category-abc123 --display-name "Tech News"
halo post category delete category-abc123 --force
Manage post tags:
halo post tag list
halo post tag list --keyword Halo
halo post tag get tag-abc123
halo post tag create --display-name "Halo" --slug "halo" --color "#1890ff"
halo post tag update tag-abc123 --display-name "Halo CMS"
halo post tag delete tag-abc123 --force
List and inspect:
halo single-page list
halo single-page get about --json
Create or update:
halo single-page create --title "About" --content "# About" --publish true
halo single-page create --title "About" --content "<h1>Hello Halo</h1>" --raw-type html
halo single-page update about --title "About Halo"
halo single-page update about --new-name about-page
JSON round-trip:
halo single-page export-json about --output ./about.json
halo single-page import-json --file ./about.json --force
Rules:
single-page, not singlePage.--pinned option for single-page.page.metadata.name.--profile <name> when more than one Halo profile exists.--json for scripts.--force for destructive non-interactive commands like delete or overwrite-style imports.halo post --help && halo single-page --help