{"id":"ff502836-fc19-41c4-b087-b010e60fa9bb","shortId":"TjeL2N","kind":"skill","title":"halo-cli-content","tagline":"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, categor","description":"# Halo CLI Content\n\nUse this skill for `halo post` and `halo single-page`.\n\nIf auth may not be ready, check `halo auth current` first or load `halo-cli-auth`.\n\n## Commands\n\n```bash\nhalo post --help\nhalo single-page --help\n```\n\nPost workflows:\n\n- `list`\n- `get <name>`\n- `open <name>`\n- `create`\n- `update <name>`\n- `delete <name>`\n- `export-json <name>`\n- `import-json`\n- `category` (subcommand)\n- `tag` (subcommand)\n\nSingle-page workflows:\n\n- `list`\n- `get <name>`\n- `open <name>`\n- `create`\n- `update <name>`\n- `delete <name>`\n- `export-json <name>`\n- `import-json`\n\n## Posts\n\nList and inspect:\n\n```bash\nhalo post list\nhalo post list --keyword halo --publish-phase PUBLISHED\nhalo post list --category Technology --page 1 --size 20\nhalo post get my-post --json\n```\n\nCreate:\n\n```bash\nhalo post create --title \"Hello Halo\" --content \"# Hello Halo\" --publish true\nhalo post create --title \"Hello Halo\" --content \"<h1>Hello Halo</h1>\" --raw-type html\nhalo post create \\\n  --title \"Release Notes\" \\\n  --content \"Release notes content\" \\\n  --slug \"release-notes\" \\\n  --excerpt \"A brief summary\" \\\n  --categories News,CLI \\\n  --tags Halo,Release \\\n  --cover \"https://example.com/cover.png\" \\\n  --visible PUBLIC \\\n  --allow-comment true \\\n  --pinned false \\\n  --priority 100 \\\n  --publish true\n```\n\nUpdate:\n\n```bash\nhalo post update my-post --title \"Updated title\"\nhalo post update my-post --content \"Updated content\" --publish true\nhalo post update my-post --new-name my-post-renamed\nhalo post update my-post --slug \"new-slug\" --excerpt \"Updated excerpt\" --cover \"\"\nhalo post update my-post --allow-comment false --priority 0\n```\n\nTaxonomy-aware create/update:\n\n```bash\nhalo post create \\\n  --title \"Release Notes\" \\\n  --content \"Release notes content\" \\\n  --categories News,CLI \\\n  --tags Halo,Release\n```\n\nJSON round-trip:\n\n```bash\nhalo post export-json my-post --output ./post.json\nhalo post import-json --file ./post.json --force\n```\n\n`import-json` payload example (for creating a new post):\n\n```json\n{\n  \"post\": {\n    \"apiVersion\": \"content.halo.run/v1alpha1\",\n    \"kind\": \"Post\",\n    \"metadata\": {\n      \"name\": \"56c6d867-9683-4927-ba94-388fedf87443\"\n    },\n    \"spec\": {\n      \"title\": \"Sample Post\",\n      \"slug\": \"sample-post\",\n      \"template\": \"\",\n      \"cover\": \"\",\n      \"deleted\": false,\n      \"publish\": false,\n      \"pinned\": false,\n      \"allowComment\": true,\n      \"visible\": \"PUBLIC\",\n      \"priority\": 0,\n      \"excerpt\": { \"autoGenerate\": true, \"raw\": \"\" },\n      \"categories\": [\"category-xxx\"],\n      \"tags\": [\"tag-xxx\"],\n      \"htmlMetas\": []\n    }\n  },\n  \"content\": {\n    \"raw\": \"# Hello World\\n\\nThis is a sample post content in **Markdown**.\\n\",\n    \"content\": \"<h1 id=\\\"hello-world\\\">Hello World</h1>\\n<p>This is a sample post content in <strong>Markdown</strong>.</p>\\n\",\n    \"rawType\": \"markdown\"\n  }\n}\n```\n\nContent fields:\n\n- `rawType`: source format, supports `markdown` or `html`.\n- `raw`: the source content. Use Markdown text when `rawType` is `markdown`; use HTML text when `rawType` is `html`.\n- `content`: the rendered result. Use HTML text when `rawType` is `markdown` (converted from Markdown); use HTML text when `rawType` is `html`.\n\n- `baseSnapshot`, `headSnapshot`, `releaseSnapshot` and `owner` must be left empty (do not construct manually).\n- `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.\n\nMarkdown round-trip:\n\n```bash\nhalo post export-markdown my-post\nhalo post export-markdown my-post --output ./post.md\nhalo post import-markdown --file ./post.md --force\n```\n\nRules:\n\n- `--raw-type` defaults to `markdown`, so `--content` is rendered as Markdown unless you set `--raw-type html`.\n- Prefer `--content` for direct inline updates, or use `import-markdown` for Markdown files.\n- `open` only works for published content; with `--json` it returns the URL.\n- Import payload must contain `post.metadata.name`.\n- Import payload must contain `content.raw` or `content.content`.\n\n## Post Categories\n\nManage post categories:\n\n```bash\nhalo post category list\nhalo post category list --keyword Technology\nhalo post category get category-abc123\nhalo post category create --display-name \"Technology\" --slug \"tech\"\nhalo post category create --display-name \"News\" --description \"Latest news\" --priority 100\nhalo post category create --display-name \"Featured\" --slug \"featured\" --cover \"https://example.com/cover.png\"\nhalo post category update category-abc123 --display-name \"Tech News\"\nhalo post category delete category-abc123 --force\n```\n\n## Post Tags\n\nManage post tags:\n\n```bash\nhalo post tag list\nhalo post tag list --keyword Halo\nhalo post tag get tag-abc123\nhalo post tag create --display-name \"Halo\" --slug \"halo\" --color \"#1890ff\"\nhalo post tag create --display-name \"Technology\" --slug \"tech\" --color \"#52c41a\" --cover \"https://example.com/tag-cover.png\"\nhalo post tag update tag-abc123 --display-name \"Halo CMS\"\nhalo post tag delete tag-abc123 --force\n```\n\n## Single Pages\n\nList and inspect:\n\n```bash\nhalo single-page list\nhalo single-page get about --json\n```\n\nCreate:\n\n```bash\nhalo single-page create --title \"About\" --content \"# About\" --publish true\nhalo single-page create --title \"About\" --content \"<h1>Hello Halo</h1>\" --raw-type html\nhalo single-page create \\\n  --title \"Contact Us\" \\\n  --content \"# Contact\" \\\n  --slug \"contact\" \\\n  --excerpt \"Get in touch\" \\\n  --template \"page\" \\\n  --visible PUBLIC \\\n  --allow-comment true \\\n  --priority 0 \\\n  --publish true\n```\n\nUpdate:\n\n```bash\nhalo single-page update about --title \"About Halo\"\nhalo single-page update about --new-name about-page\nhalo single-page update about --slug \"about-halo\" --excerpt \"Updated description\"\nhalo single-page update about --allow-comment false --template \"\"\n```\n\nJSON round-trip:\n\n```bash\nhalo single-page export-json about --output ./about.json\nhalo single-page import-json --file ./about.json --force\n```\n\n`import-json` payload example (for creating a new single page):\n\n```json\n{\n  \"page\": {\n    \"apiVersion\": \"content.halo.run/v1alpha1\",\n    \"kind\": \"SinglePage\",\n    \"metadata\": {\n      \"name\": \"373a5f79-f44f-441a-9df1-85a4f553ece8\"\n    },\n    \"spec\": {\n      \"title\": \"About Us\",\n      \"slug\": \"about\",\n      \"template\": \"\",\n      \"cover\": \"\",\n      \"deleted\": false,\n      \"publish\": false,\n      \"publishTime\": undefined,\n      \"pinned\": false,\n      \"allowComment\": true,\n      \"visible\": \"PUBLIC\",\n      \"priority\": 0,\n      \"excerpt\": { \"autoGenerate\": true, \"raw\": \"\" },\n      \"htmlMetas\": []\n    }\n  },\n  \"content\": {\n    \"raw\": \"<h1>About Us</h1><p>This is a <strong>custom page</strong> content.</p>\",\n    \"content\": \"<h1>About Us</h1><p>This is a <strong>custom page</strong> content.</p>\",\n    \"rawType\": \"HTML\"\n  }\n}\n```\n\nContent fields:\n\n- `rawType`: source format, supports `markdown` or `html`.\n- `raw`: the source content. Use Markdown text when `rawType` is `markdown`; use HTML text when `rawType` is `html`.\n- `content`: the rendered result. Use HTML text when `rawType` is `markdown` (converted from Markdown); use HTML text when `rawType` is `html`.\n\n- `baseSnapshot`, `headSnapshot`, `releaseSnapshot` and `owner` must be left empty (do not construct manually).\n\nRules:\n\n- The command name is `single-page`, not `singlePage`.\n- Single pages do not use post category/tag flows.\n- There is no `--pinned` option for `single-page`.\n- Import payload must contain `page.metadata.name`.\n\n## Safety And Automation\n\n- Use `--profile <name>` when more than one Halo profile exists.\n- Use `--json` for scripts.\n- Use `--force` for destructive non-interactive commands like `delete` or overwrite-style imports.\n- Read current state before mutating when the target resource is uncertain.","tags":["halo","cli","content","halo-dev","agent-skills","agents","halo-cli","openclaw","skills"],"capabilities":["skill","source-halo-dev","skill-halo-cli-content","topic-agent-skills","topic-agents","topic-halo","topic-halo-cli","topic-openclaw","topic-skills"],"categories":["cli"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/halo-dev/cli/halo-cli-content","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add halo-dev/cli","source_repo":"https://github.com/halo-dev/cli","install_from":"skills.sh"}},"qualityScore":"0.458","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 16 github stars · SKILL.md body (7,792 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:17.565Z","embedding":null,"createdAt":"2026-04-23T13:03:48.732Z","updatedAt":"2026-05-18T19:06:17.565Z","lastSeenAt":"2026-05-18T19:06:17.565Z","tsv":"'-4927':346 '-9683':345 '/about.json':886,895 '/cover.png':206,660 '/post.json':315,322 '/post.md':534,541 '/tag-cover.png':731 '/v1alpha1':339,913 '0':279,371,822,945 '1':143 '100':216,646 '1890ff':715 '20':145 '373a5f79':919 '373a5f79-f44f-441a-9df1-85a4f553ece8':918 '388fedf87443':349 '441a':921 '52c41a':727 '56c6d867':344 '85a4f553ece8':923 '9df1':922 'abc123':623,667,679,703,738,750 'about-halo':855 'about-pag':845 'allow':210,275,818,868 'allow-com':209,274,817,867 'allowcom':366,940 'apivers':336,910 'auth':60,67,75 'autogener':373,947 'autom':1067 'awar':282 'ba94':348 'ba94-388fedf87443':347 'basesnapshot':467,1020 'bash':77,124,154,220,284,305,516,606,686,757,771,826,876 'brief':195 'categor':44 'categori':12,100,140,197,295,376,378,480,499,602,605,609,613,619,622,626,636,649,663,666,675,678 'categories/tags':489 'category-abc123':621,665,677 'category-xxx':377 'category/tag':1049 'check':65 'cli':3,46,74,199,297 'cms':33,743 'color':714,726 'command':76,1035,1088 'comment':211,276,819,869 'construct':478,1031 'contact':803,806,808 'contain':592,597,1063 'content':4,28,47,161,172,185,188,236,238,291,294,385,395,399,413,419,431,446,551,564,582,779,790,805,951,960,961,969,972,984,999 'content.content':600 'content.halo.run':338,912 'content.halo.run/v1alpha1':337,911 'content.raw':598 'convert':457,1010 'cover':203,267,359,657,728,931 'creat':21,91,111,153,157,168,181,287,330,506,627,637,650,707,719,770,776,787,801,903 'create/update':283 'current':68,1097 'custom':958,967 'default':547 'delet':23,93,113,360,676,747,932,1090 'descript':642,860 'destruct':1084 'direct':566 'display':629,639,652,669,709,721,740 'display-nam':628,638,651,668,708,720,739 'empti':475,1028 'exampl':328,901 'example.com':205,659,730 'example.com/cover.png':204,658 'example.com/tag-cover.png':729 'excerpt':193,264,266,372,809,858,946 'exist':488,1076 'export':24,95,115,309,520,528,882 'export-json':94,114,308,881 'export-markdown':519,527 'f44f':920 'fals':214,277,361,363,365,870,933,935,939 'featur':654,656 'field':420,973 'file':321,540,576,894 'first':69,495 'flow':1050 'forc':323,542,680,751,896,1082 'format':423,976 'get':89,109,148,620,700,767,810 'h1':400 'halo':2,8,32,41,45,52,55,66,73,78,81,125,128,132,137,146,155,160,163,166,171,174,179,201,221,230,241,254,268,285,299,306,316,497,502,517,525,535,607,611,617,624,634,647,661,673,687,691,696,697,704,711,713,716,732,742,744,758,763,772,783,792,797,827,835,836,848,857,861,877,887,1074 'halo-cli-auth':72 'halo-cli-cont':1 'headsnapshot':468,1021 'hello':159,162,170,173,387,403,405,791 'hello-world':402 'help':80,85 'html':178,427,440,445,451,461,466,562,796,971,980,993,998,1004,1014,1019 'htmlmeta':384,950 'id':401 'import':25,98,118,319,325,511,538,572,589,594,892,898,1060,1095 'import-json':97,117,318,324,891,897 'import-markdown':537,571 'includ':19 'inlin':567 'inspect':123,756 'interact':1087 'json':96,99,116,119,152,301,310,320,326,334,584,769,872,883,893,899,908,1078 'keyword':131,615,695 'kind':340,914 'latest':643 'left':474,1027 'like':1089 'list':20,88,108,121,127,130,139,500,505,610,614,690,694,754,762 'load':71 'manag':7,29,603,683 'manual':479,1032 'markdown':397,415,418,425,433,438,456,459,512,521,529,539,549,555,573,575,978,986,991,1009,1012 'may':61 'mention':40 'metadata':342,916 'metadata.name':486 'miss':508 'must':472,591,596,1025,1062 'mutat':1100 'my-post':149,224,233,244,257,271,311,522,530 'my-post-renam':250 'n':389,398,407,416 'name':249,343,630,640,653,670,710,722,741,844,917,1036 'new':248,262,332,843,905 'new-nam':247,842 'new-slug':261 'news':198,296,641,644,672 'non':1086 'non-interact':1085 'note':184,187,192,290,293 'nthis':390 'one':509,1073 'open':90,110,577 'oper':30 'option':1055 'output':314,533,885 'overwrit':1093 'overwrite-styl':1092 'owner':471,1024 'page':11,43,58,84,106,142,753,761,766,775,786,800,814,830,839,847,851,864,880,890,907,909,959,968,1040,1044,1059 'page.metadata.name':1064 'payload':327,590,595,900,1061 'phase':135 'pin':213,364,938,1054 'post':9,42,53,79,86,120,126,129,138,147,151,156,167,180,222,226,231,235,242,246,252,255,259,269,273,286,307,313,317,333,335,341,353,357,394,412,498,503,518,524,526,532,536,601,604,608,612,618,625,635,648,662,674,681,684,688,692,698,705,717,733,745,1048 'post.metadata.name':593 'prefer':563 'prioriti':215,278,370,645,821,944 'profil':1069,1075 'public':208,369,816,943 'publish':134,136,164,217,239,362,581,781,823,934 'publish-phas':133 'publishtim':936 'queri':493 'raw':176,375,386,428,545,560,794,949,952,981 'raw-typ':175,544,559,793 'rawtyp':417,421,436,443,454,464,970,974,989,996,1007,1017 'read':1096 'readi':64 'releas':183,186,191,202,289,292,300 'release-not':190 'releasesnapshot':469,1022 'renam':253 'render':448,553,1001 'resourc':1104 'result':449,1002 'return':586 'round':303,514,874 'round-trip':302,513,873 'rule':543,1033 'safeti':1065 'sampl':352,356,393,411 'sample-post':355 'script':1080 'set':558 'singl':10,57,83,105,752,760,765,774,785,799,829,838,850,863,879,889,906,1039,1043,1058 'single-pag':56,82,104,759,764,773,784,798,828,837,849,862,878,888,1038,1057 'singlepag':915,1042 'size':144 'skill':36,50 'skill-halo-cli-content' 'slug':189,260,263,354,632,655,712,724,807,854,928 'sourc':422,430,975,983 'source-halo-dev' 'spec':350,924 'state':1098 'style':1094 'subcommand':101,103 'summari':196 'support':424,977 'system':492 'tag':14,102,200,298,380,382,482,504,682,685,689,693,699,702,706,718,734,737,746,749 'tag-abc123':701,736,748 'tag-xxx':381 'target':1103 'taxonomi':281 'taxonomy-awar':280 'tech':633,671,725 'technolog':141,616,631,723 'templat':358,813,871,930 'termin':17 'text':434,441,452,462,987,994,1005,1015 'titl':158,169,182,227,229,288,351,777,788,802,833,925 'topic-agent-skills' 'topic-agents' 'topic-halo' 'topic-halo-cli' 'topic-openclaw' 'topic-skills' 'touch':812 'trigger':34 'trip':304,515,875 'true':165,212,218,240,367,374,782,820,824,941,948 'type':177,546,561,795 'uncertain':1106 'undefin':937 'unless':556 'updat':22,92,112,219,223,228,232,237,243,256,265,270,568,664,735,825,831,840,852,859,865 'url':588 'us':804,927,954,963 'use':5,48,432,439,450,460,570,985,992,1003,1013,1047,1068,1077,1081 'user':39 'valu':483 'visibl':207,368,815,942 'whenev':37 'work':579 'workflow':87,107 'world':388,404,406 'xxx':379,383","prices":[{"id":"0dcbeb19-a420-4f71-9615-0747bb29abc9","listingId":"ff502836-fc19-41c4-b087-b010e60fa9bb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"halo-dev","category":"cli","install_from":"skills.sh"},"createdAt":"2026-04-23T13:03:48.732Z"}],"sources":[{"listingId":"ff502836-fc19-41c4-b087-b010e60fa9bb","source":"github","sourceId":"halo-dev/cli/halo-cli-content","sourceUrl":"https://github.com/halo-dev/cli/tree/main/skills/halo-cli-content","isPrimary":false,"firstSeenAt":"2026-04-23T13:03:48.732Z","lastSeenAt":"2026-05-18T19:06:17.565Z"}],"details":{"listingId":"ff502836-fc19-41c4-b087-b010e60fa9bb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"halo-dev","slug":"halo-cli-content","github":{"repo":"halo-dev/cli","stars":16,"topics":["agent-skills","agents","halo","halo-cli","openclaw","skills"],"license":"mit","html_url":"https://github.com/halo-dev/cli","pushed_at":"2026-05-13T05:09:19Z","description":"CLI for Halo, Halo for Agents.","skill_md_sha":"b7fa4a652e8405b080fdaa112d4eef211ed5695f","skill_md_path":"skills/halo-cli-content/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/halo-dev/cli/tree/main/skills/halo-cli-content"},"layout":"multi","source":"github","category":"cli","frontmatter":{"name":"halo-cli-content","description":"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'."},"skills_sh_url":"https://skills.sh/halo-dev/cli/halo-cli-content"},"updatedAt":"2026-05-18T19:06:17.565Z"}}