コンテンツにスキップ

CLI でログインする

hakocms-cli は、あなたのアクセストークンで Hako CMS の Admin API を呼びます。ログインすると、アクセストークンを作って手元に保存します。アクセストークンはあなたと同じ権限で動きます。

ブラウザで許可してログインする

Section titled “ブラウザで許可してログインする”

ふだん使うコンピューターでは、この方法でログインします。

  1. 端末で、次のコマンドを実行します。<ホスト名> は、あなたの環境のホスト名に置き換えます。

    ターミナルウィンドウ
    hakocms-cli auth login --host https://<ホスト名>.hakocms.net

    端末に確かめの文字(BCDF-GHJK のような 8 文字)と URL が表示され、ブラウザが開きます。

  2. ブラウザの[CLI のログイン]の画面で、文字が端末と同じかを確かめます。管理画面にログインしていなければ、先にログインします。

  3. [許可する]を押します。

端末に ✓ Logged in to … と表示されれば、ログインできています。

  • ブラウザが開かないとき(SSH でつないだ先など)は、--no-browser を付けて実行し、表示された URL を手元のブラウザで開きます
  • 確かめの文字の期限は 10 分です。過ぎたら、もう一度 auth login を実行します
  • [許可する]は自分で今 CLI を動かしたときだけ押します。ほかの人から送られてきたリンクでは押しません。押すと、その人があなたとして操作できるようになります
  • 作られるアクセストークンの期限は 90 日です。名前は「hakocms-cli on <コンピューターの名前>」になります

管理画面で作ったトークンでログインする

Section titled “管理画面で作ったトークンでログインする”

期限や、できることを選んだトークンを使いたいときは、管理画面で作ったトークンでログインします。

  1. 管理画面の右上のあなたの名前を押し、[アクセストークン]を押します。

  2. [新しいトークン]で、[名前](「仕事の Mac」など)、[できること]、[期限]を選んで[作る]を押します。トークンはこのときだけ表示されます。

  3. トークンをファイル(token.txt)に保存し、標準入力から渡してログインします。

    ターミナルウィンドウ
    hakocms-cli auth login --host https://<ホスト名>.hakocms.net --with-token < token.txt
  4. ログインできたら、token.txt を消します。

トークンはコマンドの引数には書けません。引数に書くと、ほかの人から見えるプロセスの一覧や、シェルの履歴に残るためです。

[できること]で[読み取りだけ]を選んだトークンでは、取り出すコマンド(list、get など)だけが使えます。

GitHub Actions などの CI では、ログインせずに、環境変数でつなぐ先とトークンを渡します。環境変数は保存したログインより優先されます。

環境変数 中身
HAKOCMS_HOST つなぐ先の URL(https://<ホスト名>.hakocms.net)
HAKOCMS_TOKEN アクセストークン(hako_pat_ で始まるもの)
HAKOCMS_SPACE (省略可)--space を省いたときのスペース
ターミナルウィンドウ
export HAKOCMS_HOST=https://<ホスト名>.hakocms.net
export HAKOCMS_TOKEN=<アクセストークン>
hakocms-cli spaces list

<アクセストークン> には CI 用に管理画面で作ったトークンを入れます。トークンは CI の秘密の変数(GitHub Actions の secrets など)に置き、ファイルやワークフローに書きません。CI の例は CI でスキーマを反映する にあります。

CI 用のトークンを、人ごとに作ったトークンと分けておくと、CI だけを止めたいときに CI 用のトークンを取り消せます。

いくつもの環境にログインしておき、切り替えて使えます。--name で、つなぐ先に短い名前を付けておくと便利です。

ターミナルウィンドウ
hakocms-cli auth login --host https://my-site.hakocms.net --name prod
hakocms-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 status
prod (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)

上ほど優先されます。

  1. コマンドの --host
  2. 環境変数 HAKOCMS_HOST
  3. 作業しているフォルダの hakocms-cli.toml
  4. auth switch で決めたもの

hakocms-cli.toml は、今のフォルダから親のフォルダへたどって、最初に見つかったものを使います。サイトのリポジトリに置くと、そのリポジトリの中では、ファイルに書いたつなぐ先とスペースを使えます。

hakocms-cli.toml
host = "prod"
space = "blog"

削除などの確かめの文には、つなぐ先の名前が入るので、本番の環境と試しの環境の取り違えに気づけます。

スペースはコマンドごとに --space(短く -s)で指定します。省いたときのスペースは次の順で決まります。どれもなければ誤りになります。スペースを勝手には選びません。

  1. 環境変数 HAKOCMS_SPACE
  2. hakocms-cli.toml の space
  3. hakocms-cli spaces use <スラッグ> で決めたもの(つなぐ先ごと)

ログインしたトークンは 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 で出せます。

  • 期限が 7 日を切ると、コマンドのたびに警告が表示されます
  • 期限が切れると、コマンドは終了コード 4 で終わります。auth login でログインし直します

自分のトークンの一覧は hakocms-cli auth tokens list で見られます。

ID NAME SCOPE TOKEN PREFIX LAST USED AT EXPIRES AT
9cel006spn30 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>
ターミナルウィンドウ
hakocms-cli auth logout

auth logout は、Hako CMS の側でトークンを取り消してから、手元からも消します。ほかのつなぐ先からログアウトするときは、--host を付けます。