PML 2

Configuration file

This document describes the PML 2 configuration file.

What the file contains

The PML 2 configuration file is a JSON file located at <install dir>/Config/Settings.json. It holds the various PML 2 settings — appearance, startup, tunnels and more. You can change PML 2's settings by editing this file.

On Unix-like systems the configuration path is case-sensitive.
{
    "PrivacyAgreed": true,              # Whether the privacy policy was accepted
    "IsTelemetryEnabled": true,         # Whether telemetry is enabled
    "Skin": "Mica",                     # Material
    "KickWithoutDisable": true,         # Re-enable a tunnel right after it is force-disconnected
    "HideInsteadOfClose": true,         # Minimise to the system tray instead of closing
    "ParallelDownload": true,           # Enable multi-threaded downloads
    "ParallelCount": 16,                # Thread count for multi-threaded downloads
    "AutoStartup": false,               # Start with the system
    "AutoLaunch": false,                # Start some tunnels automatically on launch
    "AutoLaunchProxies": [],            # The tunnels to start automatically on launch
    "ExpireDays": 30,                   # Days before the sign-in expires
    "DoNotShowSuccessMsg": true,        # Do not show successful request responses
    "Theme": "System",                  # Theme
    "AccentColor": "",                  # Accent colour
    "CaptchaMode": "implicit",          # Verification method
    "DownloadSource": "TPCA",           # ME Frp client download source
    "UpdateSettings": {                 # Update settings
        "AutoCheck": true,              # Whether to check for updates automatically
        "Channel": "Preview",           # Update channel
        "Method": "ds",                 # Update method
        "KeepProfile": true,            # Whether to keep user configuration
        "CompileType": "AOT"            # Build type of the target installer
    },
    "BackgroundSettings": {             # Background settings
        "LayerOpacity": 0.6,            # Background layer opacity
        "BackgroundImage": "",          # Background image (path)
        "TileMode": null,               # Background image tiling mode (WIP)
        "Stretch": null,                # Background image stretch mode
        "ShouldFillTitleBar": false     # Whether the background image fills the title bar
    },
    "HomeSettings": {                   # Home page settings
        "ShowStatistics": true,         # Show statistics
        "ShowUserInfo": true,           # Show user information
        "ShowSystemInfo": true,         # Show system information
        "ShowSystemNotice": true,       # Show system announcements
        "ShowSoftwareNotice": true      # Show software announcements
    },
    "PMSettings": {                     # "Tunnel monitor" overlay settings
        "Position": "rt",               # Position; one of lt (top left), rt (top right), lb (bottom left), rb (bottom right), ct (top centre), cb (bottom centre)
        "Enabled": false,               # Whether it is enabled
        "ClickThrough": false,          # Click-through (the overlay ignores the mouse)
        "ShowChart": true,              # Show the live traffic chart
        "Opacity": 0.92                 # Overlay opacity (0.5-1.0)
    },
    "CreateProxyDefaults": {            # Defaults for the create-tunnel form
        "LocalAddress": "127.0.0.1"     # Default local address
    },
    "ProxyTemplates": [],               # Create-tunnel templates (persist across restarts)
    "TerminalEngineType": "Original",   # Terminal engine type
    "TerminalCli": "",                  # Terminal CLI executable
    "AutoLogin": false,                 # Sign in automatically
    "AutoSign": false,                  # Check in automatically
    "Language": "zh-CN",                # Interface language
    "AnimationLevel": 2                 # Animation level: 0=off 1=reduced 2=standard
}

Field reference

