# Install i2c-tools with Homebrew, apk, apt, dnf, Nix, pacman, zypper

Heterogeneous set of I2C tools for Linux. Version 4.4 via Homebrew; verified from local package data. Also installable with debian: sudo apt install i2c-tools.

## Install

```sh
sudo av install brew:i2c-tools
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install i2c-tools
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add i2c-tools
```

  Evidence: Alpine Linux edge package indexes: i2c-tools from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install i2c-tools
```

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

- dnf (92%):

```sh
sudo dnf install i2c-tools
```

  Evidence: Fedora Rawhide package metadata: i2c-tools 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#i2c-tools
```

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

- pacman (92%):

```sh
sudo pacman -S i2c-tools
```

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

- zypper (92%):

```sh
sudo zypper install i2c-tools
```

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

## Package facts

- **Package key:** brew:i2c-tools
- **Package manager:** Homebrew
- **Version:** 4.4
- **Source summary:** Heterogeneous set of I2C tools for Linux
- **Homepage:** <https://i2c.wiki.kernel.org/index.php/I2C_Tools>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- ddcmon (alias)
- decode-dimms (alias)
- decode-edid (alias)
- decode-vaio (alias)
- eeprog (alias)
- i2c-stub-from-dump (alias)
- i2cdetect (alias)
- i2cdump (alias)
- i2cget (alias)
- i2cset (alias)
- i2ctransfer (alias)

## Install behavior

- Bottle: not available

## Freshness

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

i2c-tools is the standard user-space toolbox for Linux I2C and SMBus work. It contains probing, dump, get, set, transfer, EEPROM, DIMM, and library pieces used by hardware bring-up engineers, Linux distribution packagers, and anyone debugging devices exposed through the kernel i2c-dev interface.

### Project history

The Linux i2c wiki and project README both state that i2c-tools was originally part of lm-sensors and was split into a separate package because not all hardware-monitoring chips are I2C devices and not all I2C devices are hardware monitors. That split gave generic I2C and SMBus utilities their own release stream and repository.

The 3.0.0 line started as an independent release in 2007. The 4.0 release in 2017 added libi2c, i2ctransfer, Python 3 support for py-smbus, many decode-dimms improvements, and refreshed licensing notes. Later 4.x releases continued to modernize bus listing, block reads, DDR memory decoding, build behavior, and command help.

### Adoption history

Because Linux exposes many I2C adapters through /dev/i2c-* and because board peripherals often need low-level checks before drivers are stable, i2c-tools became a routine package in embedded Linux, server hardware, laptop diagnostics, display data decoding, and sensor work. It is carried across major Linux package ecosystems and Homebrew for Linux.

The package's adoption is practical rather than fashionable: i2cdetect, i2cdump, i2cget, i2cset, and i2ctransfer are frequently the quickest way to discover bus topology, verify register behavior, or reproduce a hardware issue outside a custom program.

### How it is used

The core tools operate on Linux I2C buses and SMBus transactions, usually requiring the i2c-dev kernel driver and appropriate permissions. decode-dimms and decode-edid turn EEPROM data into readable hardware information, while i2ctransfer supports custom message sequences in one transfer.

The project README also documents libi2c for C and C++ access over i2c-dev, py-smbus as an optional Python wrapper, and build-time control over static and dynamic library variants.

### Why package nerds care

i2c-tools is a classic distribution package: small, close to the kernel, dangerous if misused, and indispensable when you need it. Its source lives under kernel.org, its bug and patch flow points to linux-i2c, and its release tarballs are signed and mirrored from kernel infrastructure.

For package maintainers, it is interesting because it combines command-line utilities, scripts, library headers, optional language bindings, manpages, Linux-only requirements, and architecture-neutral hardware workflows in a compact source tree.

### Timeline

- 2007: i2c-tools 3.0.0 was released as an independent package.
- 2011: i2c-tools 3.1.0 added more SMBus and DIMM decoding work.
- 2017: i2c-tools 4.0 added libi2c and i2ctransfer.
- 2020: i2c-tools 4.2 added a libi2c manual page and DDR5-related decode-dimms work.
- 2024: i2c-tools 4.4 added getopt-based help improvements and py-smbus packaging updates.

