# Install luit with Homebrew, apt, dnf, MacPorts, Nix, pacman, zypper

Filter run between arbitrary application and UTF-8 terminal emulator. Version 20250912 via Homebrew; verified from local package data. Also installable with debian: sudo apt install luit.

## Install

```sh
sudo av install brew:luit
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install luit
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install luit
```

  Evidence: MacPorts ports tree: x11/luit/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Debian apt (92%):

```sh
sudo apt install luit
```

  Evidence: Debian stable package indexes: luit from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install luit
```

  Evidence: Fedora Rawhide package metadata: luit from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#luit
```

  Evidence: nixpkgs package indexes: pkgs/by-name/lu/luit/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S luit
```

  Evidence: Arch Linux sync databases: luit from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install luit
```

  Evidence: openSUSE Tumbleweed package metadata: luit from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:luit
- **Package manager:** Homebrew
- **Version:** 20250912
- **Source summary:** Filter run between arbitrary application and UTF-8 terminal emulator
- **Homepage:** <https://invisible-island.net/luit/>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- luit (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 20250912
## Project history and usage

luit is a terminal encoding filter that sits between an application and a UTF-8 terminal emulator, translating application output into UTF-8 and terminal input back into the locale encoding.

### Project history

Juliusz Chroboczek wrote luit for the XFree86 Project in 2001-2002. The official history credits later fixes and improvements from several people, especially Tomohiro Kubota's CJK encoding extensions, and notes that the program uses the MIT-X11 license like xterm.

Thomas E. Dickey adopted luit maintenance in 2006 after a period without a maintainer, motivated by keeping it useful with xterm. The Invisible Island history emphasizes two long-running maintenance themes: correcting distribution and path changes made in Xorg-era packaging, and reducing dependence on the lightly maintained font-encoding library by implementing efficient iconv-based conversion.

As of the 2.0 line, luit deprecated the font-encoding library path while preserving support for `.enc` files and broader encoding selection. The official page documents the practical consequences for packagers: encoding data is often packaged separately, dependencies are sometimes incomplete, and luit is not itself an X application even though it is most useful with xterm.

### Adoption history

luit began inside the XFree86 and Xorg terminal ecosystem and became a small but widely packaged Unix utility. The maintainer's page lists portability across SVR4 Unix, AIX, Tru64, BSD systems, macOS, and Linux, and the package appears in common Unix package sets such as Homebrew, Debian, Fedora, MacPorts, Nix, Arch, and openSUSE.

Its adoption is mostly invisible: users encounter it through xterm or legacy-locale workflows rather than as a standalone application. That invisibility is part of its packaging importance, because terminal emulators and old applications still need reliable conversion behavior when UTF-8 terminals meet non-UTF-8 programs.

### How it is used

The manpage describes luit as a filter run between an arbitrary application and a UTF-8 terminal emulator. It is mainly used with xterm, but the official page stresses that luit itself is not an X application.

Power users and packagers use options such as `-list-fontenc` and `-encoding` to inspect and choose encoding tables, especially when diagnosing missing CJK or legacy encoding data.

### Why package nerds care

luit matters to package nerds because it is a small compatibility utility with a long tail of platform-specific behavior. It exposes classic distribution issues: upstream fork history, XFree86/Xorg lineage, font-encoding data split into separate packages, iconv availability, and packagers accidentally adding unnecessary X library dependencies.

### Timeline

- 2001-2002: Written by Juliusz Chroboczek for XFree86.
- 2006: Thomas E. Dickey adopts maintenance to keep luit working with xterm.
- 2010: Xorg incorporates Dickey's luit work into its repository.
- 2013: luit 2.0 release line appears in the maintainer history.
- 2018-2022: Invisible Island page documents ongoing maintenance and portability notes.

### Related projects

- xterm is the primary terminal emulator associated with luit usage.
- XFree86 and Xorg are the historical source trees where luit circulated.
- iconv and font-encoding provide the conversion mechanisms and data paths discussed by the maintainer.

### Sources

- <https://formulae.brew.sh/formula/luit>
- <https://invisible-island.net/luit/luit.html>
- <https://invisible-island.net/luit/luit.log.html>
- <https://invisible-island.net/luit/manpage/luit.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Other Package-Manager Records

- Debian apt - luit - 2.0.20240910-1: normalized package name match | Debian stable package indexes: luit from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | locale and ISO 2022 support for Unicode terminals | https://invisible-island.net/luit/
- Nix - luit: normalized package name match | nixpkgs package indexes: pkgs/by-name/lu/luit/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- dnf - luit - 2.0.20250912-8.fc45: normalized package name match | Fedora Rawhide package metadata: luit from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Locale and ISO 2022 support for Unicode terminals | https://invisible-island.net/luit/
- pacman - luit - 20250912-1: normalized package name match | Arch Linux sync databases: luit from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Filter that can be run between an arbitrary application and a UTF-8 terminal emulator | https://invisible-island.net/luit/luit.html
- zypper - luit - 20230201-1.9: normalized package name match | openSUSE Tumbleweed package metadata: luit from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Locale and ISO 2022 support for Unicode terminals | http://invisible-island.net/luit/
- MacPorts - luit: normalized package name match | MacPorts ports tree: x11/luit/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/luit.yml](https://github.com/mxcl/pkgdb/blob/main/combined/luit.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
