以前、Claude CodeやCodexにAPIキーや認証情報を安全に渡す方法として、1Password CLIを利用する方法を紹介しました。

参考記事:Claude Code / Codex時代の .env 安全運用:1Password CLIでAPIキーを直接見せない方法

記事公開後、多くの方に閲覧していただきました。実際に毎日Claude CodeやCodexで開発していると、導入方法よりも運用面でハマるポイントがあります。今回は私が実際に運用していて遭遇した内容を紹介します。

毎回 op signin を打つのが面倒

前回の記事では、1Password CLIを利用するために以下のようなコマンドを実行していました。

eval "$(op signin)"

しかし実際に毎日使っていると、

  • 毎回打つのが面倒
  • eval の書き方を忘れる
  • とりあえず op signin を打ってエラー文から eval "$(op signin)" をコピペする

という状態になります。

op signin だけではうまく動かないことがある

初めて使う人がやりがちなのがこちらです。

op signin

しかし1Password CLIは一般的なログインコマンドとは少し仕組みが異なります。サインイン後に現在のシェル環境へセッション情報を反映する必要があるため、

eval "$(op signin)"

という形で実行するケースがあります。

そのため、op signin だけ覚えれば良いわけではなく、eval "$(op signin)" という少し特殊な書き方も覚えなければなりません。

おすすめの設定

私は bash に以下を登録しています。

ops() {
  if op whoami >/dev/null 2>&1; then
    echo "1Password CLI: already signed in"
  else
    eval "$(op signin "$@")"
  fi
}

例えば ~/.bashrc に追加します。

# 1Password CLI
ops() {
  if op whoami >/dev/null 2>&1; then
    echo "1Password CLI: already signed in"
  else
    eval "$(op signin "$@")"
  fi
}

保存後、

source ~/.bashrc

を実行すれば利用できます。

これで毎回 ops だけで済む

設定後は、

ops

だけでOKです。未ログインならサインインし、ログイン済みなら

1Password CLI: already signed in

と表示されます。

毎回ログイン状態を確認してくれるので、ops を開発前のおまじないとして実行するだけで済みます。

Claude Code起動後に気付く問題

ここからが実運用で一番ハマるポイントです。例えば、

claude

を起動した後に、「あっ、1Password CLIにサインインしていなかった」と気付くことがあります。

そこで別ターミナルを開いて ops を実行したくなります。しかし、これは期待通りに動かないことがあります。

Claude Codeは起動前にサインインする

Claude CodeやCodexは起動時の環境情報を引き継いで動作します。そのため、

  1. Claude Codeを起動する
  2. 後から1Password CLIにサインインする

という順番では認証情報が利用できないことがあります。私自身も何度もハマりました。

そのため、Claude CodeやCodexを起動する前に、まず ops を実行するようにしています。

ops

claude

または

codex

という順番です。私は今では「Claude Codeを起動する前に ops を実行する」という習慣にしています。

サインイン忘れに気付いたらどうする?

残念ながら、claude を起動した後に気付いた場合は、一度Claude Codeを終了し、

ops

claude

の順で入り直すのが確実です。私も何度もやりました。

その前に必ずやるべきこと

ここで重要なのがセッションメモリーです。Claude Codeで長時間作業していると、

  • 要件整理
  • 設計方針
  • 技術選定
  • TODO
  • 未解決課題

などがセッション内に蓄積されています。その状態で何もせず終了すると、あとで思い出すのが大変です。

セッションメモリーに保存してから終了する

私はサインイン忘れに気付いたら、まず以下を実行しています。

ここまでの決定事項を整理してください。

次回再開時に必要な情報、
設計方針、
未完了タスク、
注意事項を含めて
セッションメモリーへ保存してください。

その後、

/exit

で終了します。これをやるだけで、再起動後の復旧がかなり楽になります。

実際の運用フロー

現在はほぼ以下の流れで固定されています。

ops

claude

または

codex

もし途中でサインイン忘れに気付いたら、

  1. セッション内容を保存
  2. Claude Code終了
  3. ops実行
  4. Claude Code再起動

という流れです。

Claude CodeやCodexを毎日使うならやる価値あり

今回の設定は数分で終わります。しかし ops だけで使えるようになるため、Claude CodeやCodexを毎日使う人ほど効果があります。特に1日に何度もターミナルを開き直す人は、かなり快適になるはずです。

まとめ

1Password CLIをClaude CodeやCodexで実運用する場合、導入よりも運用の方が重要です。今回紹介したポイントは以下の4つです。

  • op signin を毎回打たない
  • ops 関数を作る
  • Claude Code起動前にサインインする
  • サインイン忘れ時はセッションメモリーを保存してから再起動する

特に「Claude Codeを起動する前に ops を実行する」という習慣は、一度身につくとかなり快適です。

前回の記事である.env 安全運用:1Password CLIでAPIキーを直接見せない方法が「セキュリティ編」なら、今回は「実運用編」です。これからClaude CodeやCodexで1Password CLIを使う方の参考になれば幸いです。