{"id":46421575,"url":"https://github.com/ch00k/mullvad-compass","last_synced_at":"2026-03-05T16:04:07.477Z","repository":{"id":324872851,"uuid":"1098128745","full_name":"Ch00k/mullvad-compass","owner":"Ch00k","description":"Find the best Mullvad VPN server to connect to","archived":false,"fork":false,"pushed_at":"2025-12-29T19:55:10.000Z","size":114,"stargazers_count":14,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-28T18:38:46.580Z","etag":null,"topics":["benchmark","latency","mullvad","mullvad-vpn","server","vpn"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ch00k.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-17T09:42:55.000Z","updated_at":"2026-01-14T08:00:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Ch00k/mullvad-compass","commit_stats":null,"previous_names":["ch00k/mullvad-compass"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Ch00k/mullvad-compass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ch00k%2Fmullvad-compass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ch00k%2Fmullvad-compass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ch00k%2Fmullvad-compass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ch00k%2Fmullvad-compass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ch00k","download_url":"https://codeload.github.com/Ch00k/mullvad-compass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ch00k%2Fmullvad-compass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30134586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T15:35:27.018Z","status":"ssl_error","status_checked_at":"2026-03-05T15:35:23.768Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["benchmark","latency","mullvad","mullvad-vpn","server","vpn"],"created_at":"2026-03-05T16:04:06.816Z","updated_at":"2026-03-05T16:04:07.465Z","avatar_url":"https://github.com/Ch00k.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mullvad-compass\n\nFind Mullvad VPN servers with the lowest latency at your current geographic location.\n\n\u003e [!NOTE]\n\u003e This is a rewrite of [mullvad-closest](https://github.com/Ch00k/mullvad-closest), offering more features, better\n\u003e performance, and a single binary distribution with no runtime dependencies.\n\n## Motivation\n\nMullvad VPN has a large number of servers worldwide. If you are in a country where Mullvad VPN servers are present, you\nare in luck - simply select the country and Mullvad VPN app will usually pick the best server for you. However, it is\nnot as straightforward if you are in a country without Mullvad servers. When in Bosnia and Herzegovina, do you connect\nto servers in Croatia, Serbia, or Hungary? When in Iceland, do you connect to servers in Norway, UK, or Canada?\n**mullvad-compass** helps you answer these questions by finding the best Mullvad VPN servers at your current location.\n\n## Features\n\n- Finds the single best or multiple closest Mullvad VPN servers\n- Filters by distance threshold and anti-censorship protocol\n- Measures actual latency via ICMP ping\n- Supports IPv4 and IPv6\n- Achieves subsecond performance thanks to concurrent pings\n- Shows your current location based on Mullvad's API\n- Supports Linux, macOS, and Windows\n\n## Installation\n\nDownload pre-built binaries from the [releases page](https://github.com/Ch00k/mullvad-compass/releases).\n\n### Mullvad VPN\n\nThe tool reads Mullvad's `relays.json` file from the platform-specific location:\n\n- **Linux**: `/var/cache/mullvad-vpn/relays.json`\n- **macOS**: `/Library/Caches/mullvad-vpn/relays.json`\n- **Windows**: `C:/ProgramData/Mullvad VPN/cache/relays.json`\n\nThis file is created when you install the Mullvad VPN app.\n\n## Usage\n\nRun without options to find the single best (lowest latency) server:\n\n\u003c!-- best-server:start --\u003e\n```\n$ mullvad-compass\nYour location:   Dresden, Germany\n                 203.0.113.42\nBest server:     Prague, Czech Republic\n                 cz-prg-wg-201 (178.249.209.162)\n                 9.78 ms, 156 km away\n```\n\u003c!-- best-server:end --\u003e\n\nFind multiple servers within 200 km, sorted by latency (lowest first):\n\n\u003c!-- multiple-servers:start --\u003e\n```\n$ mullvad-compass --max-distance 250\nCountry          City     Distance (km)   Hostname        IP                Latency (ms)\n--------------   ------   -------------   -------------   ---------------   ------------\nCzech Republic   Prague   156             cz-prg-wg-201   178.249.209.162   9.78\nCzech Republic   Prague   156             cz-prg-wg-202   178.249.209.175   13.01\nCzech Republic   Prague   156             cz-prg-wg-102   146.70.129.130    13.94\nGermany          Berlin   238             de-ber-wg-007   193.32.248.75     15.86\nGermany          Berlin   238             de-ber-wg-001   193.32.248.66     15.88\nGermany          Berlin   238             de-ber-wg-005   193.32.248.70     15.89\nGermany          Berlin   238             de-ber-wg-008   193.32.248.74     15.91\nGermany          Berlin   238             de-ber-wg-003   193.32.248.68     15.93\nGermany          Berlin   238             de-ber-wg-004   193.32.248.69     15.95\nGermany          Berlin   238             de-ber-wg-006   193.32.248.71     15.95\nGermany          Berlin   238             de-ber-wg-002   193.32.248.67     15.99\n```\n\u003c!-- multiple-servers:end --\u003e\n\nAll options can be viewed with `--help`:\n\n\u003c!-- help:start --\u003e\n```\n$ mullvad-compass --help\nmullvad-compass 0.0.3\n\nFind Mullvad VPN servers with the lowest latency at your current location.\n\nUSAGE:\n    mullvad-compass [OPTIONS]\n\nMODES:\n    Best Server Mode (default):   Shows your location and the single best server.\n                                  Activated when running without filter options.\n\n    Table Mode:                   Shows all matching servers in a table, sorted by latency.\n                                  Activated by using any filter option (-m, -a, -d, -6).\n\nFILTER OPTIONS (Table Mode):\n    -m, --max-distance KM         Maximum distance in km from your location (default: 500, range: 1-20000)\n    -a, --anti-censorship TYPE    Filter servers by anti-censorship type (lwo, quic, shadowsocks)\n    -d, --daita                   Filter servers with DAITA enabled\n    -6, --ipv6                    Use IPv6 addresses for pinging\n\nPERFORMANCE OPTIONS:\n    -t, --timeout MS              Ping timeout in milliseconds (default: 500, range: 100-5000)\n    -w, --workers COUNT           Number of concurrent ping workers (default: 25, range: 1-200)\n\nOTHER OPTIONS:\n    -l, --log-level LEVEL         Set log level (debug, info, warning, error; default: error)\n    -h, --help                    Show this help message\n    -v, --version                 Show version information\n```\n\u003c!-- help:end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fch00k%2Fmullvad-compass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fch00k%2Fmullvad-compass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fch00k%2Fmullvad-compass/lists"}