Skip to main content

Overview

The mullvad custom-list command creates and manages custom lists of relay locations that can be used for relay selection.

Syntax

Subcommands

new

Create a new custom list:
Arguments:
  • <NAME> - Name for the custom list (max 30 characters)

list

Show all custom lists or a specific list:
Arguments:
  • [NAME] - Optional name of specific list to display

edit

Modify a custom list:

delete

Delete a custom list:
Arguments:
  • <NAME> - Name of the list to delete

Edit Subcommands

add

Add a location to a custom list:
Arguments:
  • <NAME> - Name of the custom list
  • <COUNTRY> - Country code (e.g., se, us)
  • [CITY] - Optional city code (e.g., got, nyc)
  • [HOSTNAME] - Optional specific relay hostname

remove

Remove a location from a custom list:
Same argument format as add.

rename

Rename a custom list:
Arguments:
  • <NAME> - Current name of the list
  • <NEW_NAME> - New name for the list (max 30 characters)

Examples

Create Custom List

Create empty list that you can populate with locations.

List All Custom Lists

Output:

Show Specific List

Output:

Add Locations to List

Add entire country:
Output:
Add specific city:
Add specific relay:

Remove Locations

Remove country:
Output:
Remove city:
Remove specific relay:

Rename Custom List

Delete Custom List

Use Custom List for Relay Selection

Now connections will only use relays from the specified custom list.

Location Hierarchy

Locations in custom lists follow a hierarchy:

Country Level

Add entire country:
Includes all cities and relays in Sweden.

City Level

Add specific city:
Includes all relays in Gothenburg, Sweden.

Hostname Level

Add specific relay:
Includes only this specific relay.

Common Custom List Examples

Regional Lists

Europe:
Asia:

Low-Latency List

Create list of nearby relays:

Favorite Relays

List of specific relays:

Owned Servers Only

Combine custom list with ownership filter:

Advanced Usage

Multihop with Custom Lists

Use custom lists for entry and exit:

Dynamic List Updates

Update list while connected:

List Management

View All Locations in List

Displays:
  • Full country names
  • City names
  • Country/city codes
  • Hostnames

Duplicate Detection

Attempting to add existing location:
Output:

Removing Non-Existent Location

Output:

List Name Constraints

Maximum Length

List names are limited to 30 characters (UTF-8 codepoints):

Name Trimming

Whitespace is automatically trimmed:

Existing Names

Referencing lists by name is case-sensitive:

Exit Status

Notes

  • Custom lists are persistent across restarts
  • Lists can include inactive relays (useful for planning)
  • List names are limited to 30 characters
  • Locations are stored as geographic constraints
  • Lists can mix countries, cities, and specific hostnames
  • Empty lists are allowed
  • Lists are validated against relay cache when used

Troubleshooting

Invalid Location

If you get “Invalid location argument”:
  1. Check available locations:
  2. Verify country/city codes:
    • Sweden: se
    • Gothenburg: got
    • Relay: se-got-wg-004
  3. Use correct hierarchy:

List Not Found

If you get “List not found”:
  1. Check existing lists:
  2. Verify exact name (case-sensitive)
  3. List may have been deleted

Source Reference

Implementation: mullvad-cli/src/cmds/custom_list.rs