macOS
brew install zapplocal Homebrew formula metadata
brew / rank 7924
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
brew install zapplocal Homebrew formula metadata
nix profile install nixpkgs#zappnixpkgs package indexes · pkgs/by-name/za/zapp/package.nix · source: api.github.com
overview
Flash ZSA keyboards from your terminal
history
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.
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.
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.
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.
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.
security posture
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.
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
zapp | executable | indexed executable | Discovered from the local executable index. |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:zapp |
|---|---|
| Version | 1.0.2 |
| Package manager | Homebrew |
| Homepage | https://github.com/zsa/zapp |
| Repository | https://github.com/zsa/zapp |
| Last updated | 2026-07-09T11:51:39Z |
| Pulse | updated |
| Bottle | not recorded |
| Service | none declared |
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
zapp
nix profile install nixpkgs#zappsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.