Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
wlctl — 🛜 TUI for managing wifi/ethernet/vpn on Linux with Network Manager | Kitploit
Tools/GitHubGitHub/aashish-thapa/wlctl
General Purpose UtilitiesWi-Fi AuditingNetwork Security
GitHubaashish-thapa/wlctl

wlctl

🛜 TUI for managing wifi/ethernet/vpn on Linux with Network Manager

View Repository
15641311 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

wlctl

WiFi TUI for NetworkManager.

CI Crates.io Downloads License

demo

Why

impala is a great wifi TUI but it talks to iwd. If your distro already runs NetworkManager (most do — GNOME, KDE, Ubuntu, Fedora, Pop, …), you can't drop impala in without ripping the stack out. wlctl keeps the impala UX and points it at NetworkManager, so it just works alongside what your DE is already doing.

Features

  • Station and Access Point modes
  • WPA Enterprise (802.1X)
  • Multiple adapters — pick which one to drive, switch on the fly
  • VPN connections — toggle, manage autoconnect, and delete saved VPN / WireGuard profiles, like nmtui; an active tunnel shows as a badge in the top-right
Download Tool
  • wlctl doctor — walks rfkill, driver, association, IP, DHCP, gateway, DNS, internet
  • QR code sharing, hidden networks, speed test
  • Vim keys, every binding configurable
  • Install

    root@kitploit:~
    # crates.io
    cargo install wlctl
    
    # Arch (AUR)
    yay -S wlctl-bin
    
    # Nix (run without installing)
    nix run github:aashish-thapa/wlctl
    
    # from source
    git clone https://github.com/aashish-thapa/wlctl && cd wlctl
    cargo build --release
    

    On NixOS, add the flake as an input and use wlctl.packages.${system}.default, or drop it into a shell with nix shell github:aashish-thapa/wlctl.

    Needs NetworkManager running. Nerd Fonts optional, for icons.

    Usage

    wlctl to launch the TUI. wlctl doctor when something's broken and you want to know which layer.

    Global

    ActionKey
    Switch panelTab / Shift+Tab
    Movej k / arrows
    Switch adapter mode (Station ↔ AP)Ctrl+R
    VPN connectionsv
    Quitq / Ctrl+C
    Dismiss popupEsc

    Known networks

    ActionKey
    Connect / disconnectSpace or Enter
    Toggle auto-connectt
    Forget networkd
    Make this the internet pathu
    Show alla
    QR sharep
    Speed test (needs speedtest-cli)Shift+S

    When both WiFi and Ethernet are up, the link NetworkManager is actually routing internet over is highlighted in green, and the box footer spells it out (󰖟 Internet: WiFi · <ssid>). Press u on the Ethernet row or the connected WiFi to switch the default route to it (the other link stays up).

    The Device box footer shows the active adapter's LAN IP (e.g. 󰩟 wlan0 · 192.168.1.20) so you can SSH in without running ip addr.

    New networks

    ActionKey
    Connect / disconnectSpace or Enter
    Connect to hiddenh
    Filter by name/
    Show alla

    Press / to filter the scan list by SSID as you type; Enter keeps the filter, Esc clears it.

    VPN connections (open with v)

    ActionKey
    Toggle on / offSpace or Enter
    Toggle autoconnecta
    Delete profile (confirm y/n)d
    Import a WireGuard configi
    CloseEsc

    The selected tunnel's assigned IP and uptime show below the list while it's up.

    Importing WireGuard configs: press i, then either paste the whole config (most providers — Proton, Mullvad — just hand you the text) or type a path to a .conf file, and press Enter. wlctl parses it and creates a NetworkManager profile — no nmcli needed. Pasted configs are named after the server endpoint; file imports after the file name. ~ is expanded in paths. The profile is added without auto-connecting; toggle it on with Enter. OpenVPN .ovpn files aren't supported here — import those with nmcli connection import type openvpn file <path> (requires the NetworkManager-openvpn plugin).

    Device panel

    ActionKey
    Adapter infoi
    Toggle powero
    Doctor?

    Station mode

    ActionKey
    Scans

    Access Point mode

    ActionKey
    Start APn
    Stop APx

    Config

    ~/.config/wlctl/config.toml. All keys rebindable.

    root@kitploit:~
    switch = "r"
    mode = "station"
    esc_quit = false
    vpn = "v"
    
    [device]
    infos = "i"
    toggle_power = "o"
    doctor = "?"
    
    [station]
    toggle_scanning = "s"
    
    [station.known_network]
    toggle_autoconnect = "t"
    remove = "d"
    show_all = "a"
    share = "p"
    speed_test = "S"
    prefer = "u"
    
    [station.new_network]
    show_all = "a"
    connect_hidden = "h"
    filter = "/"
    
    [access_point]
    start = "n"
    stop = "x"
    

    vs. impala

    impalawlctl
    BackendiwdNetworkManager
    Coexists with default desktop network stacknoyes
    Multi-adapter selector—yes
    VPN connection toggle—yes
    doctor subcommand—yes

    Credits

    Forked from pythops/impala. UI and architecture are theirs.

    License

    GPLv3