A powerful, feature-rich TUI (Terminal User Interface) wrapper for OpenConnect.
Effortlessly manage VPN profiles and connections while retaining full access to OpenConnect's capabilities.
- Profile Management: Create, edit, and select saved VPN profiles.
- IP Resolution: Resolve domains using built-in lookup tools to choose specific target IPs for connection.
- Flag Configuration: Visual interface to configure standard OpenConnect command-line flags.
- Credential Saver: Rapidly configure your connections using your pre-made credentials.
- Native Binary Support: Interacts directly with your local
openconnectbinary. - Keyboard-driven UI: Built using Bubble Tea and Lip Gloss.
- Cross-Platform Support: Currently supports Windows, with Linux compatibility coming very soon.
This application requires the official openconnect binary to be installed on your system and available in your system path.
- Install OpenConnect:
- The recommended method is installing via openconnect-gui.
- Important: During installation, ensure you select Add openconnect-gui to the system PATH and include the console components.
- Alternatively, you can build the binary from the official source. If building manually, ensure
openconnect.exeis added to your PATH and the appropriatevpnc-script.jsis located in the same directory as the executable.
- Verify that
openconnectis accessible from your command line.
Support is currently in development. coming soon
Download the latest executable from the releases page.
Ensure you have Go installed, then clone and build the project:
git clone https://github.com/bakhhag/openconnect-tui
cd openconnect-tui
go build -ldflags="-s -w" -o bin/openconnect-tui.exeNote: Because OpenConnect requires administrative privileges to modify system network routes, the application will prompt for administrator elevation when launched.
Flags can be added or removed by modifying the flags.csv configuration file located in:
%APPDATA%\OpenConnect-TUI\flags.csv
The CSV file uses the following structure:
flag,selected,value
no-dtls,1,
disable-ipv6,0,
no-xmlpost,0,- Standard Flags (No values): For flags that do not require an argument, set the
selectedcolumn to1(enabled) or0(disabled), and leave thevaluecolumn empty. - Value-Based Flags: For flags that require an argument, append an equals sign
=to the flag name in theflagcolumn (e.g.,proxy=). You can predefine the argument in thevaluecolumn or leave it blank to enter it later.
Note: Native flag management from within the TUI interface is planned for a future release.
↑ / ↓(Arrow Keys): Navigate menus and listsTab: Switch between application tabs?: Toggle the advanced key help overlayQ: Exit the application
Enter: Initiate or terminate the connectionA: Save the current connection configuration to your profiles
A: Create a new profileCTRL+A: Use pre-made credentials
E: Edit the selected profileCTRL+A: Use pre-made credentials
D: Delete the selected profile
- Complete Linux compatibility
- Refine UI components and layouts
- Customzing Flags from TUI
Contributions, bug reports, and pull requests are welcome. Please ensure any contributions align with the project's structure and existing formatting.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Made with ❤️ using Go + Bubble Tea + Lipgloss