# LibTmux\Get-TmuxEnvironment

- **Package:** LibTmux
- **Language:** PowerShell
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-powershell/blob/b06c64f844f3173de66b187eaeaf3915814318c6/src/LibTmux.PowerShell/GetTmuxEnvironmentCommand.cs#L7
- **Page:** https://libtmux.org/en/powershell/latest/reference/libtmux-get-tmuxenvironment/

```
Server (default):
Get-TmuxEnvironment
    [-Server] <LibTmux.Server>
    [-Name <System.String>]
    [<CommonParameters>]

Session:
Get-TmuxEnvironment
    [-Session] <LibTmux.Session>
    [-Name <System.String>]
    [<CommonParameters>]
```

Read native tmux environment entries.

Emit native [`TmuxEnvironmentEntry`](/en/csharp/latest/reference/libtmux-tmuxenvironmententry/) objects with Name, Value and [`IsRemoved`](/en/csharp/latest/reference/libtmux-tmuxenvironmententry-isremoved/). An empty
value is present. A removal marker has [`IsRemoved`](/en/csharp/latest/reference/libtmux-tmuxenvironmententry-isremoved/) true and Value null; an absent or
hidden variable emits no object. Hidden variables remain available to tmux formats
and are excluded from new child process environments. Omit Name to list the table.

### Notes

A [`Server`](/en/csharp/latest/reference/libtmux-server/) selects the global environment; a [`Session`](/en/csharp/latest/reference/libtmux-session/) selects its local environment.
Reads do not merge those tables. Changes affect newly created processes and do not
rewrite the environment of an existing pane process. Empty owner pipelines do no
I/O. Errors retain the original exception and owner; Continue permits later owners
and Stop terminates. Cancellation cannot undo a dispatched mutation.

## Command details

- **Command type:** [`cmdlet`](/en/powershell/latest/reference/glossary/#cmdlet)
- **Default parameter set:** Server
- **Positional binding:** Enabled.
- **Pipeline inputs:** `LibTmux.Server`: A native server owner.; `LibTmux.Session`: A native session owner.
- **Outputs:** `LibTmux.TmuxEnvironmentEntry`

Related APIs:

- [Environment](https://github.com/libtmux/libtmux-powershell/blob/b06c64f844f3173de66b187eaeaf3915814318c6/docs/environment.md)

## Examples

Example 1

Read a previously stored variable from a native $session.

[Source example](https://github.com/libtmux/libtmux-powershell/blob/b06c64f844f3173de66b187eaeaf3915814318c6/docs/reference/LibTmux/Get-TmuxEnvironment.md).

```powershell
$session | LibTmux\Get-TmuxEnvironment -Name 'APP_MODE'
```

## Parameters

- `Server` (`LibTmux.Server`): The native server whose table is used. (for `Server`)
  Required. Position 0. Accepts pipeline input by value. [`ValidateNotNull()`](https://learn.microsoft.com/dotnet/api/system.management.automation.validatenotnullattribute?view=powershellsdk-7.4.0).
- `Name` (`System.String`): The environment variable name. Omit Name on Get to list this table. Whitespace-only names and NUL are rejected.
  Optional. Named parameter. Does not accept pipeline input. [`ValidateNotNullOrEmpty()`](https://learn.microsoft.com/dotnet/api/system.management.automation.validatenotnulloremptyattribute?view=powershellsdk-7.4.0). [`ValidatePattern("\\A[^\\x00]*[^\\s\\x00][^\\x00]*\\z")`](https://learn.microsoft.com/dotnet/api/system.management.automation.validatepatternattribute?view=powershellsdk-7.4.0).
- `Verbose` (`System.Management.Automation.SwitchParameter`): Display verbose messages produced by this command.
  Optional. Named parameter. Switch parameter. Common parameter. Does not accept pipeline input. Aliases: `vb`.
- `Debug` (`System.Management.Automation.SwitchParameter`): Display debug messages produced by this command.
  Optional. Named parameter. Switch parameter. Common parameter. Does not accept pipeline input. Aliases: `db`.
- `ErrorAction` (`System.Management.Automation.ActionPreference`): Choose how this command responds to non-terminating errors.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `ea`.
- `WarningAction` (`System.Management.Automation.ActionPreference`): Choose how this command responds to warning messages.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `wa`.
- `InformationAction` (`System.Management.Automation.ActionPreference`): Choose how this command handles information messages.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `infa`.
- `ProgressAction` (`System.Management.Automation.ActionPreference`): Choose how this command handles progress updates.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `proga`.
- `ErrorVariable` (`System.String`): Store the command's error records in the named variable.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `ev`.
- `WarningVariable` (`System.String`): Store the command's warning records in the named variable.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `wv`.
- `InformationVariable` (`System.String`): Store the command's information records in the named variable.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `iv`.
- `OutVariable` (`System.String`): Save output in the named variable while passing it down the pipeline.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `ov`.
- `OutBuffer` (`System.Int32`): Buffer output before passing it to the next pipeline command.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `ob`.
- `PipelineVariable` (`System.String`): Make the most recent output object available through a named variable within the pipeline.
  Optional. Named parameter. Common parameter. Does not accept pipeline input. Aliases: `pv`.
- `Session` (`LibTmux.Session`): The native session whose table is used. (for `Session`)
  Required. Position 0. Accepts pipeline input by value. [`ValidateNotNull()`](https://learn.microsoft.com/dotnet/api/system.management.automation.validatenotnullattribute?view=powershellsdk-7.4.0).

## Returns

`LibTmux.TmuxEnvironmentEntry`: One native entry per visible variable or removal marker.
