GitPedia

Fztea

🐬🧋 Remote control your flipper from the local terminal or over SSH

From jon4hz·Updated June 15, 2026·View on GitHub·

A [bubbletea](https://github.com/charmbracelet/bubbletea)-bubble and TUI to interact with your [flipper zero](https://flipperzero.one/). The flipper will be automatically detected, if multiple flippers are connected, the first one will be used. The project is written primarily in Go, distributed under the MIT License license, first published in 2022. Key topics include: bubbletea, flipper, flipper-zero, flipperzero, serial-communication.

Latest release: v0.6.4
September 1, 2024View Changelog →

🐬🧋 Fztea

lint
goreleaser
Go Report Card
Powered by Dolphines

A bubbletea-bubble and TUI to interact with your flipper zero.
The flipper will be automatically detected, if multiple flippers are connected, the first one will be used.

🚀 Installation

bash
# using go directly $ go install github.com/jon4hz/fztea@latest # from aur (btw) $ yay -S fztea-bin # local pkg manager ## debian / ubuntu $ dpkg -i fztea-v0.6.2-linux-amd64.deb ## rhel / fedora / suse $ rpm -i fztea-v0.6.2-linux-amd64.rpm ## alpine $ apk add --allow-untrusted fztea-v0.6.2-linux-amd64.apk # homebrew (macOS & linux) $ brew install jon4hz/homebrew-tap/fztea # windows # -> I'm sure you'll figure something out :)

✨ Usage

bash
# trying to autodetect that dolphin $ fztea # no flipper found automatically :( $ fztea -p /dev/ttyACM0

⚡️ SSH

fztea also allows you to start an ssh server, serving the flipper zero ui over a remote connection.
Why? - Why not!

bash
# start the ssh server listening on localhost:2222 (default) $ fztea server -l 127.0.0.1:2222 # connect to the server (from the same machine) $ ssh localhost -p 2222

By default, fztea doesn't require any authentication but you can specify an authorized_keys file if you want to.

bash
# use authorized_keys for authentication $ fztea server -l 127.0.0.1:2222 -k ~/.ssh/authorized_keys

📸 Screenshots

You can take a screenshot of the flipper using ctrl+s at any time. Fztea will store the screenshot in the working directoy, by default in a 1024x512px resolution.
The size of the screenshot can be customized using the --screenshot-resolution flag.

$ fztea --screenshot-resolution=1920x1080

⌨️ Button Mapping

KeyFlipper EventKeypress Type
w, ↑upshort
d, →rightshort
s, ↓downshort
a, ←leftshort
o, enter, spaceokshort
b, back, escbackshort
W, shift + ↑uplong
D, shift + →rightlong
S, shift + ↓downlong
A, shift + ←leftlong
Ooklong
Bbacklong

🌈 Custom colors

You can set custom fore- and background colors using the --bg-color and --fg-color flags.

$ fztea --bg-color="#8A0000" --fg-color="#000000"

Results in:

ColorScreenshot

🎬 Demo

Local

LocalDemo

SSH

https://user-images.githubusercontent.com/26183582/181772189-13d7aeaa-ac26-4701-8104-a71ed218539c.mp4

Contributors

Showing top 3 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from jon4hz/fztea via the GitHub API.Last fetched: 6/28/2026