# LibTmux.Server

- **Package:** libtmux-haskell
- **Language:** Haskell
- **Kind:** module
- **Source:** https://github.com/libtmux/libtmux-haskell/blob/663e212622a02aa74a9bdc8ff71e2b45fcb1d4d5/src/LibTmux/Server.hs
- **Page:** https://libtmux.org/en/haskell/latest/reference/libtmux-server/

Observe and change an existing tmux daemon through an owned Server handle.

A [`Server`](/en/haskell/latest/reference/libtmux-server-t-server/) represents one adoption of one endpoint. [`withServer`](/en/haskell/latest/reference/libtmux-server-v-withserver/) owns its
 socket pin, native command clients and cleanup workers. Closing this scope
 releases those resources; it does not send [`kill-server`](/en/tmux/latest/manual/kill-server/). The tmux noun
 `Client` refers to detached observations in [`LibTmux.Snapshot`](/en/haskell/latest/reference/libtmux-snapshot/).
 [`withRuntime`](/en/haskell/latest/reference/libtmux-server-v-withruntime/) and [`withServerIn`](/en/haskell/latest/reference/libtmux-server-v-withserverin/) give several handles shared resource limits
 and independent Server scopes.

[`capture`](/en/haskell/latest/reference/libtmux-server-v-capture/) returns fully decoded, validated values. Field access and graph
 navigation are pure. Captures use an observation interval, not an atomic
 transaction over tmux and operating-system state.
 [`renameSession`](/en/haskell/latest/reference/libtmux-server-v-renamesession/), [`renameWindow`](/en/haskell/latest/reference/libtmux-server-v-renamewindow/) and [`setPaneTitle`](/en/haskell/latest/reference/libtmux-server-v-setpanetitle/) perform explicit mutations
 against generation-bound references. Earlier observations stay detached.

Operational failures use [`TmuxException`](/en/haskell/latest/reference/libtmux-server-t-tmuxexception/). [`tryTmux`](/en/haskell/latest/reference/libtmux-server-v-trytmux/) catches that type only.
 Cancellation retains its original exception class. If bounded cleanup
 cannot finish, [`cleanupRecoveries`](/en/haskell/latest/reference/libtmux-server-v-cleanuprecoveries/) retrieves the owning recovery scope
 from the exception context. A failed callback remains the primary failure.

# What is on here

Its exports fall into these groups, in export-list order:

**Open and observe**

[`Server`](/en/haskell/latest/reference/libtmux-server-t-server/), [`ServerConfig`](/en/haskell/latest/reference/libtmux-server-t-serverconfig/), [`serverConfig`](/en/haskell/latest/reference/libtmux-server-v-serverconfig-dhie/), [`withServer`](/en/haskell/latest/reference/libtmux-server-v-withserver/), [`capture`](/en/haskell/latest/reference/libtmux-server-v-capture/), [`serverGeneration`](/en/haskell/latest/reference/libtmux-server-v-servergeneration/)

**Rename and title**

[`MutationOptions`](/en/haskell/latest/reference/libtmux-server-t-mutationoptions/), [`defaultMutationOptions`](/en/haskell/latest/reference/libtmux-server-v-defaultmutationoptions/), [`renameSession`](/en/haskell/latest/reference/libtmux-server-v-renamesession/), [`renameSessionWith`](/en/haskell/latest/reference/libtmux-server-v-renamesessionwith/), [`renameWindow`](/en/haskell/latest/reference/libtmux-server-v-renamewindow/), [`renameWindowWith`](/en/haskell/latest/reference/libtmux-server-v-renamewindowwith/), [`setPaneTitle`](/en/haskell/latest/reference/libtmux-server-v-setpanetitle/), [`setPaneTitleWith`](/en/haskell/latest/reference/libtmux-server-v-setpanetitlewith/)

**Shared ownership**

[`Runtime`](/en/haskell/latest/reference/libtmux-server-t-runtime/), [`withRuntime`](/en/haskell/latest/reference/libtmux-server-v-withruntime/), [`withServerIn`](/en/haskell/latest/reference/libtmux-server-v-withserverin/)

**Operational failures**

[`TmuxException`](/en/haskell/latest/reference/libtmux-server-t-tmuxexception/), [`tryTmux`](/en/haskell/latest/reference/libtmux-server-v-trytmux/)

