---
name: "envml"
section: "1"
platform: "linux"
package: "environment-modules"
version: "5.7.0-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/envml"
---

# envml(1)

run a command in an environment setting up by Modules

## NAME

envml - run a command in an environment setting up by Modules

## SYNOPSIS

**envml** \[*MODULE\_ACTION*\]... \[--\] *COMMAND* \[*ARG*\]...

## DESCRIPTION

The **envml** command configures the environment using specified Environment Modules actions and then given command.

This is useful for running a command in a modified environment without permanently altering the current shell session.

**envml** interprets its first arguments as module actions, then switches to command execution after either encountering **--** or determining that the remaining arguments form the actual command to run.

## MODULE\_ACTION FORMAT

Each module action argument can be one of the following forms:

- •

  **purge** Unload all currently loaded modulefiles.

- •

  **restore\[=coll\]** Restore the module environment from the named collection **coll**. If no name is given, restores the default collection.

- •

  **unload=mod1\[&mod2...\]** Unload one or more specified modulefiles.

- •

  **switch=mod1&mod2** Unload **mod1** and load **mod2**.

- •

  **\[load=\]mod1\[&mod2...\]** Load one or more specified modulefiles. **load=** can be omitted.

Multiple MODULE\_ACTIONs can be passed in a single argument using the colon (**:**) separator. The ampersand (**&**) is used to specify multiple modules in a single action.

## COMMAND EXECUTION

Everything following the **--** separator is treated as the command to execute in the modified environment.

If no **--** separator is provided, **envml** assumes the first argument is a MODULE\_ACTION and the remaining arguments form the command to execute.

## OPTIONS

- **--help, -h**

  Display usage information and exit.

## EXAMPLES

Restore default module collection then run **command arg1 arg2**:

```
envml restore command arg1 arg2
```

Purge all modules, then load **mod1** and **mod2**, and run the command:

```
envml purge:mod1:mod2 command arg1 arg2
```

Use the **--** separator to avoid ambiguity:

```
envml restore load=mod1&mod2 -- command arg1 arg2
```

## EXIT STATUS

The **envml** command returns the exit status of the executed command or **1** if module action fails.

## DIAGNOSTICS

If the **module** command is not available in the shell (i.e., not a shell function), **envml** will print an error and exit.

## SEE ALSO

module \<#module-1\>, modulecmd \<#modulecmd-1\>, ml \<#ml-1\>, modulefile \<#modulefile-5\>

## Copyright

1996-2026, Modules Contributors
