flk switch / refresh
Shell commands for hot-reloading and profile switching within an active development environment. These are provided by the flk hook and are not standalone flk subcommands.
Setup
Add the shell hook to your profile:
# Bash
eval "$(flk hook bash)"
# Zsh
eval "$(flk hook zsh)"
# Fish
flk hook fish | source
refresh
Reload the current environment to pick up configuration changes.
# Make changes
flk add ripgrep
flk env add MY_VAR "hello"
# Apply without leaving the shell
refresh
Behavior
- With direnv: runs
direnv reload - Without direnv: reuses a saved
nix developprofile when it is current - Without direnv: refreshes that saved profile when the environment definition changes
- Reads the active profile from
FLK_FLAKE_REF(fallback:FLK_PROFILE)
switch <profile>
Switch to a different profile and reload the environment.
switch backend
switch frontend
Behavior
- Validates the profile name (alphanumeric,
-,_only) - Sets
FLK_FLAKE_REFandFLK_PROFILEto the new profile reference - Reloads via direnv or
nix developas appropriate, reusing the saved profile cache when possible
Direnv Integration
When direnv is available and .envrc exists, both refresh and switch use direnv reload for a seamless experience. Without direnv, they use exec nix develop, which replaces the current shell process.
Notes
- Supported shells: bash, zsh, fish
- Requires the flk shell hook to be sourced in your shell profile
- See also: flk hook, flk activate