はじめての CLI
このページでは、hakocms-cli で Hako CMS にログインし、エントリーを 1 つ書き換えて公開するまでを、順にたどります。15 分ほどかかります。
hakocms-cliを入れておきます(CLI を入れる)- Hako CMS の環境と、エントリーの入ったスペースを用意しておきます。まだなら、クイックスタート で、スペース、コンテンツタイプ、エントリーを作ります。このページでは、クイックスタートと同じく、スペースのスラッグを
blog、コンテンツタイプ ID をpostsとします - エントリーを編集・公開できるロール(オーナー、管理者、編集者)で、そのスペースのメンバーになっておきます
このページに出てくる ID、日時、フィールドの値は例です。あなたの環境では、違う値が表示されます。
1. ログインする
Section titled “1. ログインする”端末で、次のコマンドを実行します。<ホスト名> は、あなたの環境のホスト名に置き換えます。ホスト名は、管理画面のアドレス https://<ホスト名>.hakocms.net/admin の <ホスト名> の部分です。
hakocms-cli auth login --host https://<ホスト名>.hakocms.net次のように、確かめの文字と URL が表示され、ブラウザが開きます。
First check this code in the browser: DCHP-QPXWApprove the login at: https://<ホスト名>.hakocms.net/admin/cli-login?code=DCHP-QPXWWaiting for approval…ブラウザに[CLI のログイン]の画面が表示されます。管理画面にログインしていなければ、先にログインします。
- 画面の文字が端末に表示された文字(この例では
DCHP-QPXW)と同じかを確かめます - [許可する]を押します。「許可しました。端末に戻ってください」と表示されます
端末に戻ると、次のように表示されています。
✓ Logged in to <ホスト名>.hakocms.net (https://<ホスト名>.hakocms.net) as you@example.comブラウザが開かないときは、端末に表示された URL を手元のブラウザで開きます。確かめの文字の期限は 10 分です。
2. スペースを選ぶ
Section titled “2. スペースを選ぶ”ログインした環境のスペースを一覧にします。
hakocms-cli spaces listあなたがメンバーになっているスペースが表示されます。
ID SLUG NAME ROLE CREATED ATsdbm329n7t7o blog ブログ owner 2026-10-23T04:17:48.862Zこれから使うスペースを決めます。決めておくと、コマンドごとに --space blog を付けずに済みます。
hakocms-cli spaces use blog✓ Using the space blog on <ホスト名>.hakocms.net3. エントリーを一覧にする
Section titled “3. エントリーを一覧にする”スペースのコンテンツタイプを一覧にします。
hakocms-cli content-types listID ENDPOINT NAME KIND UPDATED AT CREATED ATk4xst7lr0ikx posts 記事 collection 2026-10-23T04:18:29.560Z 2026-10-23T04:18:29.560Z[ENDPOINT]の列がコンテンツタイプ ID です。posts のエントリーを一覧にします。コンテンツタイプは --type(短く -t)で指定します。
hakocms-cli entries list -t postsID STATUS UPDATED AT CREATED ATiazte4ghzm55 draft 2026-10-23T04:18:29.640Z 2026-10-23T04:18:29.640Z左の[ID]がエントリーの ID です。次の手順で使います。
4. エントリーを書き換える
Section titled “4. エントリーを書き換える”エントリーの値を見ます。<エントリー ID> は、手順 3 で表示された ID に置き換えます。
hakocms-cli entries get <エントリー ID> -t postsid: iazte4ghzm55contentTypeId: k4xst7lr0ikxstatus: draftpublished:draft: {"title":"はじめての記事","body":"CLIから書きました"}createdAt: 2026-10-23T04:18:29.640ZupdatedAt: 2026-10-23T04:18:29.640ZpublishedAt:revisedAt:reservation: {"publishAt":null,"closeAt":null,"error":null,"failedAt":null}タイトルを書き換えます。--set に、フィールド ID と値を = でつないで渡します。
hakocms-cli entries update <エントリー ID> -t posts --set title=はじめての記事(直した)draft の値の title が変わったことが表示されます。指定しなかったフィールド(body)は、そのまま残ります。
status: draftdraft: {"title":"はじめての記事(直した)","body":"CLIから書きました"}この時点では、下書きに保存されただけです。管理画面の[保存]と同じで、サイトにはまだ出ません。
5. 公開する
Section titled “5. 公開する”hakocms-cli entries publish <エントリー ID> -t postsstatus が published になり、published に今の値が入ります。
status: publishedpublished: {"title":"はじめての記事(直した)","body":"CLIから書きました"}draft:publishedAt: 2026-10-23T04:18:42.148Z6. 確かめる
Section titled “6. 確かめる”管理画面で、blog の[記事]のエントリーを開きます。タイトルが「はじめての記事(直した)」になり、公開されています。
Content API からも取り出せます(エントリーを取り出す)。
curl https://<ホスト名>.hakocms.net/api/v1/content/posts/<エントリー ID> \ -H "Authorization: Bearer <API キー>"次にやること
Section titled “次にやること”- CLI でログインする:トークンの置き場所、CI から使う、いくつもの環境を切り替える
- エントリーをまとめて書き換える・取り出す
- CI でスキーマを反映する
- CLI の出力と終了コード:
--jsonと--jq、スクリプトでの使い方