How do I use the Speedify Command Line Interface?

Speedify CLI

The Speedify CLI is a cross-platform utility to help command and monitor Speedify without using the traditional user interface. It is meant to be run on the same device that it is controlling.

The output from Speedify CLI is always one of the following:

  • On success, its exit value is 0 and it prints JSON to the console. If there are more than one JSON objects they will be separated by double newlines.
  • On error, its exit value is one of the following:
    • 1 = Error from the Speedify API, outputs a JSON error on stderr
    • 2 = Invalid Parameter, outputs a text error message on stderr
    • 3 = Missing Parameter, outputs a text error message on stderr
    • 4 = Unknown Parameter, outputs the full usage message on stderr

For errors from the Speedify API (1), a JSON error message is emitted on stderr. This error contains the fields:

  • "errorCode" - a numeric code representing this error,
  • "errorType" - a short text code of the error category
  • "errorMessage" - a plain text message about the problem

Example Speedify API error message:

{
        "errorCode":    3841,
        "errorType":    "Timeout waiting for result",
        "errorMessage": "Timeout"
}

Usage

The CLI contains the following commands:

speedify_cli.exe v11.0.0.0
Usage : speedify_cli.exe action
Actions:
   adapter datalimit daily <adapter id> <data usage in bytes|unlimited>
   adapter datalimit dailyboost <adapter id> <additional bytes>
   adapter datalimit monthly <adapter id> <data usage in bytes|unlimited> <day of the month to reset on|0 for last 30 days>
   adapter encryption <adapter id> <on|off>
   adapter overlimitratelimit <adapter id> <speed in bits per second|0 to stop using>
   adapter priority <adapter id> <always|secondary|backup|never>
   adapter ratelimit <adapter id> <speed in bits per second|unlimited>
   adapter resetusage <adapter id>
   captiveportal check
   captiveportal login <on|off> <adapter id>
   headercompression <on|off>
   connect [ closest | public | private | p2p | <country> [<city> [<number>]] | last ]
   connectmethod [closest | public | private | p2p | <country> [<city> [<number>]] ]
   daemon exit
   directory [directory server domain]
   dns <ip address> ...
   disconnect
   encryption <on|off>
   esni <on|off>
   gateway [directory gateway uri]
   jumbo <on|off>
   login <username> [password]
   login auto
   login oauth [access token]
   logout
   mode <redundant|speed|streaming>
   overflow <speed in mbps>
   packetaggr <on|off>
   ports [port/proto] ...
   privacy crashreports <on|off>
   privacy dnsleak <on|off>
   privacy killswitch <on|off>
   privacy ipleak <on|off>
   route default <on|off>
   show < servers | settings | privacy | adapters | currentserver | user | directory | connectmethod | streamingbypass | disconnect | streaming | speedtest>
   speedtest
   startupconnect <on|off>
   state
   stats [duration in seconds] [current|day|week|month|total|<period in hours>] ...
   streaming domains <add|rem|set> <domain> ...
   streaming ipv4 <add|rem|set> <ip address> ...
   streaming ipv6 <add|rem|set> <ip address> ...
   streaming ports <add|rem|set> [port/proto] ...
   streamingbypass domains <add|rem|set> <domain> ...
   streamingbypass ipv4 <add|rem|set> <ip address> ...
   streamingbypass ports <add|rem|set> <port/proto> ...
   streamingbypass service <service name> <on|off>
   transport <auto|tcp|tcp-multi|udp|https>
   version

Commands

adapter datalimit daily <adapter id> <data usage in bytes|unlimited>

The adapter datalimit daily limit the data usage for a specific adapter on a daily basis. The usage can be either limited in bytes or unlimited. This will set the maxDaily value accordingly. The adapter guid can be found by using the show adapters option. Whether the adapter is disabled or rate limited is controlled by the adapter overlimitratelimit setting.

$ speedify_cli adapter datalimit daily {96E762FC-292F-4E17-89F8-95F417401604} 0 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 356427321,
            "usageDaily":   356427321,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

adapter datalimit dailyboost <adapter id> <additional bytes>

Bumps up the daily datalimit for today only on a specific adapter on a daily basis. The adapter guid can be found by using the show adapters option.

$ speedify_cli adapter datalimit dailyboost {96E762FC-292F-4E17-89F8-95F417401604} 0 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 356432552,
            "usageDaily":   356432552,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

