Muse Code の認証には3つの経路があります。優先順位がヘルプに明記されています。
1. Metaアカウントでログイン
muse login
「Metaアカウントでログインする。ブラウザでコードを承認する」と説明されています。対話的な認証です。
2. APIキーを保存する
muse auth set --api-key-stdin
ヘルプの記述が重要です。「APIキーは --api-key-stdin により標準入力から読まれる。コマンドライン引数としては決して受け取らないので、シェル履歴に残らない」。
--provider に取れる値は現時点で meta のみです。
3. 環境変数
META_API_KEY を環境変数に置く方法です。そしてヘルプにこう書かれています。
META_API_KEY always takes priority over the account login.
環境変数は常にアカウントログインより優先されます。ログイン済みでも、環境変数があればそちらが使われるということです。意図しないキーで動いてしまう事故を避けるため、両方を設定している場合は注意が要ります。
ログアウト
muse logout
「保存されたMeta認証情報(APIキーまたはMetaアカウントログイン)を削除する。環境変数の META_API_KEY には触れない」と明記されています。ログアウトしたつもりで環境変数が残っていれば、引き続き認証された状態になります。
整理
| 方式 | 保存先 | logoutで消えるか |
|---|---|---|
| muse login | ローカルの認証情報 | 消える |
| muse auth set | ローカルの認証情報 | 消える |
| META_API_KEY | 環境変数 | 消えない・かつ最優先 |
秘密情報を引数で渡させない方針は muse exec --api-key-stdin にも共通しています。設計として一貫しています。