CLI でログインする
hakocms-cli は、あなたのアクセストークンで Hako CMS の Admin API を呼びます。ログインすると、アクセストークンを作って手元に保存します。アクセストークンはあなたと同じ権限で動きます。
ブラウザで許可してログインする
Section titled “ブラウザで許可してログインする”ふだん使うコンピューターでは、この方法でログインします。
-
端末で、次のコマンドを実行します。
<ホスト名>は、あなたの環境のホスト名に置き換えます。ターミナルウィンドウ hakocms-cli auth login --host https://<ホスト名>.hakocms.net端末に確かめの文字(
BCDF-GHJKのような 8 文字)と URL が表示され、ブラウザが開きます。 -
ブラウザの[CLI のログイン]の画面で、文字が端末と同じかを確かめます。管理画面にログインしていなければ、先にログインします。
-
[許可する]を押します。
端末に ✓ Logged in to … と表示されれば、ログインできています。
- ブラウザが開かないとき(SSH でつないだ先など)は、
--no-browserを付けて実行し、表示された URL を手元のブラウザで開きます - 確かめの文字の期限は 10 分です。過ぎたら、もう一度
auth loginを実行します - [許可する]は自分で今 CLI を動かしたときだけ押します。ほかの人から送られてきたリンクでは押しません。押すと、その人があなたとして操作できるようになります
- 作られるアクセストークンの期限は 90 日です。名前は「hakocms-cli on <コンピューターの名前>」になります
管理画面で作ったトークンでログインする
Section titled “管理画面で作ったトークンでログインする”期限や、できることを選んだトークンを使いたいときは、管理画面で作ったトークンでログインします。
-
管理画面の右上のあなたの名前を押し、[アクセストークン]を押します。
-
[新しいトークン]で、[名前](「仕事の Mac」など)、[できること]、[期限]を選んで[作る]を押します。トークンはこのときだけ表示されます。
-
トークンをファイル(
token.txt)に保存し、標準入力から渡してログインします。ターミナルウィンドウ hakocms-cli auth login --host https://<ホスト名>.hakocms.net --with-token < token.txt -
ログインできたら、
token.txtを消します。
トークンはコマンドの引数には書けません。引数に書くと、ほかの人から見えるプロセスの一覧や、シェルの履歴に残るためです。
[できること]で[読み取りだけ]を選んだトークンでは、取り出すコマンド(list、get など)だけが使えます。
CI から使う
Section titled “CI から使う”GitHub Actions などの CI では、ログインせずに、環境変数でつなぐ先とトークンを渡します。環境変数は保存したログインより優先されます。
| 環境変数 | 中身 |
|---|---|
HAKOCMS_HOST |
つなぐ先の URL(https://<ホスト名>.hakocms.net) |
HAKOCMS_TOKEN |
アクセストークン(hako_pat_ で始まるもの) |
HAKOCMS_SPACE |
(省略可)--space を省いたときのスペース |
export HAKOCMS_HOST=https://<ホスト名>.hakocms.netexport HAKOCMS_TOKEN=<アクセストークン>hakocms-cli spaces list<アクセストークン> には CI 用に管理画面で作ったトークンを入れます。トークンは CI の秘密の変数(GitHub Actions の secrets など)に置き、ファイルやワークフローに書きません。CI の例は CI でスキーマを反映する にあります。
CI 用のトークンを、人ごとに作ったトークンと分けておくと、CI だけを止めたいときに CI 用のトークンを取り消せます。
いくつもの環境を切り替える
Section titled “いくつもの環境を切り替える”いくつもの環境にログインしておき、切り替えて使えます。--name で、つなぐ先に短い名前を付けておくと便利です。
hakocms-cli auth login --host https://my-site.hakocms.net --name prodhakocms-cli auth login --host https://my-site-test.hakocms.net --name testコマンドごとに --host で選びます。名前でも URL でも書けます。
hakocms-cli --host test entries list -t posts--host を省いたときのつなぐ先は、auth switch で決めます。
hakocms-cli auth switch prodどこにログインしていて、どれが選ばれているかは、auth status で確かめます。
hakocms-cli auth statusprod (https://my-site.hakocms.net) ← selected by auth switch ✓ logged in as you@example.com (token in the system keyring, expires at 2027-01-21T04:17:32.543075024Z)test (https://my-site-test.hakocms.net) ✓ logged in as you@example.com (token in the system keyring, expires at 2027-01-21T04:20:11.208871150Z)つなぐ先が選ばれる順
Section titled “つなぐ先が選ばれる順”上ほど優先されます。
- コマンドの
--host - 環境変数
HAKOCMS_HOST - 作業しているフォルダの
hakocms-cli.toml auth switchで決めたもの
hakocms-cli.toml は、今のフォルダから親のフォルダへたどって、最初に見つかったものを使います。サイトのリポジトリに置くと、そのリポジトリの中では、ファイルに書いたつなぐ先とスペースを使えます。
host = "prod"space = "blog"削除などの確かめの文には、つなぐ先の名前が入るので、本番の環境と試しの環境の取り違えに気づけます。
スペースを決めておく
Section titled “スペースを決めておく”スペースはコマンドごとに --space(短く -s)で指定します。省いたときのスペースは次の順で決まります。どれもなければ誤りになります。スペースを勝手には選びません。
- 環境変数
HAKOCMS_SPACE hakocms-cli.tomlのspacehakocms-cli spaces use <スラッグ>で決めたもの(つなぐ先ごと)
トークンの置き場所
Section titled “トークンの置き場所”ログインしたトークンは OS の資格情報の保管庫に、つなぐ先ごとに置かれます。
| OS | 置き場所 |
|---|---|
| macOS | キーチェーン |
| Windows | 資格情報マネージャー |
| Linux | Secret Service(GNOME キーリングなど) |
保管庫が使えないとき(デスクトップのない Linux のサーバーなど)は、設定のフォルダの hosts.toml に、本人だけが読める権限で書かれます。設定のフォルダは ~/.config/hakocms-cli/(Windows は %APPDATA%\hakocms-cli\)です。保管庫を使いたくないときは、環境変数 HAKOCMS_NO_KEYRING=1 を付けます。
保存したトークンをほかの道具に渡したいときは、hakocms-cli auth token で出せます。
トークンの期限
Section titled “トークンの期限”- 期限が 7 日を切ると、コマンドのたびに警告が表示されます
- 期限が切れると、コマンドは終了コード 4 で終わります。
auth loginでログインし直します
自分のトークンの一覧は hakocms-cli auth tokens list で見られます。
ID NAME SCOPE TOKEN PREFIX LAST USED AT EXPIRES AT9cel006spn30 hakocms-cli on my-macbook all hako_pat_0JRFN 2026-10-23T04:18:41.856Z 2027-01-21T04:17:32.543Z使わなくなったトークンは取り消します。
hakocms-cli auth tokens revoke <トークンの ID>ログアウトする
Section titled “ログアウトする”hakocms-cli auth logoutauth logout は、Hako CMS の側でトークンを取り消してから、手元からも消します。ほかのつなぐ先からログアウトするときは、--host を付けます。