PrivacyAgreed
bool
Whether the privacy policy was accepted. PML 2 asks you to accept it on first launch, and this field is set to true once you do.
IsTelemetryEnabled
bool
Whether telemetry is enabled. Defaults to false and is only set to true when you accept the privacy policy on first launch; a change takes effect after the app is restarted. With telemetry on, PML 2 collects some usage data to help us improve the product. See the Telemetry section for more.
Skin
string
Material. PML 2 lets you pick different materials such as Mica (Windows 11 only), Acrylic, Blur, Transparent and None. Different materials change the look and feel of PML 2. The default depends on the operating system: Mica on Windows 11, Acrylic on macOS, None elsewhere.
KickWithoutDisable
bool
Re-enable a tunnel right after it is force-disconnected. When the 幻缘映射 website force-disconnects a tunnel it also disables it; this option re-enables the tunnel for you so you are not left with a silently disabled tunnel.
HideInsteadOfClose
bool
Minimise to the system tray instead of closing. This keeps the app running in the background so you can reopen it quickly. Tunnels stay connected while it runs in the background.
ParallelDownload
bool
Enable multi-threaded downloads, which can improve download speed.
ParallelCount
int
Thread count for multi-threaded downloads. Too many threads can make downloads unstable, so tune it to your network and hardware.
AutoStartup
bool
Start with the system. When enabled, PML 2 launches automatically at boot. On Linux the app starts each time a user signs in. Because of macOS restrictions, PML 2 cannot start automatically on macOS.
AutoLaunch
bool
Start some tunnels automatically on launch. When enabled, PML 2 starts the selected tunnels when it starts.
AutoLaunchProxies
List<ALPConfig>
The list of tunnels to start automatically on launch. Each element contains:
  • Name: the tunnel name
  • Id: the tunnel ID
  • UseConfig: whether to use a custom launch configuration
  • Config: the custom launch configuration contents
ExpireDays
int
Days before the sign-in expires: how many days of inactivity before the app signs out. The maximum is 365 days. After changing it you need to sign in again.
DoNotShowSuccessMsg
bool
Do not show successful request responses. More than one user told us that success responses get in the way of reading the screen, so this option hides them and lets you concentrate.
Theme
string
Theme. PML 2 offers several themes: light (Light), dark (Dark) and system (System, which follows the OS setting). The default is System.
AccentColor
string
Accent colour. Pick a custom accent colour to personalise the PML 2 interface. It must be a valid CSS colour value, for example #ff358076. The default is an empty string, which means the built-in default accent colour is used.
CaptchaMode
string
Verification method: how the human check is performed when signing in. Two methods are available:
  • Invisible verification (implicit): recommended. Nothing to solve — the check happens automatically during sign-in.
  • Browser verification (explicit): you complete the check in a browser, then paste the result back manually to finish signing in.
DownloadSource
string
ME Frp client download source. Choose a source for faster and more reliable downloads. The available sources are:
  • TPCA: a source we provide. Stable speed, but downloads may occasionally fail.
  • OFFICIAL: the official source, hosted in mainland China. Fast. This setting applies to both the mefrpc client and application update packages.
UpdateSettings
MEFrpLauncherX.Core.UpdateSettings
Update settings, which configure how PML 2 updates itself.
  • UpdateSettings.AutoCheck
    bool
    Whether to check for updates automatically. When enabled, PML 2 checks for updates on its own. By default PML 2 checks for updates.
  • UpdateSettings.Channel
    string
    Update channel: which kind of updates you want to receive. The available channels are:
    • Stable (Stable): only well-tested stable releases
    • Preview (Preview): only well-tested preview releases
  • UpdateSettings.Method
    string
    Update method: the mechanism PML 2 uses to update. The available methods are:
    • ds: Directly Silent - install immediately after downloading.
    • dd: Direct Download - download directly, install manually.
    • md: Manual Download - download manually, install manually.
      I have no idea why I wrote something this user-hostile back then — it is just three different update mechanisms, so pick whichever you like.
  • UpdateSettings.KeepProfile
    bool
    Whether to keep user configuration. When enabled, your configuration is preserved while updating PML 2.
    Keeping the configuration file can cause problems; judge for yourself.
  • UpdateSettings.CompileType
    string
    Build type of the target installer. Used to pick an installer that matches the current build when updating. Available values:
    • AOT: an installer built with Native AOT
    • Common: an installer built the usual way The default matches the build you are running.
