Install
$ agentstack add skill-halo-dev-cli-halo-cli-content ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Halo CLI Content
Use 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.
Commands
halo post --help
halo single-page --help
Post workflows:
listgetopencreateupdatedeleteexport-jsonimport-jsoncategory(subcommand)tag(subcommand)
Single-page workflows:
listgetopencreateupdatedeleteexport-jsonimport-json
Posts
List and inspect:
halo post list
halo post list --keyword halo --publish-phase PUBLISHED
halo post list --category Technology --page 1 --size 20
halo post get my-post --json
Create:
halo post create --title "Hello Halo" --content "# Hello Halo" --publish true
halo post create --title "Hello Halo" --content "Hello Halo" --raw-type html
halo post create \
--title "Release Notes" \
--content "Release notes content" \
--slug "release-notes" \
--excerpt "A brief summary" \
--categories News,CLI \
--tags Halo,Release \
--cover "https://example.com/cover.png" \
--visible PUBLIC \
--allow-comment true \
--pinned false \
--priority 100 \
--publish true
Update:
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
halo post update my-post --slug "new-slug" --excerpt "Updated excerpt" --cover ""
halo post update my-post --allow-comment false --priority 0
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
import-json payload example (for creating a new post):
{
"post": {
"apiVersion": "content.halo.run/v1alpha1",
"kind": "Post",
"metadata": {
"name": "56c6d867-9683-4927-ba94-388fedf87443"
},
"spec": {
"title": "Sample Post",
"slug": "sample-post",
"template": "",
"cover": "",
"deleted": false,
"publish": false,
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": { "autoGenerate": true, "raw": "" },
"categories": ["category-xxx"],
"tags": ["tag-xxx"],
"htmlMetas": []
}
},
"content": {
"raw": "# Hello World\n\nThis is a sample post content in **Markdown**.\n",
"content": "Hello World\nThis is a sample post content in Markdown.\n",
"rawType": "markdown"
}
}
Content fields:
rawType: source format, supportsmarkdownorhtml.raw: the source content. Use Markdown text whenrawTypeismarkdown; use HTML text whenrawTypeishtml.content: the rendered result. Use HTML text whenrawTypeismarkdown(converted from Markdown); use HTML text whenrawTypeishtml.
baseSnapshot,headSnapshot,releaseSnapshotandownermust be left empty (do not construct manually).categoriesandtagsvalues are themetadata.nameof existing categories/tags in the system. Query them first withhalo post category listandhalo post tag list; create any missing ones before importing.
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-typedefaults tomarkdown, so--contentis rendered as Markdown unless you set--raw-type html.- Prefer
--contentfor direct inline updates, or useimport-markdownfor Markdown files. openonly works for published content; with--jsonit returns the URL.- Import payload must contain
post.metadata.name. - Import payload must contain
content.raworcontent.content.
Post Categories
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 create --display-name "Featured" --slug "featured" --cover "https://example.com/cover.png"
halo post category update category-abc123 --display-name "Tech News"
halo post category delete category-abc123 --force
Post Tags
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 create --display-name "Technology" --slug "tech" --color "#52c41a" --cover "https://example.com/tag-cover.png"
halo post tag update tag-abc123 --display-name "Halo CMS"
halo post tag delete tag-abc123 --force
Single Pages
List and inspect:
halo single-page list
halo single-page get about --json
Create:
halo single-page create --title "About" --content "# About" --publish true
halo single-page create --title "About" --content "Hello Halo" --raw-type html
halo single-page create \
--title "Contact Us" \
--content "# Contact" \
--slug "contact" \
--excerpt "Get in touch" \
--template "page" \
--visible PUBLIC \
--allow-comment true \
--priority 0 \
--publish true
Update:
halo single-page update about --title "About Halo"
halo single-page update about --new-name about-page
halo single-page update about --slug "about-halo" --excerpt "Updated description"
halo single-page update about --allow-comment false --template ""
JSON round-trip:
halo single-page export-json about --output ./about.json
halo single-page import-json --file ./about.json --force
import-json payload example (for creating a new single page):
{
"page": {
"apiVersion": "content.halo.run/v1alpha1",
"kind": "SinglePage",
"metadata": {
"name": "373a5f79-f44f-441a-9df1-85a4f553ece8"
},
"spec": {
"title": "About Us",
"slug": "about",
"template": "",
"cover": "",
"deleted": false,
"publish": false,
"publishTime": undefined,
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": { "autoGenerate": true, "raw": "" },
"htmlMetas": []
}
},
"content": {
"raw": "About UsThis is a custom page content.",
"content": "About UsThis is a custom page content.",
"rawType": "HTML"
}
}
Content fields:
rawType: source format, supportsmarkdownorhtml.raw: the source content. Use Markdown text whenrawTypeismarkdown; use HTML text whenrawTypeishtml.content: the rendered result. Use HTML text whenrawTypeismarkdown(converted from Markdown); use HTML text whenrawTypeishtml.
baseSnapshot,headSnapshot,releaseSnapshotandownermust be left empty (do not construct manually).
Rules:
- The command name is
single-page, notsinglePage. - Single pages do not use post category/tag flows.
- There is no
--pinnedoption forsingle-page. - Import payload must contain
page.metadata.name.
Safety And Automation
- Use
--profilewhen more than one Halo profile exists. - Use
--jsonfor scripts. - Use
--forcefor destructive non-interactive commands likedeleteor overwrite-style imports. - Read current state before mutating when the target resource is uncertain.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: halo-dev
- Source: halo-dev/cli
- License: MIT
- Homepage: https://www.npmjs.com/package/@halo-dev/cli
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.