muOS Rt:Tailscale

πŸ•ΈοΈ Rt:Tailscale

The definitive mesh-VPN interface for muOS.
Engineered for performance, built for the handheld.


:open_book: Overview

Rt:Tailscale is a lightweight, high-performance GUI application designed specifically for Anbernic devices running muOS (MustardOS). This tool eliminates the friction of CLI-based Tailscale management, providing a native, controller-driven interface to control your tailnet, monitor connections, and manage exit nodes β€” directly from your console.

Built to run seamlessly within the muOS ecosystem, it leverages the mux_launch.sh wrapper for optimized process execution. Zero external dependencies. Zero pip packages. Pure Python + SDL2 via ctypes.


:rocket: Key Features

Feature Description
:video_game: Native muOS Experience Seamless integration with the muOS menu system via mux_launch.sh
:satellite_antenna: Tailnet Control Toggle the Tailscale daemon and manage SSH access with a single button press
:globe_showing_europe_africa: Exit Node Management Dynamically list and select your preferred exit nodes
:file_folder: Taildrop File Transfer Send and receive files across your tailnet mesh
:magnifying_glass_tilted_left: Netcheck Diagnostics Integrated tools to analyze latency, NAT types, and UDP connectivity
:locked_with_key: QR Code Authentication Built-in QR code generator for instant device pairing
:artist_palette: 3 Visual Themes Tailscale Classic, SPDW Cyberpunk, and SPDW Hybrid
:high_voltage: Zero-Dep Tech Stack Built with pure Python using ctypes to interface directly with SDL2
:hammer_and_wrench: Operation Log System Persistent logging for troubleshooting and audit

:open_file_folder: Project Structure

Rt:Tailscale/
β”œβ”€β”€ glyph/
β”‚   └── icon.png              # Application launcher icon
β”œβ”€β”€ config.ini                # User-defined configurations
β”œβ”€β”€ error_log.txt             # Runtime crash logs & diagnostics
β”œβ”€β”€ font.ttf                  # UI rendering font (local path)
β”œβ”€β”€ lang.json                 # External multilingual support
β”œβ”€β”€ mux_launch.sh             # Entry-point script for muOS
β”œβ”€β”€ tailscale_gui.py          # Core application logic (Python 3 / SDL2)
β”œβ”€β”€ tailscale.png             # Application primary logo
└── README.md                 # This file

:inbox_tray:What’s New in v3.0.4

:wrench: Path System Overhaul

  • Local font path β€” font.ttf is now loaded from the application directory (SCRIPT_DIR) instead of hardcoded system paths
  • Local logo path β€” tailscale.png loaded from app folder via LOGO_PATH
  • Persistent error logging β€” All runtime errors written to error_log.txt in the app directory with timestamps

:shield: Startup Hardening

  • Critical font check β€” App validates font.ttf existence before initializing SDL2; exits gracefully with logged error if missing
  • Library load safety β€” SDL2, SDL2_ttf, and SDL2_image loading wrapped in try/except with sys.exit(1) on failure
  • Step-by-step boot logging β€” Every initialization phase logged: SDL_Init, TTF_Init, font load, window creation, renderer creation

:artist_palette: Visual Polish

  • Hybrid theme set as default (SPDW cyberpunk aesthetic with Tailscale functionality)
  • Header logo properly aligned with local tailscale.png asset
  • Ghosting chromatic effect on β€œTailscale” title text for CRT-style depth

:bug: Bug Fixes

  • Fixed potential crash when system fonts are unavailable on muOS
  • Fixed logo texture loading path inconsistency across different muOS builds
  • Improved error transparency β€” no more silent black-screen failures

Installation

Method 1: Archive Manager (Recommended)

  1. Download Rt-Tailscale.muxapp lates release

  2. Copy the file to your console’s SD card:

    /mnt/mmc/MUOS/ARCHIVE/
    

    Or if using SD2 (secondary card):

    /mnt/sdcard/MUOS/ARCHIVE/
    
  3. Eject the SD card safely and insert it back into your handheld

  4. Boot muOS and navigate to Applications β†’ Archive Manager

  5. Select Rt-Tailscale.muxapp from the list

  6. Press A to extract and install

  7. Restart your handheld to ensure the application appears in the menu

  8. Find Rt:Tailscale under Applications

Method 2: Manual Extract

If the Archive Manager fails or you prefer manual control:

  1. Rename Rt-Tailscale.muxapp to Rt-Tailscale.zip

  2. Extract the contents to:

    /mnt/mmc/MUOS/application/Rt-Tailscale/
    
  3. Ensure the folder contains:

    Rt-Tailscale/
    β”œβ”€β”€ tailscale_gui.py
    β”œβ”€β”€ mux_launch.sh
    β”œβ”€β”€ config.ini
    β”œβ”€β”€ font.ttf
    β”œβ”€β”€ tailscale.png
    β”œβ”€β”€ error_log.txt
    └── glyph/
        └── icon.png