Development
Command-line interface
you can control flipper zero through the command line interface (cli) using your computer the cli is a text based interface that allows you to read and emulate signals, run programs, manage files, and more on your flipper zero by running commands in addition, the cli offers a number of features, such as viewing the flipper zero logs, communicating with other flipper zero users via sub 1 ghz radio, and much more! on this page, you’ll learn how to access the flipper zero cli, view available commands, view logs, and chat with other flipper zero owners via sub 1 ghz radio accessing the flipper zero cli there are three methods to access the flipper zero cli method 1 using flipper lab access the cli via the flipper lab website using google chrome, microsoft edge, or other chromium based browsers that support the web serial api by doing the following quit the qflipper application if running connect your flipper zero to your computer via a usb cable on your computer, run google chrome or another chromium based browser go to https //lab flipper net/ > cli method 2 using the web serial terminal access the cli via the web serial terminal using google chrome, microsoft edge, or other chromium based browsers that support the web serial api by doing the following quit the qflipper application if running connect your flipper zero to your computer via a usb cable on your computer, run google chrome or another chromium based browser go to the https //googlechromelabs github io/serial terminal/ set the baud rate to 230400 , then click connect select your flipper zero in the list, then click connect method 3 using a serial terminal different operating systems have different procedures for accessing the flipper zero cli via a serial terminal follow the instructions for your operating system below to access the flipper zero cli on macos via a serial terminal, you need to find the serial port your flipper zero is connected to by doing the following connect your flipper zero to your computer on your computer, open terminal and run the following command ls /dev/cu find the name of the connected flipper zero it should be /dev/cu usbmodemflip name , where name is the unique name of your device once you know the name of the connected flipper zero, you can access the cli either with the screen terminal multiplexer or the minicom communication program screen quit qflipper if running make sure that your flipper zero is connected to the computer in the terminal, run the following command screen /dev/cu usbmodemflip name don’t forget to replace name with the name of your device you found previously to quit the screen , press control+a , then k , then y minicom if you don’t have the minicom program on your computer, you can install it via homebrew https //brew\ sh/ if you haven’t already by running in the terminal the following command /bin/bash c "$(curl fssl https //raw\ githubusercontent com/homebrew/install/head/install sh)" after installation, run the following command to install minicom brew install minicom once the minicom program is installed on your computer, you can finally access the cli by doing the following quit qflipper if running make sure that your flipper zero is connected to the computer in the terminal, run the following command minicom d /dev/ cu usbmodemflip name don’t forget to replace name with the name of your device you found previously to quit minicom , press esc+z , then x , then return to access the flipper zero cli on linux via a serial terminal, you need to find the serial port your flipper zero is connected to by doing the following connect your flipper zero to your computer on your computer, open the terminal and run the following command ls /dev/serial/by id/ find the name of the port it should be /dev/serial/by id/usb flipper devices inc flipper \<name> flip \<name> if00 , where name is the unique name of your device once you know the name of the port, you can access the cli either with the screen command or the minicom communication program screen quit qflipper if running make sure that your flipper zero is connected to the computer in the terminal, run the following command screen /dev/serial/by id/usb flipper devices inc flipper \<name> flip \<name> if00 don’t forget to replace name with the name of your device you found previously to quit the screen , press ctrl+a , then k , then y minicom if you don’t have the minicom program on your computer, install it using your distribution package manager once the minicom program is installed on your computer, you can finally access the cli by doing the following quit qflipper if running make sure that your flipper zero is connected to the computer in the terminal, run the following command minicom d /dev/serial/by id/usb flipper devices inc flipper \<name> flip \<name> if00 don’t forget to replace name with the name of your device you found previously to quit minicom , press ctrl+a , then x , then return if the steps above didn’t work, you may attempt to find the port name using the /dev/tty command if your flipper zero is the only device connected to the serial port, it should appear as /dev/ttyacm0 however, if there are other serial devices connected, you can find the flipper zero serial port name next to the device’s name in the qflipper application after finding the name of the serial port, you can access the cli either with the screen command or the minicom communication program to access the flipper zero cli on windows via a serial terminal, do the following on your computer, https //www chiark greenend org uk/ sgtatham/putty/latest html quit qflipper if running connect your flipper zero to your computer via a usb cable go to device manager > ports (com & lpt) look at the com port number of your flipper zero connected if there are several com port numbers, disconnect and connect your flipper zero back to see the added port number run putty in the opened window, in the connection type , select serial in the serial line field, enter the com port number (for example, com3) in the speed field, enter 230400 click the open button to quit putty , close the application window available commands to view the list of available commands in the cli, run the ? or help command you can interact with the flipper zero cli through the following commands true 176,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type reading flipper zero logs via the cli you can read flipper zero logs via the cli by doing the following connect your flipper zero to your computer via a usb c cable https //docs flipper net/development/cli/#hfxty set the log level you need (the log info level is set by default) and start logging to do that, run one of the following commands log logs non critical information, including warn logs log error logs only critical errors and other important messages log warn logs non critical errors and warnings, including error logs log info logs non critical information, including warn logs log default the default system log level (equivalent to info logs ) log debug logs debug information, including info logs (will impact system performance) log trace logs system traces, including debug logs (will impact system performance) you can access this list in the cli by running the log ? command interact with your flipper zero to view the logs to stop the logging process, press ctrl+c chatting with other flipper zero users in the cli, you can chat with other flipper zero users via the sub 1 ghz radio to do that, all devices have to communicate at the same frequency to chat, all participants have to do the following connect your flipper zero to your computer via a usb c cable https //docs flipper net/development/cli/#hfxty run the command that specifies the frequency and antenna type subghz chat \<frequency in h z> \<device 0/1> where \<frequency in hz> must be in the 299999755 348000000, 386999938 464000000, 778999847 928000000 hz range some frequencies might be unavailable in your region https //docs flipper net/sub ghz/frequencies \<device 0/1> must specify if the internal antenna (0) or external antenna (1) is used for communication if connected for example subghz chat 868150000 0 enter your message and press return to quit the chat, press ctrl+c learning more about the cli commands bt true 330,331left unhandled content type left unhandled content type left unhandled content type left unhandled content type crypto this command allows you to encrypt and decrypt plain text with the help of the cryptographic keys in the secure enclave and initialization vector true 167,278,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type where \<key slot int> secure enclave slot number that contains a cryptographic key by default, slots 1 through 11 have cryptographic keys used for encryption \<iv hex> a 16 byte initialization vector in hexadecimal format generated by the user \<key type str> master, simple, or encrypted \<key size int> 128 or 256 bits \<key data hex> the key data in hexadecimal format gpio true 238,171,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type where \<pin name> pa7, pa6, pa4, pb3, pb2, pc3, pc1, pc0 ikey true 176,120,197 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where true 242,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type info true 319,154 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type input true 196,214,150 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where \<key> up, down, left, right, back, ok \<type> press, release, short, long to emulate a short press of a button, run the following commands in order input send \<key> press input send \<key> short input send \<key> release to emulate a long press of a button, run the following commands in order input send \<key> press input send \<key> long input send \<key> release otherwise, the input will be discarded ir true 165,161,172 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where \<protocol> nec, necext, nec42, nec42ext, samsung32, rc6, rc5, rc5x, sirc, sirc15, sirc20, kaseikyo, rca \<address> and \<command> must be in hexadecimal format \<frequency> 10000 56000 \<duty cycle> 0 100 \<remote name> tv, audio, ac, projector js true 195,181,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type led the led command allows you to set the color of the s tatus led by adjusting the brightness of each color component (red, green, and blue) using the values from 0 to 255 for example, to set the led to 100% red color, you need to enter three commands led r 255 , then led g 0 , and then led b 0 you can also use this command to set the brightness of the always on backlight for example, the led bl 128 command sets the backlight brightness to 50% true 195,181,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type loader true 155,250,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type log true 271,147 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type to stop logging, press ctrl+c nfc the nfc command opens a separate shell, and all commands are run within this shell to see all available commands, enter help or ? to see detailed explanations in the cli, enter \<command> h to exit the shell, enter exit dump true 166,172,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where \<path> path to file \<protocol> specifies the nfc protocol for scanning, overriding auto detection available arguments 14 3a iso 14443 3a 14 3b iso 14443 3b 14 4a iso 14443 4a 14 4b iso 14443 4b 15 iso 15693 3 felica felica ™ mfu mifare ultralight ® mfc mifare classic ® mfp mifare plus ® des mifare desfire ® slix icode® slix st25 st25tb \<key> authentication key in hexadecimal format \<timeout> polling timeout value in milliseconds raw true 100,189,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where \<protocol> specifies the nfc protocol to use available arguments 14a or iso14a iso 14443 3a 14b or iso14b iso 14443 3b 15 iso 15693 3 felica felica \<data> raw bytes for sending, in hexadecimal format \<timeout> timeout in number of carrier frequency cycles until receiving a response k add to the command to keep the signal field on after the response c add to the command to calculate and append crc to the transmitted data before sending s add to the command to perform the initial activation/anti collision sequence before sending the raw data mfu true 153,207,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where \<block number> a decimal number of the block to write or read \<data> a 4 byte hexadecimal string to write other true 159,164,100 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type where \<path> path to file \<tree> add to the command to display the protocol hierarchy for each detected protocol \<protocol> sets the protocol, otherwise autodetected available arguments 4a iso 14443 4a 4b iso 14443 4b 15 iso 15693 3 \<data> apdu payload as hexadecimal strings supports multiple payloads, which are sent sequentially apdu d \<data 1> \<data 2> onewire true 330,331left unhandled content type left unhandled content type left unhandled content type left unhandled content type power true 163,116,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type rfid true 166,116,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type where true 270,271 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type storage the path must start with /int or /ext true 169,241,114,117 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type subghz true 172,189,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type the following commands can only be used in debug mode true 209,210,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type where \<frequency in hz> is one of the values in the 299999755 348000000, 386999938 464000000, 778999847 928000000 hz range some frequencies might be unavailable in your region https //docs flipper net/sub ghz/frequencies \<device 0/1> 0 is the built in sub 1 ghz antenna with the cc1101 transceiver, 1 is the external sub 1 ghz antenna with the cc1101 transceiver \<te in us> quantization interval in microseconds \<iv 16 bytes hex> a 16 byte initialization vector in hexadecimal format generated by the user sysctl true 199,116,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type update true 228,216,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type vibro true 199,265,133left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type buzzer true 198,215,100left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type where \<frequency in hz> frequency in hz \<note> a musical note the letter s represents a sharp (#); for example, c#3 is written as cs3 flats (♭) aren’t supported \<duration> duration in milliseconds ( ms ), seconds ( s ), minutes ( m ), or hours ( h ) for example buzzer note cs3 500ms mifare, mifare ultralight, mifare classic, desfire, and icode are registered trademarks of nxp b v felica is a trademark of sony corporation
Have a question?
Our knowledgeable support team and an awesome community will get you an answer in a flash. Please leave your questions in English.
To ask a question or participate in discussions, you'll need to authenticate first.