Skip to content

Latest commit

Β 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FlipperKit

                                                   __
                                               _.-~  )
                                    _..--~~~~,'   ,-/     _
                                 .-'. . . .'      ,-','    ,
                               ,'. . . _   ,--~,-'__..-'  ,'
                             ,'. . .  (@)' ---~~~~      ,'
                            /. . . . '                 ,-'
                           ; . . . .- .            ,-'
                          : . . . .   `.       ,-'. .
                         . . . . .      `.  ,-' . . .
                        . . . . .         .' . . . . .
                       .-.  . . . .     ,'  . . . . .
                    `._`.`.__. . .  ,-'. . . . . . .
                       `-.`-'`--...-'`-._ . . . . .
                          `--..___..--~~~  `-. . .
                                             `._ .
+============================================================================+
|                                                                            |
| >BACKUP         _____ _ _                       _  ___ _              NFC. |
| >PARSE         |  ___| (_)_ __  _ __   ___ _ __| |/ (_) |_         SubGhz. |
| >INDEX         | |_  | | | '_ \| '_ \ / _ \ '__| ' /| | __|          RFID. |
| >REPORT        |  _| | | | |_) | |_) |  __/ |  | . \| | |_        iButton. |
|                |_|   |_|_| .__/| .__/ \___|_|  |_|\_\_|\__|                |
|                          |_|   |_|                                         |
|                                                                            |
|                         Flipper Zero companion CLI                         |
+============================================================================+

A companion command-line toolkit for the Flipper Zero, tested on Linux, macOS and Windows. Back up the SD card, parse captured artifacts, index them into SQLite, and generate shareable reports β€” the things the mobile app does poorly or not at all.

CI

Built for engineers, not just users. Where the official app lets you use the device, FlipperKit treats what it captures as data to manage: versioned backups, a searchable index, and reports you can hand to someone else.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   backup   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   parse/index   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   report   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Flipper β”‚ ─────────► β”‚  local   β”‚ ──────────────► β”‚  SQLite  β”‚ ─────────► β”‚ html/md/json β”‚
β”‚  (USB)  β”‚            β”‚  mirror  β”‚                 β”‚  index   β”‚            β”‚   report     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Why this exists

The Flipper stores everything as small text files on its SD card (.nfc, .sub, .rfid, .ir, …). Over time that turns into an unsearchable pile. FlipperKit:

  • Backs up the SD card over the serial CLI, skipping unchanged files.
  • Parses each artifact into a normalized record (category, protocol, UID/key, frequency…).
  • Indexes records in SQLite, de-duplicated by SHA-256.
  • Reports the collection as a clean HTML page, Markdown table or JSON.

Screenshots

flipperkit --help β€” the dolphin banner and command list:

flipperkit --help

flipperkit devices β€” auto-detects and highlights your Flipper's serial port:

flipperkit devices

flipperkit parse ./backups β€” captured artifacts parsed into a searchable table:

flipperkit parse

Install

Requires Python 3.9+.

Quick install (use it as a command)

Installs flipperkit as a normal command available from any terminal:

git clone https://github.com/juandresrodca/FlipperKit
cd FlipperKit
pip install -e .

The -e (editable) flag points the command at your source folder, so code changes take effect immediately β€” no reinstall needed. Then, from any directory:

flipperkit --help

Windows note: the flipperkit command lands in your Python Scripts directory. If the shell can't find it, that directory isn't on your PATH
either add it, or run the tool with python -m flipperkit ....

Uninstall: pip uninstall flipperkit

Isolated / dev install

To keep FlipperKit and its dependencies out of your global Python , use a virtual environment. Add [dev] to also install the test dependencies (pytest):

git clone https://github.com/juandresrodca/FlipperKit
cd FlipperKit
python -m venv .venv && . .venv/Scripts/activate   # Windows
# source .venv/bin/activate                         # macOS / Linux
pip install -e ".[dev]"
pytest

Quickstart β€” no Flipper needed

Every command works on a folder of files, so you can run the whole pipeline on the bundled samples before you plug anything in:

flipperkit index tests/fixtures --db demo.db          # parse and index the samples
flipperkit report --db demo.db -f html -o demo.html   # write a shareable report

Open demo.html in a browser to see the report. docs/recipes.md assembles the same commands into real workflows β€” a dated weekly backup, the SQL that answers what is new since last time, and how to hand the contents of a card to somebody who does not have FlipperKit installed.

Usage

# Find your Flipper's serial port
flipperkit devices

# Show device info
flipperkit info --port COM3

# Mirror the SD card into ./backups (unchanged files are skipped)
flipperkit backup ./backups --port COM3

# Parse a file or folder and print a table
flipperkit parse ./backups

# Build a searchable SQLite index
flipperkit index ./backups --db flipperkit.db

# Generate a report
flipperkit report --db flipperkit.db --format html --out report.html
flipperkit report --db flipperkit.db --format md --category subghz

# Update to the latest version (when installed from a git clone)
flipperkit update --check   # see if a newer version is available
flipperkit update          # pull and apply it

The port is COM3-style on Windows, /dev/cu.usbmodemflip_<name>1 on macOS and /dev/ttyACM0 on Linux. docs/serial-ports.md has the per-OS detail β€” udev rules and the ModemManager clash on Linux, cu. versus tty. on macOS, and what to check when devices finds nothing.

Supported artifacts

Extension Category Extracted fields
.nfc nfc device type, UID
.sub subghz protocol, frequency, key, preset
.rfid rfid key type, data
.ir infrared protocol, signal count, signal names
.ibtn ibutton protocol/key type, data
.u2f u2f recognised; raw key/values only, no dedicated fields yet (#6)

These are exactly the extensions parsers.EXT_CATEGORY recognises; anything else on the card is skipped.

Architecture

src/flipperkit/
β”œβ”€β”€ client.py    # the ONLY module that imports pyserial (Flipper CLI wrapper)
β”œβ”€β”€ backup.py    # sync logic, depends on a small RemoteFS protocol β†’ testable with a fake
β”œβ”€β”€ parsers.py   # Flipper text format β†’ FlipperRecord
β”œβ”€β”€ db.py        # SQLite index (dedup by SHA-256)
β”œβ”€β”€ report.py    # JSON / Markdown / HTML renderers
└── cli.py       # Typer CLI wiring it together

The hardware boundary is deliberately thin and isolated. Everything else β€” parsing, indexing, reporting, even the recursive backup walk β€” is tested against in-memory data, so pytest runs green with no Flipper attached.

pytest

βš–οΈ Legal & ethical use

FlipperKit is a data-management tool for artifacts you have lawfully captured from your own devices or from systems you are explicitly authorized to test. It does not exploit anything β€” it organizes files the Flipper already wrote. Cloning, replaying, or reading credentials you do not own may be illegal in your jurisdiction. Use it for learning, lab work, and authorized assessments only.

SECURITY.md covers the other half of that: where the tool's own surface actually is β€” the backup destination path, the parsers, the Markdown renderer, flipperkit update β€” and how to report a problem in it privately. Worth a read before you point --port at anything, because your index and your reports hold the key material your captures came with.

Contributing

Most of this repository can be worked on without a Flipper Zero β€” the hardware boundary is one module and everything else is tested against files on disk. CONTRIBUTING.md has the setup, a worked example of adding a parser, and the rule that fixtures must be synthetic. Three open issues are labelled good first issue.

Participation is governed by the Code of Conduct, and anything a user would notice belongs in CHANGELOG.md under Unreleased in the same pull request. Anything that looks like a vulnerability goes through SECURITY.md instead of the issue tracker.

License

MIT

About

🐬 Companion CLI for the Flipper Zero β€” back up the SD card, parse NFC / Sub-GHz / RFID / infrared artifacts, index them in SQLite, and generate shareable reports.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages