# Install zapp with Homebrew, Nix

Flash ZSA keyboards from your terminal. Version 1.0.2 via Homebrew; verified 2026-07-09. Also installable with nix: nix profile install nixpkgs#zapp.

## Install

```sh
sudo av install brew:zapp
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install zapp
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#zapp
```

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

## Package facts

- **Package key:** brew:zapp
- **Package manager:** Homebrew
- **Version:** 1.0.2
- **Source summary:** Flash ZSA keyboards from your terminal
- **Homepage:** <https://github.com/zsa/zapp>
- **Repository:** <https://github.com/zsa/zapp>
- **Last updated:** 2026-07-09T11:51:39Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- zapp (alias)

## Install behavior

- Bottle: not available

## Freshness

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

Zapp is ZSA Technology Labs' open-source Rust CLI for flashing ZSA ergonomic keyboards from a terminal instead of using a browser or the larger Keymapp application.

### Project history

ZSA introduced Zapp on 2026-04-07 as a small terminal tool for users who do not flash through a browser and want something lighter or more automation-friendly than Keymapp. The README describes it as a cross-platform CLI for flashing ZSA keyboards including Voyager, Moonlander, Ergodox EZ, Halfmoon, and Planck EZ variants.

The project structure is intentionally split between a `zapp` CLI binary and `zapp-core` library code for USB device detection, firmware parsing, and flashing protocols such as STM32 DFU and HALFKAY.

### Adoption history

Zapp's adoption is young and vendor-specific. Its README already documents Homebrew, openSUSE, Arch/AUR, Nix flakes, source installation through Cargo, release binaries, and Linux udev rules, which is the right packaging surface for a USB firmware-flashing tool.

The ZSA announcement positions Zapp as automation-friendly: it can flash a local firmware file or Oryx URL, and `zapp update` can read layout and revision data from a keyboard flashed with Oryx firmware without storing login credentials.

### How it is used

Users run `zapp flash firmware.bin`, `zapp flash firmware.hex`, or pass an Oryx layout URL. Zapp downloads or parses the firmware, waits for the keyboard to enter bootloader mode, detects the device over USB, and flashes it. On Linux, users need udev rules so the USB device is accessible without root.

### Why package nerds care

Zapp is package-nerd significant because it turns a vendor hardware workflow into a normal CLI package: installable with Homebrew or distro tools, auditable as open-source Rust, and friendly to repeatable firmware workflows.

It also shows the packaging details that make hardware CLIs different from pure text tools: firmware formats, USB permissions, udev rules, bootloader modes, and platform-specific flashing protocols are part of the package experience.

### Timeline

- 2026-04-07: ZSA published the Introducing Zapp announcement.
- 2026: README documents Homebrew, openSUSE, Arch/AUR, Nix, Cargo, and release-binary installation paths.
- 2026: Zapp supports local DFU/Intel HEX firmware files, Oryx URLs, and keyboard-layout update checks.

### Related projects

- Related projects include ZSA Oryx, ZSA Keymapp, Wally, QMK Firmware, QMK Toolbox, kontroll, dfu-util-style firmware workflows, and keyboard-specific udev rule packages.

### Sources

- <https://blog.zsa.io/introducing-zapp/>
- <https://github.com/qmk/qmk_firmware>
- <https://github.com/zsa/wally>
- <https://github.com/zsa/zapp>
- <https://raw.githubusercontent.com/zsa/zapp/main/README.md>


## Security Notes

No matching local secret-handling manifest was found for zapp. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Other Package-Manager Records

- Nix - zapp: normalized package name match | nixpkgs package indexes: pkgs/by-name/za/zapp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Combined YAML source

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