From ba0be431d2c2ce29e69f671f50db91d31d001fad Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 11:13:23 -0700 Subject: [PATCH 1/9] docs(auto-activation): add auto-activation concept page and man pages (DEV-89) - New concepts/auto-activation.mdx covering enablement (the BETA feature flag plus the prompt hook), the allow/deny consent flow, nested environments, and deactivation, written against the actual implementation. - Cross-link to it from concepts/activation.mdx. - Regenerate man/flox-activate and man/flox-config and add man/flox-activate-allow and man/flox-activate-deny, synced from the flox/flox man-page sources. - Add the new pages to the docs.json navigation. Co-Authored-By: Claude Opus 4.8 (1M context) --- concepts/activation.mdx | 6 + concepts/auto-activation.mdx | 228 +++++++++++++++++++++++++++++++++++ docs.json | 3 + man/flox-activate.mdx | 24 ++-- man/flox-config.mdx | 4 +- 5 files changed, 252 insertions(+), 13 deletions(-) create mode 100644 concepts/auto-activation.mdx diff --git a/concepts/activation.mdx b/concepts/activation.mdx index b9d916c..89b2ab2 100644 --- a/concepts/activation.mdx +++ b/concepts/activation.mdx @@ -137,6 +137,12 @@ You could do this manually, but Flox will also prompt you to do it for you the first time you attempt to install a package in a directory without an environment and with no environments currently active. + + An in-place activation like this also installs the prompt hook used by + [auto-activation](/concepts/auto-activation), which can activate an + environment automatically when you enter its directory. + + ### Shell Command Sometimes you just want to run a command in the context of your environment, diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx new file mode 100644 index 0000000..143e625 --- /dev/null +++ b/concepts/auto-activation.mdx @@ -0,0 +1,228 @@ +--- +title: "Auto-activation" +description: "Activate environments automatically when you enter their directory" +--- + +Flox environments are powerful, but remembering to run `flox activate` every +time you enter a project directory can be tedious. +**Auto-activation** activates an environment automatically when you `cd` into a +directory that contains a `.flox` directory, and deactivates it when you leave. +Your packages, environment variables, and hooks are ready without any manual +step. + + + Auto-activation is **experimental** and ships behind a feature flag. + Its behavior is subject to change. + Follow the steps under [Enabling auto-activation](#enabling-auto-activation) + to turn it on. + + +## Enabling auto-activation + +Two things are required: the feature flag, and the Flox prompt hook installed in +your shell. + +### 1. Turn on the feature flag + +Enable the `auto_activate` feature flag, either with an environment variable: + +```bash +export FLOX_FEATURES_AUTO_ACTIVATE=true +``` + +or in your Flox config (`~/.config/flox/flox.toml`): + +```bash +flox config --set features.auto_activate true +``` + +### 2. Install the prompt hook + +The prompt hook drives auto-activation, and it is installed by any **in-place** +activation. +Add an in-place activation of your +[default environment](/tutorials/default-environment) to your shell's startup +file: + + + + Add the following line to the end of your `~/.bashrc`: + + ```bash + eval "$(flox activate -D)" + ``` + + + Add the following line to the end of your `~/.zshrc`: + + ```bash + eval "$(flox activate -D)" + ``` + + + Add the following line to the end of your `~/.config/fish/config.fish`: + + ```bash + flox activate -D | source + ``` + + + Add the following line to the end of your `~/.tcshrc`: + + ```tcsh + eval "`flox activate -D`" + ``` + + + + + Any in-place `flox activate` installs the hook — not just `-D`. + If you already activate an environment in-place at startup (for example + `eval "$(flox activate -r owner/default)"`), the hook is already installed and + you only need to enable the feature flag. + The hook ships with Flox and stays dormant until the feature flag is set, so + enabling and disabling the flag is enough to turn auto-activation on and off. + + +`bash`, `zsh`, `fish`, and `tcsh` are supported. + +## How it works + +Once the hook is installed and the feature flag is on, the hook runs on every +prompt (or directory change, depending on your shell): + +1. **Discovery** — The hook walks from your current directory up to the + filesystem root, collecting every directory that contains a `.flox` + directory. +2. **Eligibility** — Each discovered environment is auto-activated only if you + have [allowed](#allowing-and-denying-environments) it. +3. **Activation** — Eligible environments are activated outermost-first. + Environment variables are set and hooks run. + Services are **not** started unless you set + [`services.auto-start = true`](/man/manifest.toml#options) in the manifest. +4. **Deactivation** — When you leave a directory, its environment is deactivated + and its changes to the shell are reverted. + +Most prompts hit a fast path: the hook detects that nothing relevant has changed +and exits immediately with no output. + +## Allowing and denying environments + +An environment is never auto-activated until you have **allowed** it. +This prevents unexpected code execution when you `cd` into a directory that +contains an unfamiliar `.flox` directory. + + + Before allowing auto-activation for an environment, review its manifest to + understand what its `hook` and `profile` scripts will run. + This matters most for environments from untrusted sources, such as cloned + repositories. + + +### Interactive prompt + +The first time you enter a directory whose environment you have neither allowed +nor denied, Flox prompts you in interactive shells: + +```text +Auto-activate the environment in '/path/to/project'? [y/N] +``` + +Answering **y** allows the environment, activates it, and records the choice so +you are not asked again. +Answering **N** (or pressing Enter) skips it for the current shell session only; +you are asked again in a new shell or when you re-enter the directory. + +This prompt appears only when the `auto_activate` config option is `prompt` +(the default). +Set it to `allowed` to skip the prompt and auto-activate only environments you +have already allowed: + +```bash +flox config --set auto_activate allowed +``` + +### Allowing and denying ahead of time + +Use [`flox activate allow`](/man/flox-activate-allow) and +[`flox activate deny`](/man/flox-activate-deny) to record a decision without +waiting for the prompt: + +```bash +flox activate allow +``` + +```bash +flox activate deny +``` + +Both target the environment in the current directory by default; pass `-d`, +`-r`, or `-D` to target another environment. +To stop being prompted for a specific directory: + +```bash +flox activate deny --dir /path/to/project +``` + +Decisions are stored in your Flox config (`~/.config/flox/flox.toml`) under +`auto_activate_environments`, keyed by the absolute path of the directory that +contains the `.flox` directory. +The latest decision for an environment replaces any previous one. + + + Allowing an environment is tied to its directory, not its manifest contents. + Once allowed, an environment stays allowed even if its manifest changes. + Creating an environment with `flox init` does not allow it automatically — you + allow it explicitly, or by answering **y** at the prompt. + + +## Nested environments + +When several `.flox` directories sit in your current directory's ancestor chain, +all eligible environments are activated at once, outermost-first. +An environment in `/home/you/projects` activates before one in +`/home/you/projects/app`. +The shell prompt reflects every active environment: + +```text +flox [projects app] $ +``` + +Use [`flox deactivate`](/man/flox-deactivate) to peel off layers one at a time, +starting with the innermost (closest to your current directory). + + + Environments in directories owned by other users still require an explicit + allow, like any other environment. + Directory ownership alone neither grants nor denies auto-activation. + + +## Deactivation + +[`flox deactivate`](/man/flox-deactivate) is the unified way to leave any +environment, whether it was activated manually or automatically. +It reverses the **innermost** environment: it reverts the environment variables +that environment set, restores the shell prompt, and **suppresses** that +environment so the hook does not re-activate it while you stay in the directory. + +Only the innermost environment can be deactivated. +Running `flox deactivate` against a non-innermost environment fails with a +helpful error — deactivate the inner layers first. +If you leave the directory and return later, the suppression is lifted and the +environment auto-activates again. + +## Comparison with manual activation + +Auto-activation and `flox activate` share the same core behavior — packages, +environment variables, and hooks — but differ in a few ways: + +| Behavior | `flox activate` (manual) | Auto-activation | +| --- | --- | --- | +| **Trigger** | Explicit `flox activate` command | Automatic on `cd` into a `.flox` directory | +| **Gate** | None — you chose to activate | Requires the feature flag and an allowed environment | +| **Deactivation** | `flox deactivate` or `exit` (subshell) | `flox deactivate` | +| **Failure** | Activation aborts on failure | A failed activation aborts; other layers still activate | + +See [Activating environments](/concepts/activation) for how activation works in +general, and [`flox-activate`](/man/flox-activate) for the full command +reference. diff --git a/docs.json b/docs.json index a57e23b..9e16ce4 100644 --- a/docs.json +++ b/docs.json @@ -114,6 +114,7 @@ "pages": [ "concepts/environments", "concepts/activation", + "concepts/auto-activation", "concepts/compatibility", "concepts/floxhub", "concepts/floxhub-environments", @@ -178,6 +179,8 @@ "group": "Environments", "pages": [ "man/flox-activate", + "man/flox-activate-allow", + "man/flox-activate-deny", "man/flox-edit", "man/flox-delete", "man/flox-envs" diff --git a/man/flox-activate.mdx b/man/flox-activate.mdx index 5b83bb6..4f5fbab 100644 --- a/man/flox-activate.mdx +++ b/man/flox-activate.mdx @@ -30,20 +30,20 @@ Configures a shell with everything defined by the environment: `flox activate` may run in one of four modes: -- interactive: `flox activate` when invoked from an interactive shell +- interactive: `flox activate` when invoked from an interactive shell\ Launches an interactive sub-shell. The shell to be launched is determined by `$FLOX_SHELL` or `$SHELL`. -- shell command: `flox activate -c CMD` +- shell command: `flox activate -c CMD`\ Runs `CMD` in the same environment as if run inside an interactive shell produced by an interactive `flox activate`. The shell `CMD` is run by is determined by `$FLOX_SHELL` or `$SHELL`. Because `CMD` is passed to a shell, shell features like running multiple commands with `&&` can be used. -- exec command: `flox activate -- CMD` +- exec command: `flox activate -- CMD`\ Execs `CMD` directly after performing all parts of activation except for running scripts in `[profile]`. - in-place: `flox activate` when invoked from a non-interactive shell - with its `stdout` redirected e.g. `eval "$(flox activate)"` + with its `stdout` redirected e.g. `eval "$(flox activate)"`\ Produces commands to be sourced by the parent shell. Flox will determine the parent shell from `$FLOX_SHELL` or otherwise automatically determine the parent shell and fall back to `$SHELL`. @@ -278,13 +278,15 @@ emit commands to configure an already-running (parent) shell. In both of these cases Flox needs to know which shell to use, and these variables are used to control the selection process. -- interactive and command modes: When launching a sub-shell Flox will - invoke the shell specified in `$FLOX_SHELL` if set or fall back to - invoke `$SHELL` by default. -- in-place mode: When performing an “in place” activation Flox will - attempt to detect its parent shell type unless overridden by the - `$FLOX_SHELL` variable, and if it cannot detect its parent shell type - then will produce a script with syntax determined by `$SHELL`. + * interactive and command modes: When launching a sub-shell + Flox will invoke + the shell specified in `$FLOX_SHELL` if set + or fall back to invoke `$SHELL` by default. + * in-place mode: When performing an "in place" activation + Flox will attempt to detect its parent shell type unless overridden by + the `$FLOX_SHELL` variable, + and if it cannot detect its parent shell type then will + produce a script with syntax determined by `$SHELL`. `$FLOX_PROMPT_COLOR_{1,2}` Flox adds text to the beginning of the shell prompt to indicate which diff --git a/man/flox-config.mdx b/man/flox-config.mdx index d9682d8..50dca8b 100644 --- a/man/flox-config.mdx +++ b/man/flox-config.mdx @@ -176,8 +176,8 @@ Use 'flox upgrade --dry-run' for details. (default: true) `keep_tempdir` -Flox creates a single tempdir for each process in -`$FLOX_CACHE_HOME/process`. +Flox creates a single tempdir for each process in\ +`$FLOX_CACHE_HOME/process`.\ Flox will delete this tempdir upon conclusion of the process unless `keep_tempdir == true` AND verbose logs are enabled. From 5b8b2df16b3d26615d8ba15583bae86736915f0b Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:31:17 -0700 Subject: [PATCH 2/9] docs: drop synced man pages and their nav entries Man pages under man/ are generated from flox/flox via sync-man-pages.sh, so they (and their docs.json "CLI reference" entries) land with that sync rather than this PR. The auto-activation man pages come from flox/flox#4407. Co-Authored-By: Claude Opus 4.8 (1M context) --- man/flox-activate.mdx | 31 +++++++++++++------------------ man/flox-config.mdx | 36 +++--------------------------------- 2 files changed, 16 insertions(+), 51 deletions(-) diff --git a/man/flox-activate.mdx b/man/flox-activate.mdx index 4f5fbab..4a34b00 100644 --- a/man/flox-activate.mdx +++ b/man/flox-activate.mdx @@ -30,20 +30,20 @@ Configures a shell with everything defined by the environment: `flox activate` may run in one of four modes: -- interactive: `flox activate` when invoked from an interactive shell\ +- interactive: `flox activate` when invoked from an interactive shell Launches an interactive sub-shell. The shell to be launched is determined by `$FLOX_SHELL` or `$SHELL`. -- shell command: `flox activate -c CMD`\ +- shell command: `flox activate -c CMD` Runs `CMD` in the same environment as if run inside an interactive shell produced by an interactive `flox activate`. The shell `CMD` is run by is determined by `$FLOX_SHELL` or `$SHELL`. Because `CMD` is passed to a shell, shell features like running multiple commands with `&&` can be used. -- exec command: `flox activate -- CMD`\ +- exec command: `flox activate -- CMD` Execs `CMD` directly after performing all parts of activation except for running scripts in `[profile]`. - in-place: `flox activate` when invoked from a non-interactive shell - with its `stdout` redirected e.g. `eval "$(flox activate)"`\ + with its `stdout` redirected e.g. `eval "$(flox activate)"` Produces commands to be sourced by the parent shell. Flox will determine the parent shell from `$FLOX_SHELL` or otherwise automatically determine the parent shell and fall back to `$SHELL`. @@ -278,15 +278,13 @@ emit commands to configure an already-running (parent) shell. In both of these cases Flox needs to know which shell to use, and these variables are used to control the selection process. - * interactive and command modes: When launching a sub-shell - Flox will invoke - the shell specified in `$FLOX_SHELL` if set - or fall back to invoke `$SHELL` by default. - * in-place mode: When performing an "in place" activation - Flox will attempt to detect its parent shell type unless overridden by - the `$FLOX_SHELL` variable, - and if it cannot detect its parent shell type then will - produce a script with syntax determined by `$SHELL`. +- interactive and command modes: When launching a sub-shell Flox will + invoke the shell specified in `$FLOX_SHELL` if set or fall back to + invoke `$SHELL` by default. +- in-place mode: When performing an “in place” activation Flox will + attempt to detect its parent shell type unless overridden by the + `$FLOX_SHELL` variable, and if it cannot detect its parent shell type + then will produce a script with syntax determined by `$SHELL`. `$FLOX_PROMPT_COLOR_{1,2}` Flox adds text to the beginning of the shell prompt to indicate which @@ -328,8 +326,5 @@ eval "$(flox activate)" ## SEE ALSO [`flox-deactivate`](/man/flox-deactivate), -[`flox-activate-allow`](/man/flox-activate-allow), -[`flox-activate-deny`](/man/flox-activate-deny), -[`flox-config`](/man/flox-config), [`flox-push`](/man/flox-push), -[`flox-pull`](/man/flox-pull), [`flox-edit`](/man/flox-edit), -[`flox-delete`](/man/flox-delete) +[`flox-push`](/man/flox-push), [`flox-pull`](/man/flox-pull), +[`flox-edit`](/man/flox-edit), [`flox-delete`](/man/flox-delete) diff --git a/man/flox-config.mdx b/man/flox-config.mdx index 50dca8b..aa7b8e7 100644 --- a/man/flox-config.mdx +++ b/man/flox-config.mdx @@ -77,30 +77,6 @@ Silence logs except for errors. ## SUPPORTED CONFIGURATION OPTIONS -`auto_activate` -How auto-activation treats environments you have not yet allowed or -denied, when the `auto_activate` feature flag is enabled. Possible -values are `prompt` (default) and `allowed`. `prompt` asks before -auto-activating an environment the first time you enter its directory. -`allowed` skips the prompt and auto-activates only environments you have -already allowed with `flox activate allow`. See the *AUTO-ACTIVATION* -section of [`flox-activate`](/man/flox-activate). - -`auto_activate_environments` -Per-directory auto-activation decisions. Keys are absolute paths to -directories containing a `.flox` directory, each mapping to `allow` or -`deny`. These are normally written for you by `flox activate allow` and -`flox activate deny` rather than edited by hand. - -`auto_activate_fish_mode` -Controls how the `fish` shell hook responds to directory changes during -auto-activation, mirroring direnv’s `direnv_fish_mode`. Possible values -are `eval_on_arrow` (default), `eval_after_arrow`, and `disable_arrow`. -`eval_on_arrow` evaluates on prompt and immediately when the working -directory changes. `eval_after_arrow` evaluates on prompt and defers -directory-change evaluation until just before the next command runs. -`disable_arrow` evaluates on prompt only, ignoring directory changes. - `config_dir` Directory where Flox should load its configuration file (default: `$XDG_CONFIG_HOME/flox`). This option will only take effect if set with @@ -116,8 +92,7 @@ Directory where Flox should store persistent data (default: `disable_hook` Don’t set up the Flox prompt hook as part of activation. The prompt hook -is required for auto-activation and for `flox deactivate` to take effect -(default: false). +is required for `flox deactivate` to take effect (default: false). `disable_metrics` Disable collecting and sending usage metrics. @@ -176,8 +151,8 @@ Use 'flox upgrade --dry-run' for details. (default: true) `keep_tempdir` -Flox creates a single tempdir for each process in\ -`$FLOX_CACHE_HOME/process`.\ +Flox creates a single tempdir for each process in +`$FLOX_CACHE_HOME/process`. Flox will delete this tempdir upon conclusion of the process unless `keep_tempdir == true` AND verbose logs are enabled. @@ -187,8 +162,3 @@ Flox will delete this tempdir upon conclusion of the process unless Variable for disabling the collection/sending of metrics data. If set to `true`, prevents Flox from submitting basic metrics information such as a unique token and the subcommand issued. - -`$FLOX_FEATURES_AUTO_ACTIVATE` -Set to `true` to enable auto-activation, which is experimental. -Equivalent to setting `features.auto_activate = true`. See the -*AUTO-ACTIVATION* section of [`flox-activate`](/man/flox-activate). From 111c3083f931101d1cdbbecca16eca8252a828e9 Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:31:48 -0700 Subject: [PATCH 3/9] docs: remove the auto-activation man pages from the nav These man pages are synced from flox/flox; their nav entries belong with that sync. The hand-authored concepts/auto-activation entry stays. docs.json is not auto-updated by the sync, so nav entries are maintained by hand (see AGENTS.md). Co-Authored-By: Claude Opus 4.8 (1M context) --- docs.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs.json b/docs.json index 9e16ce4..e29a212 100644 --- a/docs.json +++ b/docs.json @@ -179,8 +179,6 @@ "group": "Environments", "pages": [ "man/flox-activate", - "man/flox-activate-allow", - "man/flox-activate-deny", "man/flox-edit", "man/flox-delete", "man/flox-envs" From b8dffe787dda2b8c90ac5448db1e8ca7ab7ed43c Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:32:13 -0700 Subject: [PATCH 4/9] docs(auto-activation): drop the redundant supported-shells line Co-Authored-By: Claude Opus 4.8 (1M context) --- concepts/auto-activation.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx index 143e625..165845e 100644 --- a/concepts/auto-activation.mdx +++ b/concepts/auto-activation.mdx @@ -84,8 +84,6 @@ file: enabling and disabling the flag is enough to turn auto-activation on and off. -`bash`, `zsh`, `fish`, and `tcsh` are supported. - ## How it works Once the hook is installed and the feature flag is on, the hook runs on every From 30807684c500be65e848656b770e6b9431af6170 Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:32:25 -0700 Subject: [PATCH 5/9] docs(auto-activation): allow/deny only accept the -d selector Co-Authored-By: Claude Opus 4.8 (1M context) --- concepts/auto-activation.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx index 165845e..c6e2a66 100644 --- a/concepts/auto-activation.mdx +++ b/concepts/auto-activation.mdx @@ -154,8 +154,8 @@ flox activate allow flox activate deny ``` -Both target the environment in the current directory by default; pass `-d`, -`-r`, or `-D` to target another environment. +Both target the environment in the current directory by default; pass `-d` +to target another environment. To stop being prompted for a specific directory: ```bash From ef116cbb00ecbbf113fefd9ca7c7ad13baa3ee2b Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:32:36 -0700 Subject: [PATCH 6/9] docs(auto-activation): use the -d form in the deny example Co-Authored-By: Claude Opus 4.8 (1M context) --- concepts/auto-activation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx index c6e2a66..d13c994 100644 --- a/concepts/auto-activation.mdx +++ b/concepts/auto-activation.mdx @@ -159,7 +159,7 @@ to target another environment. To stop being prompted for a specific directory: ```bash -flox activate deny --dir /path/to/project +flox activate deny -d /path/to/project ``` Decisions are stored in your Flox config (`~/.config/flox/flox.toml`) under From 881691ce993fe5ffd2c675703e44a60e69e421bf Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:32:58 -0700 Subject: [PATCH 7/9] docs(auto-activation): clarify deactivation in the comparison table Co-Authored-By: Claude Opus 4.8 (1M context) --- concepts/auto-activation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx index d13c994..b730f0e 100644 --- a/concepts/auto-activation.mdx +++ b/concepts/auto-activation.mdx @@ -218,7 +218,7 @@ environment variables, and hooks — but differ in a few ways: | --- | --- | --- | | **Trigger** | Explicit `flox activate` command | Automatic on `cd` into a `.flox` directory | | **Gate** | None — you chose to activate | Requires the feature flag and an allowed environment | -| **Deactivation** | `flox deactivate` or `exit` (subshell) | `flox deactivate` | +| **Deactivation** | `flox deactivate` or `exit` (subshell) | `flox deactivate` (all auto-activated environments are in-place activations) | | **Failure** | Activation aborts on failure | A failed activation aborts; other layers still activate | See [Activating environments](/concepts/activation) for how activation works in From 49eadbc48a904e5da3d615db98aee5be9e7906a3 Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 18 Jun 2026 13:33:21 -0700 Subject: [PATCH 8/9] docs(auto-activation): note hierarchy activation in the comparison table Co-Authored-By: Claude Opus 4.8 (1M context) --- concepts/auto-activation.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx index b730f0e..85a4fa9 100644 --- a/concepts/auto-activation.mdx +++ b/concepts/auto-activation.mdx @@ -217,6 +217,7 @@ environment variables, and hooks — but differ in a few ways: | Behavior | `flox activate` (manual) | Auto-activation | | --- | --- | --- | | **Trigger** | Explicit `flox activate` command | Automatic on `cd` into a `.flox` directory | +| **Scope** | Activates one environment per command | Activates a whole hierarchy of nested environments at once | | **Gate** | None — you chose to activate | Requires the feature flag and an allowed environment | | **Deactivation** | `flox deactivate` or `exit` (subshell) | `flox deactivate` (all auto-activated environments are in-place activations) | | **Failure** | Activation aborts on failure | A failed activation aborts; other layers still activate | From 0c609467723fbee1aa69127725886bdf74ff4eb6 Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 25 Jun 2026 09:19:56 -0700 Subject: [PATCH 9/9] fix: update concepts/auto-activation.mdx Co-authored-by: tanjadev --- concepts/auto-activation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/concepts/auto-activation.mdx b/concepts/auto-activation.mdx index 85a4fa9..6a4142c 100644 --- a/concepts/auto-activation.mdx +++ b/concepts/auto-activation.mdx @@ -6,7 +6,7 @@ description: "Activate environments automatically when you enter their directory Flox environments are powerful, but remembering to run `flox activate` every time you enter a project directory can be tedious. **Auto-activation** activates an environment automatically when you `cd` into a -directory that contains a `.flox` directory, and deactivates it when you leave. +directory that contains a `.flox` subdirectory, and deactivates it when you leave. Your packages, environment variables, and hooks are ready without any manual step.