{"id":19675266,"url":"https://github.com/picandocodigo/mullvadrb","last_synced_at":"2025-11-11T20:27:37.365Z","repository":{"id":259284107,"uuid":"873251908","full_name":"picandocodigo/mullvadrb","owner":"picandocodigo","description":"Ruby Terminal User Interface for Mullvad VPN","archived":false,"fork":false,"pushed_at":"2024-11-21T22:16:44.000Z","size":46,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T12:05:10.224Z","etag":null,"topics":["mullvad","mullvad-vpn","ruby","tui"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/mullvadrb","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/picandocodigo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-15T21:13:18.000Z","updated_at":"2024-12-11T07:10:50.000Z","dependencies_parsed_at":"2024-12-28T12:51:54.494Z","dependency_job_id":"8d2a1fdb-412b-47ea-a914-a455745ada59","html_url":"https://github.com/picandocodigo/mullvadrb","commit_stats":null,"previous_names":["picandocodigo/mullvadrb"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picandocodigo%2Fmullvadrb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picandocodigo%2Fmullvadrb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picandocodigo%2Fmullvadrb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picandocodigo%2Fmullvadrb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/picandocodigo","download_url":"https://codeload.github.com/picandocodigo/mullvadrb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252590509,"owners_count":21772934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mullvad","mullvad-vpn","ruby","tui"],"created_at":"2024-11-11T17:22:30.477Z","updated_at":"2025-11-11T20:27:37.279Z","avatar_url":"https://github.com/picandocodigo.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruby TUI for Mullvad VPN\n\nThis is a Terminal App I wrote for myself to use with Mullvad VPN on Linux. It makes it easier for me to choose servers when using Mullvad from the command line.\n\n![mullvad](https://github.com/user-attachments/assets/1c628381-9a7c-40f4-9376-2f65496b2bc8)\n\nThe app has two \"backends\", [Mullvad CLI](https://mullvad.net/en/help/how-use-mullvad-cli) or [WireGuard](https://mullvad.net/en/help/wireguard-and-mullvad-vpn).\n\nMost of the basic functionality is available for either backend: Select a server (random, by country, specific server), connect, disconnect and show the current status. You can use either backend. The first time you run the app, it's going to ask you which one you want to use, and save your preference in `~/.local/share/mullvadrb/mullvardrb.yml`. You can switch backends from the Main Menu on the app at any time.\n\n## Requirements\n\nYou need to have a [Mullvad VPN](https://mullvad.net) account to use the app.\n\n\u003e [!WARNING]\n\u003e `mullvad` uses WireGuard, so if you change backends while connected to an OpenVPN server with `wg`, `mullvad` won't be able to disconnect from the OpenVPN connection.\n\u003e In general, it's a good idea to stick to one backend, and disconnect from the VPN before switching backends.\n\u003e This might potentially be fixed in the future.\n\n### For the WireGuard backend\n\nYou need to [install WireGuard](https://www.wireguard.com/install/) and follow the instructions on [Mullvad: WireGuard on Linux terminal](https://mullvad.net/en/help/wireguard-and-mullvad-vpn). The configuration script you are asked to run in this last link will download the WireGuard configuration files needed to `/etc/wireguard`.\n\nThe app is basically a layer on top of `wg-quick`. The scripts it runs are:\n```\n$ wg-quick up \u003cconnected server (e.g. uy-mma-wg-001)\u003e # Connect with WireGuard\n$ curl https://am.i.mullvad.net/connected # Check if you're connected to Mullvad\n$ wg-quick down \u003cconnected server\u003e # Disconnect\n```\nIt uses `sudo` to read the files on `/etc/wireguard` and execute `wg-quick` for connecting and disconnecting.\n\n### For the Mullvad CLI backend\n\nYou need to install [the Mullvad CLI](https://mullvad.net/en/download/vpn/linux) to use this backend.\n\nOn first run, you need to log in (unless you've already run `mullvad account login` on your terminal before). The servers list will be updated and will be saved to `~/.local/share/mullvadrb.dump`. You can update the server list at any time from the main menu.\n\n## Development\n\nRun gem from the source:\n\n```bash\n$ irb -Ilib -rmullvadrb\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicandocodigo%2Fmullvadrb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicandocodigo%2Fmullvadrb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicandocodigo%2Fmullvadrb/lists"}