|
|
Tuna-app, also known as the Tuna Desktop Client, is an unofficial utility for working with the Tuna CLI created by the team behind tuna.am.
This project is not an attempt to misuse someone else’s product, but rather an effort to provide a more convenient interface for people who prefer not to work directly through the terminal or wish to optimize their workflow.
To use Tuna Desktop Client, you must install the Tuna CLI from the official website.
I am aware of the existence of the official Tuna Desktop client, but in my view, it does not perform functions beyond the absolute minimum.
Thank you for your attention, lek4s
A graphical desktop client for the Tuna Tunnel CLI, built with Flutter.
It allows you to manage tunnels, view logs, use a built-in console, and configure the CLI without relying on the terminal.
| Dashboard | Remote tunnels and notifications |
|---|---|
![]() |
![]() |
| Docker containers | Docker container details |
|---|---|
![]() |
![]() |
⚠️ Important!
The Linux and macOS versions are implemented, but have not been tested on actual devices.
Theoretically they should work, but their correctness is not guaranteed.
👉 The latest stable Windows build is available in the GitHub
Releases section.
Prebuilt binaries for Linux and macOS are NOT included.
To obtain these versions, you must build the project yourself:
flutter config --enable-linux-desktop
flutter config --enable-macos-desktopflutter build linux
flutter build macosBuild outputs:
- Linux →
build/linux/x64/release/ - macOS →
build/macos/Build/Products/Release/Tuna.app
-
Management of HTTP and TCP tunnels
-
Dashboard tab with circular metrics, failures timeline (including
Alloverlay), and last started tunnels -
Remote tunnels tab: active remote list from Tuna API, local/non-local ownership marker by endpoint URL, open and force stop actions
-
Docker tab: containers list, container drill-down, tunnel process discovery inside containers, container/tunnel logs, force stop of in-container tunnels
-
Notifications panel with actionable cards (CLI updates, desktop app releases, active remote tunnels)
-
In-app tuna CLI update actions:
- Windows:
winget upgrade --id yuccastream.tuna - macOS:
brew upgrade tuna - Linux:
sh -c "$(curl -sSLf https://releases.tuna.am/tuna/get.sh)"
- Windows:
-
Desktop app update check against GitHub releases (
LekasNet/tuna-app) -
Startup reconciliation of running tunnels (local running processes + remote active count)
-
Real-time tunnel status display
-
Detailed tunnel information: URL, Web UI, forwarding, logs
-
Integrated console:
- custom command interpreter
- PowerShell / bash mode (depending on platform)
- colored output, auto-scrolling, line numbers
- command history with ↑ ↓
-
Tunnel log performance guard: only latest 750 lines are rendered in UI while full logs are preserved for export
-
Full support for light and dark themes
-
Custom path support for the
tunaCLI -
Automatic detection of
tuna.exe/tuna -
Token, API key, and account data storage
-
Copy buttons for URL / Web UI / forwarding
-
Export logs to file
-
Custom title bar with custom window buttons
-
Rounded corners and modern Flutter 3.x UI
- Flutter SDK 3.19+
- Tuna CLI (
tuna,tuna.exe) installed in PATH or configured manually in the client settings - Windows 10+ / Linux x64 / macOS 12+ (Intel or ARM)
The application automatically saves:
- theme
- token
- API key
- tuna executable path
- username and subscription expiration date (after the first successful tunnel launch)
When the token changes, the app automatically:
- updates the
tuna.ymlconfiguration - validates the token via a temporary tunnel (
tuna http 8080) - synchronizes the account information
git clone https://github.com/lekasnet/tuna-app.git
cd tuna-app
flutter pub getflutter run -d windows
# or
flutter run -d linux
# or
flutter run -d macosMIT — feel free to use and modify.
This is an unofficial client for Tuna CLI.
This project:
- does not redistribute Tuna software
- requires official Tuna CLI installation
- does not modify or bypass Tuna services
- stores user data locally only