### Related projects

- Related projects include the Linux kernel i2c subsystem, lm-sensors, i2c-dev, py-smbus, JEDEC SPD decoding work, and user-space tools such as ddcutil that also depend on low-level bus access.

### Sources

- <https://formulae.brew.sh/formula/i2c-tools>
- <https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/plain/CHANGES>
- <https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/plain/README>
- <https://i2c.wiki.kernel.org/index.php/I2C_Tools>


## 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 - i2c-tools - 4.4-2: normalized package name match | Debian stable package indexes: i2c-tools from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | heterogeneous set of I2C tools for Linux | https://www.kernel.org/pub/software/utils/i2c-tools/
- Debian apt - libi2c-dev - 4.4-2: normalized package name match | Debian stable package indexes: libi2c-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | userspace I2C programming library development files | https://www.kernel.org/pub/software/utils/i2c-tools/
- Debian apt - libi2c0 - 4.4-2: normalized package name match | Debian stable package indexes: libi2c0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | userspace I2C programming library | https://www.kernel.org/pub/software/utils/i2c-tools/
- Debian apt - python3-smbus - 4.4-2: normalized package name match | Debian stable package indexes: python3-smbus from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Python 3 bindings for Linux SMBus access through i2c-dev | https://www.kernel.org/pub/software/utils/i2c-tools/
- Nix - i2c-tools: normalized package name match | nixpkgs package indexes: pkgs/by-name/i2/i2c-tools/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - i2c-tools - 4.3-4build2: normalized package name match | Ubuntu 24.04 LTS package indexes: i2c-tools from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | heterogeneous set of I2C tools for Linux | https://www.kernel.org/pub/software/utils/i2c-tools/
- Ubuntu apt - libi2c-dev - 4.3-4build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libi2c-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | userspace I2C programming library development files | https://www.kernel.org/pub/software/utils/i2c-tools/
- Ubuntu apt - libi2c0 - 4.3-4build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libi2c0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | userspace I2C programming library | https://www.kernel.org/pub/software/utils/i2c-tools/
- Ubuntu apt - python3-smbus - 4.3-4build2: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-smbus from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Python 3 bindings for Linux SMBus access through i2c-dev | https://www.kernel.org/pub/software/utils/i2c-tools/
- apk - i2c-tools - 4.4-r3: normalized package name match | Alpine Linux edge package indexes: i2c-tools from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Tools for monitoring I2C devices | https://i2c.wiki.kernel.org/index.php/I2C_Tools
- apk - i2c-tools-dev - 4.4-r3: normalized package name match | Alpine Linux edge package indexes: i2c-tools-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Tools for monitoring I2C devices (development files) | https://i2c.wiki.kernel.org/index.php/I2C_Tools
- apk - i2c-tools-doc - 4.4-r3: normalized package name match | Alpine Linux edge package indexes: i2c-tools-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Tools for monitoring I2C devices (documentation) | https://i2c.wiki.kernel.org/index.php/I2C_Tools
- apk - py3-smbus - 4.4-r3: normalized package name match | Alpine Linux edge package indexes: py3-smbus from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | i2c-tools python bindings | https://i2c.wiki.kernel.org/index.php/I2C_Tools
- dnf - i2c-tools - 4.4-7.fc45: normalized package name match | Fedora Rawhide package metadata: i2c-tools from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | A heterogeneous set of I2C tools for Linux | https://i2c.wiki.kernel.org/index.php/I2C_Tools
- dnf - i2c-tools-perl - 4.4-7.fc45: normalized package name match | Fedora Rawhide package metadata: i2c-tools-perl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | i2c tools written in Perl | https://i2c.wiki.kernel.org/index.php/I2C_Tools
- dnf - libi2c - 4.4-7.fc45: normalized package name match | Fedora Rawhide package metadata: libi2c from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | I2C/SMBus bus access library | https://i2c.wiki.kernel.org/index.php/I2C_Tools


## Combined YAML source

View the package source record on GitHub. [combined/i2c-tools.yml](https://github.com/mxcl/pkgdb/blob/main/combined/i2c-tools.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