**Scope cleanup**

[`CleanupRecovery`](/en/haskell/latest/reference/libtmux-server-t-cleanuprecovery/), [`CleanupStatus`](/en/haskell/latest/reference/libtmux-server-t-cleanupstatus/), [`cleanupRecoveries`](/en/haskell/latest/reference/libtmux-server-v-cleanuprecoveries/), [`cleanupFailure`](/en/haskell/latest/reference/libtmux-server-v-cleanupfailure/), [`cleanupObservation`](/en/haskell/latest/reference/libtmux-server-v-cleanupobservation/), [`inspectCleanup`](/en/haskell/latest/reference/libtmux-server-v-inspectcleanup/), [`resumeCleanup`](/en/haskell/latest/reference/libtmux-server-v-resumecleanup/), [`awaitCleanup`](/en/haskell/latest/reference/libtmux-server-v-awaitcleanup/), [`detachUnresolved`](/en/haskell/latest/reference/libtmux-server-v-detachunresolved/)

**Correlated capture recovery**

[`CaptureRecovery`](/en/haskell/latest/reference/libtmux-server-t-capturerecovery/), [`captureRecoveries`](/en/haskell/latest/reference/libtmux-server-v-capturerecoveries/), [`recoveryOperation`](/en/haskell/latest/reference/libtmux-server-v-recoveryoperation/), [`recoveryGeneration`](/en/haskell/latest/reference/libtmux-server-v-recoverygeneration/), [`ReadRecovery`](/en/haskell/latest/reference/libtmux-server-t-readrecovery/), [`inspectCaptureRecovery`](/en/haskell/latest/reference/libtmux-server-v-inspectcapturerecovery/), [`resumeCaptureRecovery`](/en/haskell/latest/reference/libtmux-server-v-resumecapturerecovery/), [`detachCaptureRecovery`](/en/haskell/latest/reference/libtmux-server-v-detachcapturerecovery/)

**Correlated mutation recovery**

[`MutationRecovery`](/en/haskell/latest/reference/libtmux-server-t-mutationrecovery/), [`mutationRecoveries`](/en/haskell/latest/reference/libtmux-server-v-mutationrecoveries/), [`mutationOperation`](/en/haskell/latest/reference/libtmux-server-v-mutationoperation/), [`mutationGeneration`](/en/haskell/latest/reference/libtmux-server-v-mutationgeneration/), [`inspectMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-inspectmutationrecovery/), [`resumeMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-resumemutationrecovery/), [`awaitMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-awaitmutationrecovery/), [`detachMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-detachmutationrecovery/), [`Operation`](/en/haskell/latest/reference/libtmux-server-t-operation/), [`Status`](/en/haskell/latest/reference/libtmux-server-t-status/), [`Stage`](/en/haskell/latest/reference/libtmux-server-t-stage/), [`Outcome`](/en/haskell/latest/reference/libtmux-server-t-outcome/), [`operationStatus`](/en/haskell/latest/reference/libtmux-server-v-operationstatus/)

## Members

### Common operations

- [`Server`](/en/haskell/latest/reference/libtmux-server-t-server/) (data type): One pinned endpoint and connection generation.
 Retaining this value after :obj:`withServer <LibTmux.Server#v:withServer>` or :obj:`withServerIn <LibTmux.Server#v:withServerIn>` keeps no admission open.
- [`tryTmux`](/en/haskell/latest/reference/libtmux-server-v-trytmux/) (function): Catch library failures with their exception context. Retain this value
 when handling an error so cleanup and capture owners stay reachable.
 Application exceptions and asynchronous cancellation propagate.
- [`capture`](/en/haskell/latest/reference/libtmux-server-v-capture/) (function): Acquire the complete baseline graph, metadata and attached clients.
 Returned values own their data and remain usable after :obj:`withServer <LibTmux.Server#v:withServer>` exits.
 Capacity and acquisition failure are errors; they never become empty lists.
