# LibTmux::Model::ClientRef.switch

- **Module:** LibTmux::Model
- **Package:** LibTmux
- **Language:** Raku
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-raku/blob/0b5dd3d32e20f83a0069874e33eab0eb48f55962/lib/LibTmux/Client.rakumod#L328
- **Inherited from:** LibTmux::Client::ClientTarget
- **Page:** https://libtmux.org/en/raku/latest/reference/libtmux-model-clientref-switch/

```
method switch(SessionId:D $session, Bool:D :$update-environment = False,
                  Bool:D :$keep-zoom = False, *%operation --> Result:D)
```

Switch session by ID. Updating the session environment is opt-in.

Switch session by ID. Updating the session environment is opt-in.

## Parameters

- `$session` (`SessionId:D`)
- `$update-environment?` (`Bool:D`)
- `$keep-zoom?` (`Bool:D`)
- `%operation`

## tmux command

The tmux commands behind `switch`.

- [`switch-client`](/en/tmux/latest/manual/switch-client/)

## tmux C API

The C declarations in tmux that implement these commands.

- [`cmd_switch_client_entry`](/en/tmux/latest/reference/c-variable-cmd_switch_client_entry/) (attribute)
- [`cmd_switch_client_exec`](/en/tmux/latest/reference/c-function-cmd-switch-client-c-cmd_switch_client_exec/) (function)

## In other ports

Switch a client to another session

| Language | Equivalent |
| --- | --- |
| Python | [`libtmux.Server.switch_client`](/en/py/latest/reference/libtmux-server-switch_client/) (method) |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | no equivalent on `Server` |
| Rust | no equivalent on `Server` |
| Go | [`tmux.Server.SwitchClient`](/en/go/latest/reference/tmux-server-switchclient/) (method) |
| Java | no equivalent on `Server` |
| C# | [`LibTmux.Server.SwitchClientAsync`](/en/csharp/latest/reference/libtmux-server-switchclientasync/) (method) |
| C++ | no equivalent on `Server` |
| Swift | no equivalent on `Server` |
| OCaml | [`Libtmux_unix.Client.switch_client_at`](/en/ocaml/latest/reference/libtmux_unix-client-switch_client_at/) (function) |
| Perl | No dedicated equivalent in the selected Perl surface. Explicit Server::cmd remains available for native tmux commands. |

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