adapter datalimit monthly <adapter id> <data usage in bytes|unlimited> <day of the month to reset on|0 for last 30 days>

The adapter datalimit monthly sets a monthly data cap that resets on a set date or lasts 30 days. The usage can be either limited in bytes or unlimited. This will set the max and resetDay accordingly. Whether the adapter is disabled or rate limited is controlled by the adapter overlimitratelimit setting.

$ speedify_cli adapter datalimit monthly {96E762FC-292F-4E17-89F8-95F417401604} 2000000000 0 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 356433264,
            "usageDaily":   356433264,
            "usageMonthlyLimit":    2000000000,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

adapter encryption <adapter id> <on|off>

Controls encryption on a single adapter. Note that using the encryption command will remove all per-adapter encryption settings. Most of the time, you'll just want to use the encryption command that changes all adapters at same time.

$ speedify_cli adapter encryption {96E762FC-292F-4E17-89F8-95F417401604} off 
{
    "jumboPackets": true,
    "encrypted":    true,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   true,
    "perConnectionEncryptionSettings":  [{
            "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
            "encrypted":    false
        }],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
...

adapter overlimitratelimit <adapter id> <speed in bits per second|0 to stop using>

When an adapter datalimit is hit, this rate limit (in bit per second) is applied to the adapter. Set to 0 to disable the adapter.

$ speedify_cli adapter overlimitratelimit {96E762FC-292F-4E17-89F8-95F417401604} 0 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 356433631,
            "usageDaily":   356433631,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

adapter priority <adapter id> <always|secondary|backup|never>

The adapter priority command allows the user to choose which adapter gets one of the following priorities:

| Priority | Description | | -------- | ----------- | | always | Use whenever connected | | secondary | Use less than Always connection- only when Always connections are congested or not working | | backup | Only use when other connections are unavailable | | never | Adapter is not used |

This will set priority as one of the above mentioned options accordingly.

$ speedify_cli adapter priority {96E762FC-292F-4E17-89F8-95F417401604} always 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 356433631,
            "usageDaily":   356433631,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

adapter ratelimit <adapter id> <speed in bits per second|unlimited>

The adapter ratelimit command allows the user to throttle the adapter's maximum speed, in bits per second.

$ speedify_cli adapter ratelimit {96E762FC-292F-4E17-89F8-95F417401604} 0 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 356433631,
            "usageDaily":   356433631,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

adapter resetusage <adapter id>

The adapter resetusage command resets the statistics associated with this adapter. This restarts any daily and monthly data caps.

$ speedify_cli adapter resetusage {96E762FC-292F-4E17-89F8-95F417401604} 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 0,
            "usageDaily":   0,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

captiveportal check

Checks whether an interfaces are currently being blocked by a captive portal. Returns an array of adapterIDs which are currently captive.

$ speedify_cli speedify_cli.exe captiveportal check
["{D5306735-8BD9-4F89-A1AF-F485CA23208C}"]

captiveportal login <on|off> <adapter id>

Starts or stops directing web traffic out the local interface to allow users to login to the captive portal web page. Setting this to "on" and passing in an Adapter ID, will direct and new connections on ports 53,80 and 443 out the specified adapter. If the Speedify user interface is running it will launch a captive portal web browser component. Setting this to "off" (no Adapter ID required in this case), will stop the forwarding of the web traffic, and will allow it to all pass over the VPN tunnel as usal.

$ speedify_cli speedify_cli.exe captiveportal login on "{D5306735-8BD9-4F89-A1AF-F485CA23208C}"
{
        "enabled":      true,
        "adapterID":    "{D5306735-8BD9-4F89-A1AF-F485CA23208C}"
}

headercompression <on|off>

The headercompression command sets header compression on/off.

$ speedify_cli headercompression on 
{
    "jumboPackets": true,
    "encrypted":    true,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   true,
    "perConnectionEncryptionSettings":  [{
            "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
            "encrypted":    false
        }],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
...

connect [ closest | public | private | p2p | <country> [<city> [<number>]] | last ]

The connect command connects to a server based on your connectmethod setting, or a server of your choosing. It prints details of the server it has selected.

The show servers command will give you a detailed list of servers with their countries, cities and number as fields that you can use in this command.

To connect to the nearest server in a particular country, pass along a two-letter country code drawn from the speedify_cli show servers command:

  $ speedify_cli connect ca

To connect to a particular city, pass along a two-letter country code and city, drawn from the speedify_cli show servers command:

  $ speedify_cli connect us-atlanta

To connect to a specific server, pass along a two-letter country code, city, and number, drawn from the speedify_cli show servers command:

  $ speedify_cli connect us-atlanta-3

Example:

$ speedify_cli connect 
{
    "tag":  "privateus-philadelphia-5",
    "friendlyName": "United States - Philadelphia #5",
    "country":  "us",
    "city": "philadelphia",
    "num":  5,
    "isPrivate":    true,
    "torrentAllowed":   false,
    "publicIP": ["1.2.3.4"]
}

connectmethod [closest | public | private | p2p | <country> [<city> [<number>]] ]

The connect command connects to a server based on your connectmethod setting, or a server of your choosing. It prints details of the server it has selected.

The show servers command will give you a detailed list of servers with their countries, cities and number as fields that you can use in this command.

To connect to the nearest server in a particular country, pass along a two-letter country code drawn from the speedify_cli show servers command:

  $ speedify_cli connect ca

To connect to a particular city, pass along a two-letter country code and city, drawn from the speedify_cli show servers command:

  $ speedify_cli connect us-atlanta

To connect to a specific server, pass along a two-letter country code, city, and number, drawn from the speedify_cli show servers command:

  $ speedify_cli connect us-atlanta-3

Example:

$ speedify_cli connect 
{
    "tag":  "privateus-philadelphia-5",
    "friendlyName": "United States - Philadelphia #5",
    "country":  "us",
    "city": "philadelphia",
    "num":  5,
    "isPrivate":    true,
    "torrentAllowed":   false,
    "publicIP": ["1.2.3.4"]
}

daemon exit

Causes the Speedify service to disconnect, and exit. In general, leave this alone.

directory [directory server domain]

Controls the directory server. In general, leave this alone.

dns <ip address> ...

The dns command sets the DNS servers to use for domain name resolution.

$ speedify_cli dns 8.8.8.8 
{
    "crashReports": true,
    "killswitch":   false,
    "dnsleak":  true,
    "ipleak":   false,
    "dnsAddresses": ["8.8.8.8"]
}

disconnect

The disconnect command disconnects from the server. It prints the state immediately after the request to disconnect is made.

$ speedify_cli disconnect 
{
    "state":    "LOGGED_IN"
}

encryption <on|off>

The encryption command enables or disables encryption of all tunneled traffic. It prints the connection settings immediately after the change is made. Note that this will clear all per-adapter encryption settings from the adapter encryption command.

$ speedify_cli encryption off 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    30,
...

esni <on|off>

The esni command sets ESNI (encrypted server name identification) on/off.

$ speedify_cli esni on 
{
    "domain":   "",
    "enableEsni":   true,
    "gatewayUri":   ""
}

gateway [directory gateway uri]

Configures the OAuth gateway url to use.

$ speedify_cli gateway https://my.domain.com/oauth/gateway/path 
{
    "domain":   "",
    "enableEsni":   true,
    "gatewayUri":   "https://my.domain.com/oauth/gateway/path"
}

jumbo <on|off>

The jumbo command allows the TUN adapter to accept larger MTU packets. This will set jumbo_packets to either True or False.

$ speedify_cli jumbo on 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    30,
...

login <username> [password]

The login command instructs Speedify to connect with the given username and password. It prints the state immediately after the request to login is made. Speedify will then proceed to automatically connect if the login succeeds.

$ speedify_cli speedify_cli.exe login [email protected] password123
{
        "state":        "LOGGED_IN"
}

login auto

The login auto command instructs Speedify to connect to a free account with a set data limit. It prints the following state immediately after the request is made.

$ speedify_cli speedify_cli.exe login auto
{
        "state":        "LOGGED_IN"
}

login oauth [access token]

The login oauth logs in with the user represented by encrypted token passed in. It prints the state immediately after the request to login is made. Speedify will then proceed to automatically connect if the login succeeds.

$ speedify_cli speedify_cli.exe login oauth {encrypted_token}
{
        "state":        "LOGGED_IN"
}

logout

The logout command disconnects from the server and flushes any user credentials that were stored.

$ speedify_cli speedify_cli.exe logout
{
        "state":        "LOGGED_OUT"
}

mode <redundant|speed|streaming>

The mode command instructs Speedify to optimize for maximum connection speed or redundancy. Valid options are speed, redundant, and streaming.

$ speedify_cli mode speed 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    30,
...

overflow <speed in mbps>

Speed in Mbps after which Secondary connections are not used.

$ speedify_cli overflow 10.0 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

packetaggr <on|off>

The packetaggr command sets packet aggregation on/off.

$ speedify_cli packetaggr on 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

ports [port/proto] ...

The ports command instructs Speedify to request public ports from a Dedicated (private) Speed Server. These settings only go into effect after a reconnect, and they are ignored by public Speed Servers. Requesting a port that is already taken by another user will lead to the connect request failing, and state will return to LOGGED_IN. Calling the ports command with no additional parameters will clear the port forward requests.

$ speedify_cli ports 8001/tcp 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

privacy crashreports <on|off>

Are anonymous crashreports sent back to Speedify in case of crash.

$ speedify_cli privacy crashreports on 
{
    "crashReports": true,
    "killswitch":   false,
    "dnsleak":  true,
    "ipleak":   false,
    "dnsAddresses": ["8.8.8.8"]
}

privacy dnsleak <on|off>

A Windows only setting to ensure DNS cannot go around the tunnel. This could make certain LAN based printers and shared drivers inaccessible.

$ speedify_cli privacy dnsleak off 
{
    "crashReports": true,
    "killswitch":   false,
    "dnsleak":  false,
    "ipleak":   false,
    "dnsAddresses": ["8.8.8.8"]
}

privacy killswitch <on|off>

Configures firewall rules to make it impossible to access the internet when Speedify is not connected.

$ speedify_cli privacy killswitch off 
{
    "crashReports": true,
    "killswitch":   false,
    "dnsleak":  false,
    "ipleak":   false,
    "dnsAddresses": ["8.8.8.8"]
}

privacy ipleak <on|off>

A Windows only setting to ensure IP cannot go around the tunnel by removing default routes from other interfaces. This could make servers hosted on the computer inaccessible from outside networks.

$ speedify_cli privacy ipleak off 
{
    "crashReports": true,
    "killswitch":   false,
    "dnsleak":  false,
    "ipleak":   false,
    "dnsAddresses": ["8.8.8.8"]
}

route default <on|off>

Configures whether Speedify will obtain a 'default' route to the Internet over the VPN adapter.

$ speedify_cli route default on 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

show servers

The show servers command retrieves the current list of Speed Servers. If you have access to any Dedicated Speed Servers, they appear in a private array. The public pool of Speed Servers appear in a public array.

$ speedify_cli show servers 
{
    "public":   [{
            "tag":  "rs-belgrade-1",
            "country":  "rs",
            "city": "belgrade",
            "num":  1,
            "isPrivate":    false
        }, {
            "tag":  "si-ljubljana-1",
            "country":  "si",
            "city": "ljubljana",
            "num":  1,
            "isPrivate":    false
        }, {
            "tag":  "us-seattle-1",
            "country":  "us",
            "city": "seattle",
            "num":  1,
            "isPrivate":    false
        }, {
...

show settings

The show settings command retrieves the current connection settings. These settings are sent to the server at connect time, and they can be retrieved at any time.

$ speedify_cli show settings 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

show privacy

Outputs privacy related settings

$ speedify_cli show privacy 
{
    "crashReports": true,
    "killswitch":   false,
    "dnsleak":  false,
    "ipleak":   false,
    "dnsAddresses": ["8.8.8.8"]
}

show adapters

The show adapters command allows the user to view all of the network adapters, and their settings and statistics.

$ speedify_cli show adapters 
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "disconnected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 24202,
            "usageDaily":   24202,
            "usageMonthlyLimit":    0,
            "usageMonthlyResetDay": 0,
            "usageDailyLimit":  0,
            "usageDailyBoost":  0,
            "overlimitRatelimit":   0
        }
    }]

show currentserver

The show currentserver command displays the last server Speedify was connected (which, if you are connected is the current server).

$ speedify_cli show currentserver 
{
    "tag":  "privateus-philadelphia-6",
    "friendlyName": "United States - Philadelphia #6",
    "country":  "us",
    "city": "philadelphia",
    "num":  6,
    "isPrivate":    true,
    "torrentAllowed":   false,
    "publicIP": ["1.2.3.4"]
}

show user

Outputs information about the currently logged in user.

$ speedify_cli show user 
{
    "email":    "****@connectify.me",
    "isAutoAccount":    false,
    "isTeam":   true,
    "bytesUsed":    11657477758,
    "bytesAvailable":   -1,
    "minutesUsed":  6322,
    "minutesAvailable": -1,
    "paymentType":  "yearly",
    "dataPeriodEnd":    "2021-03-22"
}

show directory

The show directory command shows the current directory server.

$ speedify_cli show directory 
{
    "domain":   "",
    "enableEsni":   true,
    "gatewayUri":   ""
}

show connectmethod

The show currentserver command displays information the last server to which Speedify connected.

$ speedify_cli show connectmethod 
{
    "connectMethod":    "closest",
    "country":  "",
    "city": "",
    "num":  0
}

show streamingbypass

The show streamingbypass command displays current streaming bypass service settings.

$ speedify_cli show streamingbypass 
{
    "services": [{
            "title":    "Netflix",
            "enabled":  1
        }, {
            "title":    "Disney+",
            "enabled":  0
        }, {
            "title":    "HBO",
            "enabled":  0
        }, {
            "title":    "Hulu",
            "enabled":  0
        }, {
            "title":    "Peacock",
            "enabled":  0
        }, {
            "title":    "Amazon Prime",
            "enabled":  0
        }, {
...

show disconnect

Displays the reason for the last disconnect.

$ speedify_cli show disconnect 
{
    "disconnectReason": "UNKNOWN"
}

show streaming

The show streaming command displays current streaming mode settings.

$ speedify_cli show streaming 
{
    "domains":  ["mynewstreamingservice.com"],
    "ipv4": ["8.8.8.8", "15.0.8.8"],
    "ipv6": [],
    "ports":    [{
            "protocol": "tcp",
            "port": 8200
        }]
}

show speedtest

The show speedtest command displays the last speed test results.

$ speedify_cli show speedtest 
[{
        "time": 1616134771,
        "isError":  false,
        "country":  "us",
        "city": "newark",
        "downloadSpeed":    269816827.2306999,
        "uploadSpeed":  95652889.2013173
    }]

speedtest

Runs a speed test over the VPN tunnel.

$ speedify_cli speedtest 
[{
        "time": 1616167728,
        "isError":  false,
        "country":  "privateus",
        "city": "philadelphia",
        "downloadSpeed":    236089677.9276199,
        "uploadSpeed":  137809290.82547477
    }]

startupconnect <on|off>

The startupconnect option tells Speedify if it should connect automatically at startup or not. It prints the current settings immediately after the request is made.

$ speedify_cli startupconnect on 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "auto",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

state

The state command retrieves the current state of the connection. Possible states are LOGGED_OUT, LOGGING_IN, LOGGED_IN, AUTO_CONNECTING, CONNECTING, DISCONNECTING, CONNECTED, OVERLIMIT, and UNKNOWN

$ speedify_cli state 
{
    "state":    "CONNECTED"
}

stats [duration in seconds] [current|day|week|month|total|<period in hours>] ...

The stats command subscribes to a feed of connection and session statistics. By default, this feed will continue until the speedify_cli process is terminated, but an optional parameter can be given to stop and exit after the given number of seconds. This can be useful to monitor how many connections are being utilized by Speedify, and what their current network activity level is in bytes per second. You can specify up to 5 time periods to receive stats over.

$ speedify_cli stats 1 
["state",
{
    "state":    "CONNECTED"
}
]

["adapters",
[{
        "adapterID":    "{96E762FC-292F-4E17-89F8-95F417401604}",
        "description":  "Intel(R) Wi-Fi 6 AX201 160MHz",
        "name": "Wi-Fi",
        "state":    "connected",
        "type": "Wi-Fi",
        "priority": "always",
        "connectedNetworkName": "myWifiNetwork",
        "connectedNetworkBSSID":    "b8:f8:53:ff:ff:ff",
        "rateLimit":    0,
        "dataUsage":    {
            "usageMonthly": 27633,
            "usageDaily":   27633,
...

streaming domains <add|rem|set> <domain> ...

Configure extra domains for streaming mode.

$ speedify_cli streaming domains add mynewstreamingservice.com 
{
    "domains":  ["mynewstreamingservice.com", "mynewstreamingservice.com"],
    "ipv4": ["8.8.8.8", "15.0.8.8"],
    "ipv6": [],
    "ports":    [{
            "protocol": "tcp",
            "port": 8200
        }]
}

streaming ipv4 <add|rem|set> <ip address> ...

Configure extra IPv4 addresses for streaming mode.

$ speedify_cli streaming ipv4 add 8.8.8.8 
{
    "domains":  ["mynewstreamingservice.com", "mynewstreamingservice.com"],
    "ipv4": ["8.8.8.8", "15.0.8.8", "8.8.8.8"],
    "ipv6": [],
    "ports":    [{
            "protocol": "tcp",
            "port": 8200
        }]
}

streaming ipv6 <add|rem|set> <ip address> ...

Configure extra IPv6 addresses for streaming mode.

$ speedify_cli streaming ipv4 add 2001:4860:4860::8888 
{
    "domains":  ["mynewstreamingservice.com", "mynewstreamingservice.com"],
    "ipv4": ["8.8.8.8", "15.0.8.8", "8.8.8.8", "15.0.8.8"],
    "ipv6": [],
    "ports":    [{
            "protocol": "tcp",
            "port": 8200
        }]
}

streaming ports <add|rem|set> [port/proto] ...

Configure extra ports for streaming mode.

$ speedify_cli streaming ports add 8200/tcp 
{
    "domains":  ["mynewstreamingservice.com", "mynewstreamingservice.com"],
    "ipv4": ["8.8.8.8", "15.0.8.8", "8.8.8.8", "15.0.8.8"],
    "ipv6": [],
    "ports":    [{
            "protocol": "tcp",
            "port": 8200
        }, {
            "protocol": "tcp",
            "port": 8200
        }]
}

streamingbypass domains <add|rem|set> <domain> ...

Configure extra domains to bypass the VPN.

$ speedify_cli streamingbypass domains add hulu.com 
{
    "services": [{
            "title":    "Netflix",
            "enabled":  1
        }, {
            "title":    "Disney+",
            "enabled":  0
        }, {
            "title":    "HBO",
            "enabled":  0
        }, {
            "title":    "Hulu",
            "enabled":  0
        }, {
            "title":    "Peacock",
            "enabled":  0
        }, {
            "title":    "Amazon Prime",
            "enabled":  0
        }, {
...

streamingbypass ipv4 <add|rem|set> <ip address> ...

Configure extra IPv4 addresses to bypass the VPN.

$ speedify_cli streamingbypass ipv4 add 8.8.8.8 
{
    "enabled":  true
}

streamingbypass ports <add|rem|set> <port/proto> ...

Configure extra ports to bypass the VPN.

$ speedify_cli streamingbypass ports add 4800/tcp 
{
    "enabled":  true
}

streamingbypass service <service name> <on|off>

Configures whether Speedify will allow traffic from a service to bypass the VPN.

$ speedify_cli streamingbypass service Netflix on 
{
    "services": [{
            "title":    "Netflix",
            "enabled":  1
        }, {
            "title":    "Disney+",
            "enabled":  0
        }, {
            "title":    "HBO",
            "enabled":  0
        }, {
            "title":    "Hulu",
            "enabled":  0
        }, {
            "title":    "Peacock",
            "enabled":  0
        }, {
            "title":    "Amazon Prime",
            "enabled":  0
        }, {
...

transport <auto|tcp|tcp-multi|udp|https>

The transport command instructs Speedify to choose between one of the network protocols auto, tcp, tcp-multi, udp, or https. The transport_mode value is set accordingly based on the user's selection.

$ speedify_cli transport udp 
{
    "jumboPackets": true,
    "encrypted":    false,
    "allowChaChaEncryption":    true,
    "bondingMode":  "speed",
    "startupConnect":   true,
    "transportMode":    "udp",
    "packetAggregation":    true,
    "headerCompression":    true,
    "forwardedPorts":   [{
            "protocol": "tcp",
            "port": 8001
        }],
    "perConnectionEncryptionEnabled":   false,
    "perConnectionEncryptionSettings":  [],
    "perConnectionParallelSockets": [{
            "adapterID":    "all",
            "sockets":  0
        }],
    "overflowThreshold":    10,
...

version

The version command can be used to verify the version of Speedify that is installed and running.

$ speedify_cli version 
{
    "maj":  11,
    "min":  0,
    "bug":  0,
    "build":    0
}

Copyright Connectify, Inc.