- [`cleanupRecoveries`](/en/haskell/latest/reference/libtmux-server-v-cleanuprecoveries/) (function): Cleanup owners retained by a failed or cancelled scope. The context
 comes from :obj:`tryTmux <LibTmux.Server#v:tryTmux>` or [tryWithContext](https://hackage.haskell.org/package/base-4.22.0.0/docs/Control-Exception.html#v:tryWithContext). Inspection performs no tmux IO.
 Nested scopes can contribute overlapping owners; inspect and resume each
 retained responsibility through :obj:`inspectCleanup <LibTmux.Server#v:inspectCleanup>` and :obj:`resumeCleanup <LibTmux.Server#v:resumeCleanup>`.
- [`withRuntime`](/en/haskell/latest/reference/libtmux-server-v-withruntime/) (function): Own a Runtime for the callback and perform bounded cleanup afterward.
 Closing it retires every adopted handle; application-owned threads remain
 the application's responsibility. Late adoption fails with :obj:`RuntimeClosed <LibTmux.Server#v:RuntimeClosed>`.
 The daemon remains running.
- [`withServerIn`](/en/haskell/latest/reference/libtmux-server-v-withserverin/) (function): Adopt one endpoint within an existing Runtime and close only that handle
 after the callback. Other handles remain admitted under the shared limits;
 each adoption has its own :obj:`serverGeneration <LibTmux.Server#v:serverGeneration>`. Use :obj:`withServer <LibTmux.Server#v:withServer>` for one handle.
- [`awaitMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-awaitmutationrecovery/) (function): Wait for the original decoder and native child to retire. This may still
 return retained :obj:`OutcomeUnknown <LibTmux.Server#v:OutcomeUnknown>`; it does not wait for a daemon hook job.
 Cancellation keeps this recovery owner in the new exception context.
- [`captureRecoveries`](/en/haskell/latest/reference/libtmux-server-v-capturerecoveries/) (function): Capture owners retained in an exception context, including cancellation.
- [`CleanupRecovery`](/en/haskell/latest/reference/libtmux-server-t-cleanuprecovery/) (data type): Reachable responsibility after an incomplete or failed scope release.
 Retaining this value keeps its selected cleanup target and Runtime reachable.
- [`detachMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-detachmutationrecovery/) (function): Relinquish this operation's logical uncertainty. This neither cancels
 daemon work nor releases native resources, and never repeats the mutation.
- [`inspectMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-inspectmutationrecovery/) (function): Inspect the original operation's logical and physical ownership locally.
 This performs no tmux command. An unknown outcome does not become success
 merely because the native child has exited.
- [`mutationGeneration`](/en/haskell/latest/reference/libtmux-server-v-mutationgeneration/) (function): Server generation associated with this mutation's recovery owner.
- [`mutationOperation`](/en/haskell/latest/reference/libtmux-server-v-mutationoperation/) (function): Metadata-only identity of the original command. :obj:`operationStatus <LibTmux.Server#v:operationStatus>` remains
 available after native cleanup; this value contains no command operands.
- [`MutationOptions`](/en/haskell/latest/reference/libtmux-server-t-mutationoptions/) (data type): Per-command deadline, checked before admission. Start from
 :obj:`defaultMutationOptions <LibTmux.Server#v:defaultMutationOptions>` and update :obj:`timeout <LibTmux.Server#v:MutationOptions.timeout>` in seconds.
- [`mutationRecoveries`](/en/haskell/latest/reference/libtmux-server-v-mutationrecoveries/) (function): Recover the exact operation after failure, timeout or cancellation. The
 context comes from :obj:`tryTmux <LibTmux.Server#v:tryTmux>` or [tryWithContext](https://hackage.haskell.org/package/base-4.22.0.0/docs/Control-Exception.html#v:tryWithContext); cancellation keeps its
 original exception class and is not caught by :obj:`tryTmux <LibTmux.Server#v:tryTmux>`.
- [`renameSession`](/en/haskell/latest/reference/libtmux-server-v-renamesession/) (function): Rename the session targeted by a reference from this Server generation.
 The name is literal text. Earlier :obj:`Snapshot <LibTmux.Snapshot#t:Snapshot>` values keep their old names;
 call :obj:`capture <LibTmux.Server#v:capture>` for a new observation. Use :obj:`renameSessionWith <LibTmux.Server#v:renameSessionWith>` for a deadline.
- [`renameWindow`](/en/haskell/latest/reference/libtmux-server-v-renamewindow/) (function): Rename one physical window across all its session links. The label retains
 bytes through :obj:`TmuxText <LibTmux.Snapshot#t:TmuxText>`; tmux may reject names its release does not accept.
 Format-looking text stays literal. See :obj:`renameWindowWith <LibTmux.Server#v:renameWindowWith>` for a deadline.
- [`renameWindowWith`](/en/haskell/latest/reference/libtmux-server-v-renamewindowwith/) (function): :obj:`renameWindow <LibTmux.Server#v:renameWindow>` with an explicit deadline. Success confirms the primary
 command's response, not completion of background jobs started by hooks.
 :obj:`capture <LibTmux.Server#v:capture>` observes the current label; existing snapshots remain detached.
- [`resumeMutationRecovery`](/en/haskell/latest/reference/libtmux-server-v-resumemutationrecovery/) (function): Resume existing native cleanup and decoder ownership, without repeating
 the command. Allocation failure retains the same recovery owner.
- [`setPaneTitle`](/en/haskell/latest/reference/libtmux-server-v-setpanetitle/) (function): Set the literal title of a pane from this Server generation. The pane's
 application can replace it later. Use :obj:`setPaneTitleWith <LibTmux.Server#v:setPaneTitleWith>` for a deadline.
- [`TmuxException`](/en/haskell/latest/reference/libtmux-server-t-tmuxexception/) (data type): Library operational failures. Context-preserving catching retains any
 cleanup owners; the original application or cancellation exception keeps
 its class when the callback itself failed.
- [`withServer`](/en/haskell/latest/reference/libtmux-server-v-withserver/) (function): Open one handle, run the callback, then perform bounded owned cleanup.
 Cleanup never replaces a callback exception. Incomplete cleanup raises
 :obj:`CleanupFailed <LibTmux.Server#v:CleanupFailed>` after success, or annotates the original callback failure
 with a reachable :obj:`CleanupRecovery <LibTmux.Server#t:CleanupRecovery>`. No daemon shutdown is requested.

### Other members

- [`awaitCleanup`](/en/haskell/latest/reference/libtmux-server-v-awaitcleanup/) (function): Wait for this target's physical cleanup, then inspect its logical debt.
 The wait has no deadline.
 Cancellation or failure preserves an annotated cleanup owner. Use
 :obj:`resumeCleanup <LibTmux.Server#v:resumeCleanup>` when the caller requires a bounded attempt.
- [`CaptureRecovery`](/en/haskell/latest/reference/libtmux-server-t-capturerecovery/) (data type): A reachable owner for one failed or cancelled capture. The receipt holds
 metadata only; the Runtime retains any remaining native and logical owners.
- [`cleanupFailure`](/en/haskell/latest/reference/libtmux-server-v-cleanupfailure/) (function): Exception that interrupted the original cleanup attempt, when there was
 one. Pending ownership alone need not have an associated exception.
- [`cleanupObservation`](/en/haskell/latest/reference/libtmux-server-v-cleanupobservation/) (function): The cleanup metadata recorded when this recovery owner was attached.
- [`CleanupStatus`](/en/haskell/latest/reference/libtmux-server-t-cleanupstatus/) (data type): Local observations of the selected physical and logical responsibility.
 Each inspection returns new metadata; it performs no tmux operation.
- [`defaultMutationOptions`](/en/haskell/latest/reference/libtmux-server-v-defaultmutationoptions/) (function): One second for command submission and its complete response.
- [`detachCaptureRecovery`](/en/haskell/latest/reference/libtmux-server-v-detachcapturerecovery/) (function): Explicitly detach logical uncertainty while preserving native ownership.
- [`detachUnresolved`](/en/haskell/latest/reference/libtmux-server-v-detachunresolved/) (function): Relinquish one logical operation from this cleanup scope. This releases
 no native resources and does not prove that daemon-side work completed.
- [`inspectCaptureRecovery`](/en/haskell/latest/reference/libtmux-server-v-inspectcapturerecovery/) (function): Observe logical outcome, decoder ownership and native cleanup locally.
 This reads runtime metadata and performs no tmux command.
- [`inspectCleanup`](/en/haskell/latest/reference/libtmux-server-v-inspectcleanup/) (function): Inspect current owned cleanup and logical uncertainty without tmux IO.
- [`MutationRecovery`](/en/haskell/latest/reference/libtmux-server-t-mutationrecovery/) (data type): Reachable ownership for one failed or cancelled mutation. The receipt
 retains metadata only; the Runtime retains outstanding native and logical
 owners. Recovery never repeats the command. See :obj:`LibTmux.Server <LibTmux.Server>`.
- [`Operation`](/en/haskell/latest/reference/libtmux-server-t-operation/) (data type): Metadata-only operation identity, readable after responsibility retires.
 Its owning scope controls advancement and explicit detachment.
- [`operationStatus`](/en/haskell/latest/reference/libtmux-server-v-operationstatus/) (function): Read retained operation metadata, including after its physical cleanup.
- [`Outcome`](/en/haskell/latest/reference/libtmux-server-t-outcome/) (data type): First caller result. Later evidence can retire responsibility without
 rewriting :obj:`OutcomeUnknown <LibTmux.Server#v:OutcomeUnknown>` or :obj:`ConnectionRetired <LibTmux.Server#v:ConnectionRetired>`.
- [`ReadRecovery`](/en/haskell/latest/reference/libtmux-server-t-readrecovery/) (data type): Logical responsibility and an operation's physical owners, observed together.
 A released native child does not establish a daemon-side command outcome.
- [`recoveryGeneration`](/en/haskell/latest/reference/libtmux-server-v-recoverygeneration/) (function): Correlate the failed capture with its Server generation.
- [`recoveryOperation`](/en/haskell/latest/reference/libtmux-server-v-recoveryoperation/) (function): Metadata-only operation identity for the failed capture.
- [`renameSessionWith`](/en/haskell/latest/reference/libtmux-server-v-renamesessionwith/) (function): :obj:`renameSession <LibTmux.Server#v:renameSession>` with an explicit :obj:`timeout <LibTmux.Server#v:MutationOptions.timeout>`. A known primary rejection raises
 :obj:`MutationRejected <LibTmux.Server#v:MutationRejected>`; an applied command with a failed hook raises
 :obj:`MutationAppliedWithErrors <LibTmux.Server#v:MutationAppliedWithErrors>`. Neither result implies rollback.
- [`resumeCaptureRecovery`](/en/haskell/latest/reference/libtmux-server-v-resumecapturerecovery/) (function): Resume existing cleanup without dispatching the capture again.
- [`resumeCleanup`](/en/haskell/latest/reference/libtmux-server-v-resumecleanup/) (function): Retry bounded owned cleanup. An incomplete result retains this owner;
 the operation does not retry a tmux command or release logical uncertainty.
- [`Runtime`](/en/haskell/latest/reference/libtmux-server-t-runtime/) (data type): Shared resource limits and cleanup ownership for Server handles. Create
 one with :obj:`withRuntime <LibTmux.Server#v:withRuntime>`, then adopt endpoints through :obj:`withServerIn <LibTmux.Server#v:withServerIn>`.
 Detached :obj:`Snapshot <LibTmux.Snapshot#t:Snapshot>` values retain no Runtime.
- [`serverConfig`](/en/haskell/latest/reference/libtmux-server-v-serverconfig-dhie/) (function): Configure an existing socket, resolving `tmux` through PATH when opened.
 The private pin uses the socket's parent directory. The capture timeout is
 two seconds; callers can change it before opening a Server scope.
- [`ServerConfig`](/en/haskell/latest/reference/libtmux-server-t-serverconfig/) (data type): Pure configuration, checked when :obj:`withServer <LibTmux.Server#v:withServer>` or :obj:`withServerIn <LibTmux.Server#v:withServerIn>` opens the handle.
 Paths retain POSIX bytes; no text decoding or shell interpretation occurs.
- [`serverGeneration`](/en/haskell/latest/reference/libtmux-server-v-servergeneration/) (function): The handle's opaque generation, available without contacting tmux.
- [`setPaneTitleWith`](/en/haskell/latest/reference/libtmux-server-v-setpanetitlewith/) (function): :obj:`setPaneTitle <LibTmux.Server#v:setPaneTitle>` with an explicit deadline. Missing panes fail with
 :obj:`MutationRejected <LibTmux.Server#v:MutationRejected>`. Foreign and offline references fail with :obj:`InvalidTarget <LibTmux.Server#v:InvalidTarget>`
 before dispatch. No mutation retries after cancellation or timeout.
- [`Stage`](/en/haskell/latest/reference/libtmux-server-t-stage/) (data type): Last observed progress. Publishing an uncertain :obj:`Outcome <LibTmux.Server#t:Outcome>` does not
 advance this stage or establish :obj:`OperationComplete <LibTmux.Server#v:OperationComplete>`.
- [`Status`](/en/haskell/latest/reference/libtmux-server-t-status/) (data type): Progress, published result and responsibility are independent observations.
 A retained uncertain operation still consumes admission and its lane permit.

## Referenced by

- [`LibTmux`](/en/haskell/latest/reference/libtmux/) (module)

## Guides

Pages that discuss `LibTmux.Server`.

- [API documentation](/en/haskell/latest/guides/api-documentation/)
- [Implementation status](/en/haskell/latest/guides/status/)

## In other ports

A tmux server

| Language | Equivalent |
| --- | --- |
| Python | [`libtmux.Server`](/en/py/latest/reference/libtmux-server/) (class) |
| Ruby | [`LibTmux::Server`](/en/ruby/latest/reference/libtmux-server/) (class) |
| Lua | [`libtmux.Server`](/en/lua/latest/reference/libtmux-server/) (class) |
| PowerShell | [`LibTmux\New-TmuxServer`](/en/powershell/latest/reference/libtmux-new-tmuxserver/) (cmdlet). This cmdlet constructs a shared .NET `LibTmux.Server` handle without contacting tmux. |
| Julia | [`LibTmux.Server`](/en/julia/latest/reference/libtmux-server/) (struct). `Server` describes an endpoint without contacting tmux. Read its hierarchy with `snapshot`. |
| Erlang | [`tmux_server`](/en/erlang/latest/reference/tmux_server/) (module). `open/1` observes an existing daemon and starts an endpoint owner. Domain rows remain immutable values. |
| Elixir | [`LibTmux.Server`](/en/elixir/latest/reference/libtmux-server/) (struct). `Server` describes an existing server by executable and socket. It neither connects nor reserves the server’s identity. |
| Common Lisp | [`libtmux:client`](/en/lisp/latest/reference/libtmux-client/) (class). `client` is a connection scope with one external-operation lease. Closing it cancels owned work and leaves the tmux daemon alive; `daemon` owns a daemon the library started. |
| TypeScript | [`server.Server`](/en/ts/latest/reference/server-server/) (class) |
| Rust | [`server.Server`](/en/rs/latest/reference/server-server/) (struct) |
| Go | [`tmux.Server`](/en/go/latest/reference/tmux-server/) (struct) |
| Java | [`io.github.libtmux.Server`](/en/java/latest/reference/io-github-libtmux-server-server/) (class) |
| Clojure | [`libtmux.core/open!`](/en/clojure/latest/reference/libtmux-core-open/) (function). Opens a closeable Java server client for an explicit endpoint. Acquisitions return persistent maps with explicit Java references for effects. |
| Kotlin | [`io.github.libtmux.kotlin.Server`](/en/kotlin/latest/reference/io-github-libtmux-kotlin-server/) (class) |
| Scala | [`io.github.libtmux.scaladsl.Server`](/en/scala/latest/reference/io-github-libtmux-scaladsl-server/) (typealias) |
| C# | [`LibTmux.Server`](/en/csharp/latest/reference/libtmux-server/) (class) |
| F# | [`LibTmux.FSharp.Server`](/en/fsharp/latest/reference/libtmux-fsharp-server/) (module). This F# module provides functions over the shared .NET `LibTmux.Server` type. |
| C++ | [`libtmux::Server`](/en/cxx/latest/reference/libtmux-server/) (class) |
| Swift | [`Server`](/en/swift/latest/reference/server/) (struct) |
| OCaml | [`Libtmux_unix.Client.t`](/en/ocaml/latest/reference/libtmux_unix-client-t/) (typealias). A client is a live, generation-bound server connection. Endpoint describes a socket without connecting; closing a client releases its resources. |
| Perl | [`LibTmux::Server`](/en/perl/latest/reference/libtmux-server/) (class). Construction records connection settings without tmux I/O. Optional LibTmux::Async::Server returns standard Future results for operations. |
| Raku | [`LibTmux::Server`](/en/raku/latest/reference/libtmux-server/) (class) |
