A PySide6 system tray application for managing Tor connections with bridge support.
- System Tray Integration: Runs in the system tray for easy access
 - Bridge Support: Includes obfs4 bridges for bypassing censorship
 - Bridge Configuration Dialog: Interactive GUI to manage bridges
 - Real-time Status: Shows connection progress and bootstrap status
 - Automatic Detection: Detects Tor and obfs4proxy installations
 - Desktop Integration: Creates desktop entries and autostart support
 - Persistent Configuration: Saves bridge settings automatically
 
- Python 3.6+
 - PySide6
 - Tor (installed system-wide)
 - obfs4proxy (optional, for bridge support)
 - Linux with system tray support
 
Make sure you have Tor and obfs4proxy installed:
# On Rocky Linux/RHEL/CentOS
sudo yum install tor obfs4proxy
# On Ubuntu/Debian
sudo apt-get install tor obfs4proxy
# On Arch Linux
sudo pacman -S tor obfs4proxy- Clone the repository:
 
git clone https://github.com/your-username/tor-manager.git
cd tor-manager- Run the build script:
 
./build_simple.shThis will:
- Create a virtual environment
 - Install dependencies
 - Install the package
 - Create a wrapper script in 
~/.local/bin/tor-manager - Create desktop entries
 - Set up autostart
 
tor-manager- Find "Tor Manager" in your applications menu
 - The application will start automatically on login
 
- Right-click the system tray icon to access the menu
 - Connect/Disconnect from Tor
 - View connection status
 - Quit the application
 
The application includes default obfs4 bridges and automatically detects:
- Tor executable (
/usr/bin/toror/usr/local/bin/tor) - obfs4proxy executable (
/usr/local/bin/obfs4proxyor/usr/bin/obfs4proxy) 
The application includes a powerful bridge configuration dialog accessible from the system tray menu.
- Right-click the system tray icon
 - Select "Bridge Config" from the menu
 - The Bridge Configuration dialog will open
 
- View all currently configured bridges
 - Select and remove unwanted bridges
 - Edit bridges by copying and modifying them
 
- Enter bridges manually in the text input field
 - Press Enter or click "Add Bridge" to add
 - Support for both obfs4 and vanilla bridge formats
 
- Add obfs4 Bridges: Adds a collection of tested obfs4 bridges
 - Add Vanilla Bridges: Adds simple vanilla bridges for basic circumvention
 
- Remove Selected: Remove selected bridges from the list
 - Clear All: Remove all bridges (with confirmation)
 - Restore Defaults: Restore the original default bridges
 
- obfs4: 
obfs4 IP:PORT FINGERPRINT cert=CERT iat-mode=0 - Vanilla: 
bridge IP:PORT 
Bridges are automatically saved to ~/.config/tor-manager/bridges.json and persist between sessions.
obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6QPSuWOiNJDINpBS8XtNUA6iOhzE/V2IFEmHJFPsRl8xQV6oNnUBjpPU/Q iat-mode=0
bridge 85.17.30.79:443
If the system tray is not working, ensure your desktop environment supports it:
- GNOME: Install 
gnome-shell-extension-appindicator - KDE: Should work out of the box
 - XFCE: Should work out of the box
 
If you encounter Qt platform plugin errors, make sure you have the necessary Qt packages installed:
# Rocky Linux/RHEL/CentOS
sudo yum install qt6-qtbase-gui
# Ubuntu/Debian
sudo apt-get install qt6-base-dev
# Arch Linux
sudo pacman -S qt6-baseThe application requires sudo privileges to run Tor. Make sure your user can run sudo commands.
Run the test script to check dependencies:
python test.py# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.py- The application runs Tor with sudo privileges
 - Tor configuration includes custom bridges
 - All network traffic is routed through Tor when connected
 - The application creates temporary configuration files
 
This project is licensed under the MIT License.
- Fork the repository
 - Create a feature branch
 - Make your changes
 - Test thoroughly
 - Submit a pull request
 
For issues and questions, please open an issue on the GitHub repository.