# Installation

Source: https://libtmux.org/en/haskell/latest/guides/installation/

> Installation: libtmux-haskell documentation.

Use GHC 9.14.1, GHC2024 and Cabal 3.18.2.0. The package targets this compiler
series on Linux x86_64 only. Install the pinned tools through the
[contributor setup](https://github.com/libtmux/libtmux-haskell/blob/581f0ee45016ffb2283366bb1edc1658df26c5ed/.github/CONTRIBUTING.md#toolchain) if needed.

Pin the source revision in your application's [`cabal.project`](<https://github.com/libtmux/libtmux-haskell/blob/581f0ee45016ffb2283366bb1edc1658df26c5ed/cabal.project>):

<!-- example-project: typed-values -->
```cabal
packages: .
index-state: 2026-11-06T00:00:00Z

source-repository-package
  type: git
  location: https://github.com/libtmux/libtmux-haskell
  tag: f910d69f92a156df3390956470a1a3cd8a69e0fe
```

Add the library to the executable's dependencies. The
[example package](https://github.com/libtmux/libtmux-haskell/blob/581f0ee45016ffb2283366bb1edc1658df26c5ed/examples/typed-values/libtmux-typed-values.cabal) is a
complete starting point:

<!-- example-package: typed-values -->
```cabal
cabal-version: 3.18
name: libtmux-typed-values
version: 0.0.0
build-type: Simple
license: MIT

executable typed-values
  main-is: Main.hs
  default-language: GHC2024
  ghc-options: -Wall -Werror
  build-depends:
    base >=4.22 && <4.23,
    libtmux-haskell ^>=0.1.0.0
```

Save [Main.hs](https://github.com/libtmux/libtmux-haskell/blob/581f0ee45016ffb2283366bb1edc1658df26c5ed/examples/typed-values/Main.hs) beside the package file, then
download the package index before the first build:

```console
$ cabal update
```

Build and run the example:

```console
$ cabal run --verbose=0 typed-values
```

The [typed-value guide](https://libtmux.org/en/haskell/latest/guides/typed-values/) explains the output and what each check
establishes. This example requires no running tmux server.

The source revision above contains the current public scalar API. Native
client operations and workspace tooling require further implementation;
check [status](https://libtmux.org/en/haskell/latest/guides/status/) before choosing the package for automation.

## Native backend host requirements

The private native backend targets Linux x86_64 with glibc 2.39 or newer
for `pidfd_spawn`, compatible kernel pidfd operations, and exclusive child
reaping ownership. Missing host operations fail before launch. This is
separate from the public pure scalar API. See the
[process host contract](https://github.com/libtmux/libtmux-haskell/blob/581f0ee45016ffb2283366bb1edc1658df26c5ed/docs/contracts/process.md#launch-and-host-requirements).
