From 993afc8267591707ae48a89de3480e05ff30b3fd Mon Sep 17 00:00:00 2001 From: Thomas Witt Date: Mon, 16 Feb 2026 13:08:13 +0200 Subject: [PATCH] feat(dotenv): add named pipe (FIFO) support (#13561) --- plugins/dotenv/README.md | 8 ++++++++ plugins/dotenv/dotenv.plugin.zsh | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/dotenv/README.md b/plugins/dotenv/README.md index ab9d329f6..5dbcf0fb1 100644 --- a/plugins/dotenv/README.md +++ b/plugins/dotenv/README.md @@ -78,6 +78,14 @@ change. NOTE: if a directory is found in both the allowed and disallowed lists, the disallowed list takes preference, _i.e._ the .env file will never be sourced. +## Named Pipe (FIFO) Support + +The plugin supports `.env` files provided as UNIX named pipes (FIFOs) in addition to regular files. +This is useful when secrets managers like [1Password Environments](https://developer.1password.com/docs/environment/) +mount `.env` files as named pipes to inject secrets on-the-fly without writing them to disk. + +No additional configuration is required — the plugin automatically detects and sources named pipes. + ## Version Control **It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only. diff --git a/plugins/dotenv/dotenv.plugin.zsh b/plugins/dotenv/dotenv.plugin.zsh index 46cd4b10a..c44c369b5 100644 --- a/plugins/dotenv/dotenv.plugin.zsh +++ b/plugins/dotenv/dotenv.plugin.zsh @@ -11,7 +11,7 @@ ## Functions source_env() { - if [[ ! -f "$ZSH_DOTENV_FILE" ]]; then + if [[ ! -f "$ZSH_DOTENV_FILE" ]] && [[ ! -p "$ZSH_DOTENV_FILE" ]]; then return fi