AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Halo Cli Content

skill-halo-dev-cli-halo-cli-content · by halo-dev

Use when managing Halo posts, single pages, categories, or tags from the terminal. This includes listing, creating, updating, deleting, exporting, importing, or any content management operation for Halo CMS. Trigger this skill whenever the user mentions Halo posts, pages, categories, tags, or content management in a CLI context, even if they do not explicitly mention 'content'.

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-halo-dev-cli-halo-cli-content

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-halo-dev-cli-halo-cli-content)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Halo Cli Content? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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:

  • list
  • get
  • open
  • create
  • update
  • delete
  • export-json
  • import-json
  • category (subcommand)
  • tag (subcommand)

Single-page workflows:

  • list
  • get
  • open
  • create
  • update
  • delete
  • export-json
  • import-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, supports markdown or html.
  • raw: the source content. Use Markdown text when rawType is markdown; use HTML text when rawType is html.
  • content: the rendered result. Use HTML text when rawType is markdown (converted from Markdown); use HTML text when rawType is html.
  • baseSnapshot, headSnapshot, releaseSnapshot and owner must be left empty (do not construct manually).
  • categories and tags values are the metadata.name of existing categories/tags in the system. Query them first with halo post category list and halo 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-type defaults to markdown, so --content is rendered as Markdown unless you set --raw-type html.
  • Prefer --content for direct inline updates, or use import-markdown for Markdown files.
  • open only works for published content; with --json it returns the URL.
  • Import payload must contain post.metadata.name.
  • Import payload must contain content.raw or content.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, supports markdown or html.
  • raw: the source content. Use Markdown text when rawType is markdown; use HTML text when rawType is html.
  • content: the rendered result. Use HTML text when rawType is markdown (converted from Markdown); use HTML text when rawType is html.
  • baseSnapshot, headSnapshot, releaseSnapshot and owner must be left empty (do not construct manually).

Rules:

  • The command name is single-page, not singlePage.
  • Single pages do not use post category/tag flows.
  • There is no --pinned option for single-page.
  • Import payload must contain page.metadata.name.

Safety And Automation

  • Use --profile when more than one Halo profile exists.
  • Use --json for scripts.
  • Use --force for destructive non-interactive commands like delete or 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.

Versions

  • v0.1.0 Imported from the upstream source.