Built for ChameleonUltra & ChameleonLite

The lab for your Chameleon

Desktop, mobile and web app for ChameleonUltra and ChameleonLite, together with an extended firmware and the command line client.

ONE APP. EVERYWHERE.Open source · GPL v3

01 / YOUR WORKSPACE

Everything your device can do
In one place

One app for Windows, macOS, Linux, Android and the browser. USB on desktop and in the browser, Bluetooth on phones, TCP everywhere.

v1.4.35

Nov 5, 2026

Slots

All eight slots at a glance, with each card's name and LED color. Drag to reorder, tap to activate, edit HF and LF separately.

Multi-card LF Only here

One LF slot holds up to eight LF cards of any emulated type, in any mix, and sends the next one each time the reader's field appears — one steady card per tap — so you can walk through them until the right card opens. No other Chameleon firmware or app can do this.

Read and dump

ISO14443-A and LF scans. MIFARE Classic Mini, 1K and 4K dumps with your key dictionaries, edited as hex and emulated in one tap.

Saved cards

A card library with search and color tags. Imports ChameleonUltraGUI, Proxmark3, Flipper .nfc/.rfid, MCT, .bin and .eml.

Cloning

Write LF IDs to T55xx and MIFARE Classic to Gen1a / Gen2 magic cards.

Emulator settings

Gen1a / Gen2 modes, write modes, nonce detection for mfkey32, Ultralight / NTAG version, signature and counters.

Device settings

LED animation, button actions, long-press threshold, sleep timeout, BLE pairing, factory reset and firmware updates over USB or Bluetooth.

HF and LF sniffing

Record a reader talking to the card in the active slot, every frame labelled, with MIFARE Classic keys recovered on the spot. Capture the 125 kHz signal as a zoomable waveform and decode it.

Stop anything

Every long operation (dumps, key recovery attacks, writing magic cards, sniffing) has a Stop button and leaves the device ready for the next one. In ChameleonUltraGUI many of them can only be waited out.

The web version needs Chrome or Edge on a desktop: Firefox and Safari do not support Web Serial.

02 / THE DIFFERENCE

Why ChameLab

How the app compares with the Flutter ChameleonUltraGUI and the command line client.

FeatureChameLabChameleonUltraGUICLI
Graphical interface✓✓terminal
Runs in the browser, nothing to install✓––
Multi-card LF: up to 8 LF cards of any type in one slot✓––
Stop any long operation✓partlyCtrl+C
Per-card slot LED colors✓–✓
Import Proxmark3, Flipper, MCT, .bin / .eml✓partlypartly
Key recovery (darkside, nested, hardnested)✓✓✓
Firmware update from the app✓✓via scripts

Still on the roadmap: QR sharing.

03 / UNDER THE HOOD

The firmware

The ChameLab firmware runs on both ChameleonUltra and ChameleonLite. Here is what is new in it.

v2.3.4-cl

Oct 30, 2026

Multi-card LF New Only here

An LF slot can hold up to eight cards of any emulated LF type (EM410x, Electra, HID Prox, ioProx, Viking, PAC, Jablotron, IDTECK, Pyramid), mixed in any order. Each time the reader's field appears the slot sends the next card in the list, one steady card per tap, wrapping back to the first — so you tap until the right card opens. Neither the stock firmware nor any other app or firmware for the Chameleon can do this.

Build the list in the ChameLab slot editor from your saved cards and drag to reorder. Apps use the commands 5907–5909; the details are in LF card cycling.

Slot LED colors

Each card in a slot can have its own LED color, so you can tell which card is active by looking at the device. The RGB lines are driven by PWM, so any color works, not only the seven primary mixes. A slot that holds both an HF and an LF card alternates between their two colors. Slots without a color keep the familiar HF / LF colors.

1
2
3
4
5
6
7
8

Pick a color in the ChameLab slot editor, or from the CLI: hw slot color -s 3 --hf -c FF5722, --default goes back to the standard color. Apps use the new DATA_CMD_SET_SLOT_COLOR (1900) and DATA_CMD_GET_ALL_SLOT_COLORS (1901) commands.

Earlier fixes

Updating the firmware

The ChameLab app on desktop, Android and iOS updates the firmware for you: it offers the newest release for your device and flashes it over USB or Bluetooth. To flash by hand:

  1. Download ultra-dfu-app-<version>.zip or lite-dfu-app-<version>.zip from the release below. The -full packages also contain the bootloader and are only needed for recovery.
  2. Put the device into DFU mode: hw dfu in the CLI, or hold button B while plugging in USB.
  3. Flash the package with firmware/flash-dfu-app.sh, nRF Connect for mobile or nRF Connect for Desktop.

Slots, cards and settings are kept by an application update. See the full changelog.

04 / GET STARTED

Make it yours

Get ChameLab for your platform, or open the web app and connect your device.