# Libtmux_unix.Client.set_environment

- **Module:** Libtmux_unix
- **Package:** libtmux-unix
- **Language:** OCaml
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-ocaml/blob/205dfda49742592b479247049d186956e4a4cfe9/unix/libtmux_unix.mli#L391
- **Public owner:** Libtmux_unix
- **Page:** https://libtmux.org/en/ocaml/latest/reference/libtmux_unix-client-set_environment/

```
val set_environment :
  ?cancel:Cancellation.t ->
  ?hidden:bool ->
  t ->
  Libtmux.Environment.scope ->
  name:string -> string -> (unit, Libtmux.Error.t) result
```

Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment.

## Parameters

- `cancel?` (`Cancellation.t`)
- `hidden?` (`bool`)
- `arg1` (`t`)
- `arg2` (`Libtmux.Environment.scope`)
- `name` (`string`)
- `arg3` (`string`)

## tmux command

The tmux commands behind `set_environment`.

- [`set-environment`](/en/tmux/latest/manual/set-environment/)

## tmux C API

The C declarations in tmux that implement these commands.

- [`cmd_set_environment_entry`](/en/tmux/latest/reference/c-variable-cmd_set_environment_entry/) (attribute)
- [`cmd_set_environment_exec`](/en/tmux/latest/reference/c-function-cmd-set-environment-c-cmd_set_environment_exec/) (function)

## In other ports

Set a variable in the server's environment

| Language | Equivalent |
| --- | --- |
| Python | [`libtmux.Server.set_environment`](/en/py/latest/reference/libtmux-server-set_environment/) (method) |
| Ruby | [`LibTmux::Server#set_environment`](/en/ruby/latest/reference/libtmux-server-set_environment/) (method) |
| Lua | [`libtmux.Server:set_environment`](/en/lua/latest/reference/libtmux-server-set_environment/) (method) |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | [`server.Server.setEnvironment`](/en/ts/latest/reference/server-server-setenvironment/) (method) |
| Rust | [`server.Server.set_environment`](/en/rs/latest/reference/server-server-set_environment/) (method) |
| Go | [`tmux.Server.SetEnvironment`](/en/go/latest/reference/tmux-server-setenvironment/) (method) |
| Java | no equivalent on `Server` |
| C# | no equivalent on `Server` |
| C++ | no equivalent on `Server` |
| Swift | [`Server.setEnvironment(_:to:in:)`](/en/swift/latest/reference/server-setenvironment(_-to-in-)/) (method) |
| Perl | [`LibTmux::Server::set_environment`](/en/perl/latest/reference/libtmux-server-set_environment/) (method). Omit session for the global environment. Missing or explicitly unset values remain failures. |

No equivalent is recorded in PowerShell, Julia, Erlang, Elixir, Common Lisp, Clojure, Kotlin, Scala or F#.

Set a variable in a session's environment

| Language | Equivalent |
| --- | --- |
| Python | [`libtmux.Session.set_environment`](/en/py/latest/reference/libtmux-session-set_environment/) (method) |
| Ruby | [`LibTmux::Session#set_environment`](/en/ruby/latest/reference/libtmux-session-set_environment/) (method) |
| Lua | [`libtmux.Session:set_environment`](/en/lua/latest/reference/libtmux-session-set_environment/) (method) |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | [`session.Session.setEnvironment`](/en/ts/latest/reference/session-session-setenvironment/) (method) |
| Rust | [`session.Session.set_environment`](/en/rs/latest/reference/session-session-set_environment/) (method) |
| Go | [`tmux.Session.SetEnvironment`](/en/go/latest/reference/tmux-session-setenvironment/) (method) |
| Java | no equivalent on `Session` |
| C# | no equivalent on `Session` |
| C++ | no equivalent on `Session` |
| Swift | [`Server.setEnvironment(_:to:in:)`](/en/swift/latest/reference/server-setenvironment(_-to-in-)/) (method) |
| Perl | [`LibTmux::Server::set_environment`](/en/perl/latest/reference/libtmux-server-set_environment/) (method). Pass an explicit session ID. Empty text and zero-like text remain values. |

No equivalent is recorded in PowerShell, Julia, Erlang, Elixir, Common Lisp, Clojure, Kotlin, Scala or F#.