BackgroundSettings
MEFrpLauncherX.Core.BackgroundSettings
  • BackgroundSettings.BackgroundImage
    string
    Background image. Pick an image to personalise the PML 2 interface. Supported formats include (but are not limited to) PNG, JPG and BMP. Choose a local image file. This field stores the image path.
  • BackgroundSettings.LayerOpacity
    double
    Background layer opacity, from 0.0 (fully transparent) to 1.0 (fully opaque).
  • BackgroundSettings.TileMode
    string
    (WIP) Background image tiling mode.
  • BackgroundSettings.Stretch
    string
    Background image stretch mode. PML 2 offers several modes, including:
    • None (None): the image is not stretched and may overflow the background area.
    • Stretch (Stretch): the image is stretched to fill the area, which may distort it.
    • Uniform (Uniform): the image is scaled to fit the area while preserving its aspect ratio, which may leave empty space.
    • UniformToFill (UniformToFill): the image is scaled to fill the area while preserving its aspect ratio, which may crop it.
  • BackgroundSettings.ShouldFillTitleBar
    bool
    Whether the background image fills the title bar. When enabled, the image covers the whole window, title bar included.
HomeSettings
MEFrpLauncherX.Core.HomeConfig
  • HomeSettings.ShowStatistics
    bool
    Whether to show statistics on the home page.
  • HomeSettings.ShowUserInfo
    bool
    Whether to show user information on the home page.
  • HomeSettings.ShowSystemInfo
    bool
    Whether to show system information on the home page.
  • HomeSettings.ShowSystemNotice
    bool
    Whether to show system announcements on the home page.
  • HomeSettings.ShowSoftwareNotice
    bool
    Whether to show software announcements on the home page.
PMSettings
MEFrpLauncherX.Core.PFSConfig
Settings for the "Tunnel monitor" overlay.
  • PMSettings.Position
    string
    Position of the "Tunnel monitor" bar. Available values:
    • top left (lt)
    • top right (rt)
    • bottom left (lb)
    • bottom right (rb)
    • top centre (ct)
    • bottom centre (cb)
  • PMSettings.Enabled
    bool
    Whether the "Tunnel monitor" bar is enabled. When enabled it floats above other windows so you can watch tunnel status easily.
  • PMSettings.ClickThrough
    bool
    Click-through. When enabled, the overlay ignores mouse events so clicks pass to the window underneath. It temporarily disables click-through while the pointer is over it, then restores it.
  • PMSettings.ShowChart
    bool
    Whether to show the live traffic chart in the overlay. Enabled by default.
  • PMSettings.Opacity
    double
    Overlay opacity, from 0.5 to 1.0. The default is 0.92.
CreateProxyDefaults
MEFrpLauncherX.Core.Models.CreateProxyDefaults
Defaults for the create-tunnel form.
  • CreateProxyDefaults.LocalAddress
    string
    The default "local address" in the create-tunnel form. The default is 127.0.0.1.
ProxyTemplates
List<MEFrpLauncherX.Core.Models.ProxyTemplate>
Create-tunnel templates. You can save frequently used parameters as a template while creating a tunnel and apply it with one click later. Templates persist in this configuration across restarts. Each element contains:
  • Name: template name (unique identifier)
  • LocalAddress: local address
  • LocalPort: local port
  • Protocol: protocol type (tcp/udp/http/https); empty keeps the current selection
  • RemotePort: remote port (only meaningful for tcp/udp); empty leaves it blank
  • UseEncryption: whether encryption is enabled
  • UseCompression: whether compression is enabled
TerminalEngineType
string
Terminal engine type. PML 2 ships several engines:
  • Original: the default terminal engine.
  • XTerm: an XTerm-style terminal engine.
TerminalCli
string
Terminal CLI executable. When the terminal engine needs an external shell, this field selects it. Available values are powershell, pwsh, cmd, bash and zsh. The available shells differ per platform; the default is empty, which means the platform default shell.
AutoLogin
bool
Sign in automatically. When enabled, PML 2 signs in at startup with the account used last time.
AutoSign
bool
Check in automatically. When enabled, PML 2 completes the daily check-in after signing in.
Language
string
Interface language. PML 2 is multilingual; available values are:
  • zh-CN: Simplified Chinese
  • en-US: English
  • zh-Hant: Traditional Chinese The default is empty, which means the system language is followed.
AnimationLevel
int
Animation level. Adjust how much animation PML 2 uses, for a richer look or smoother performance:
  • 0: no animation
  • 1: reduced animation
  • 2: standard animation The default is 2.
Copyright © RYCBStudio 2026, All Rights Reserved.