.envに値を書き込みたくないので、1Password CLIを使ってシークレットを管理する。
1Password CLIを使った方法はいくつかブログとして存在するのだが、envファイルを仮想マウントしたり、Vaultに登録してreadする方法だ。今回の意図とは異なるので参考として以下に掲載しておく。
ベータ版の環境に関する公式ドキュメントを読むも、少し情報不足感があって困った。
※2026/04/01現在、この環境はベータ版である。
目的と背景
- .env内に値を書き込みたくない。Claude には.envの読み込みを禁止しているが、念のための保険
- 1PassowordのVaultは開発以外の情報が多いので、Keyを登録したくない。よって環境(ベータ)を使う
op read op://のような書き方をしない
- ☆そもそも.envファイルを作成しなくていいならそれが一番良い
準備
1Password CLI
まず1Password CLIのベータ版をダウンロードする必要がある。すでにHomebrew などでStable版がインストールされている場合は、アンインストールしてベータ版を入れ直す。
公式によると2.33.0-beta.02以降が必要。
https://app-updates.agilebits.com/product_history/CLI2#beta
次に、開発者タブで環境の設定をする。「環境を表示」を押すと、新しい環境という名の空間を作れる。

任意の名前を付けたら、変数を設定する。すでに.envがある人はインポートしても良い。

環境の管理から、IDをコピーする。

1Password CLIでの操作(シークレット値の確認方法)
公式ドキュメントを読むも、意図した動作が取れず困っていた。結局 op run --helpにこの世のすべてが書いてあった。
op run --environment <ENV_UUID> -- printenv <ENV_NAME>
また、標準出力や標準エラーではマスキングされるので、表示したい場合は--no-maskingをつける(プログラムが読み取るだけなら不要)。
op run --no-masking --environment <ENV_UUID> -- printenv <ENV_NAME>
アプリケーション起動・注入方法
op run --environment <ENV_UUID> -- <Command> で一括注入できる。便利。
ということで、docker compose upでも next devでもこれで環境変数が利用できるようになった。