| ------------------- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Normal Shell | `nu` (no flags) | All launch steps **_except_** those marked with **_(login)_** occur. |
| Login Shell | `nu --login/-l` | All launch steps occur. |
| Command-string | `nu --commands <command-string>` (or `-c`) | All Launch stages **_except_** those marked with **_(config files)_** or **_(repl)_** occur. However, **_(default_env)_** and **_(plugin)_** do occur. The first allows the path `ENV_CONVERSIONS` defined there can take place. The second allows plugins to be used in the command-string. |
| Script file | `nu <script_file>` | Same as with Command-string. |
| No config | `nu -n` | **_(config files)_** stages do **_not_** occur, regardless of other flags. |
| No Standard Library | `nu --no-std-lib` | Regardless of other flags, the steps marked **_(stdlib)_** will **_not_** occur. |
| Force config file | `nu --config <file>` | Forces steps marked with **_(config.nu)_** above to run with the provided config `<file>`, unless `-n` was also specified |
| Force env file | `nu --env-config <file>` | Forces steps marked with **_(default_env.nu)_** and **_(env.nu)_** above to run with the specified env `<file>`, unless `-n` was also specified |
### Scenarios
- `nu`:
- ✅ Makes the Standard Library available
- ✅ Reads user's `plugin.msgpackz` file if it exists in the config directory
- ✅ Sources the `default_env.nu` file internally
- ✅ Sources the user's `env.nu` file if it exists in the config directory
- ✅ Sources the `default_config.nu` file internally
- ✅ Sources user's `config.nu` file if it exists if it exists in the config directory