10.Account, Activation & Cloud Sync
10 Account, Activation & Cloud Sync
This chapter introduces WxTerm’s account system, activation codes and plans, and cross-device cloud sync.
10.1 Account Login
WxTerm provides two login methods, defaulting to one-click login, falling back to account password login on failure.
One-Click Login (Token Login)
One-click login completes authentication via the browser, without entering a password in the app; it is the most convenient way.
Flow
- Click the “Login” button on the right of the toolbar, or click “Reactivate” from the activation expired dialog.
- WxTerm automatically opens the system browser and navigates to the official website login page.
- After completing login in the browser, the page guides you back to WxTerm.
- WxTerm automatically obtains the login token and completes activation.

One-click login requires a default browser to be installed on the system. If the browser does not open automatically, check the system default browser settings.
Account Password Login
When one-click login fails or is unavailable, it falls back to the account password login dialog.
Flow
- After one-click login fails, the login dialog appears automatically.
- Enter the username and password.
- Check “Enable cloud sync” (checked by default).
- Click “Login”.

First Login Master Key Setup
On first login with cloud sync enabled, if security questions have not been set, a security Q&A form appears:
| Field | Description |
|---|---|
| Recovery password | Password used to recover the master key later |
| Security question 1 | Select from a preset question list |
| Answer 1 | Answer to question 1 |
| Security question 2 | Select from a preset question list |
| Answer 2 | Answer to question 2 |
| Security question 3 | Select from a preset question list |
| Answer 3 | Answer to question 3 |
After filling in and clicking save, the server generates a master key (masterKey) and returns it to the client for storage. The master key is used to encrypt sensitive data such as session passwords; it is stored only locally and is never uploaded in plaintext.
The masterKey is delivered by the server after signing; the client verifies its integrity before each use to ensure it has not been tampered with.
Login Status
After successful login, the toolbar’s right side shows the username and current plan. Click the username to pop up a dropdown menu:
| Menu item | Description |
|---|---|
| Sync settings | Open the cloud sync page of the settings dialog |
| Manual sync sessions | Sync sessions immediately |
| Manual sync settings | Sync global settings immediately |
| Manual sync themes | Sync themes immediately |
| Manual sync keymaps | Sync keymap mappings immediately |
| Logout | Log out the current account, downgrade to Free |
10.2 Activation Codes and Plans
Activation Codes
An activation code is an authorization credential bound to the account, determining the feature plan and expiration time the user can use.
- After login, the server automatically verifies the activation code status.
- The activation code contains: plan type, expiration time, device count limit, and other info.
- The activation code is digitally signed; its integrity is verified before each use to prevent forgery or tampering.
Plan Types
| Plan | Positioning | See |
|---|---|---|
| Free | Free version, basic connection features | 13 Plan Feature Matrix |
| Trial | Time-limited trial of all Pro features | same |
| Pro | Professional version, individual dev/ops | same |
| Ent | Enterprise version, team use | same |
| Edu | Education version, student/teacher discount | same |
| Dev | Developer version | same |
Activation Expiry Handling
Expired at startup
- When the app detects at startup that the activation code has expired, an activation expired dialog appears, showing the original plan and expiration date.
- Available actions:
- Reactivate: trigger one-click login to reactivate (after renewal, a new activation code is activated).
- Purchase: open the official website purchase page.
- Close: downgrade to the Free version and continue using.

Revoked at runtime
- During runtime, the app periodically checks the authorization status.
- If authorization is detected as invalid (e.g. refund, admin revocation), an authorization revoked dialog appears.
- Available actions:
- Reactivate: trigger one-click login.
- Purchase: open the official website purchase page.
- Ignore: downgrade to the Free version and continue using.

After downgrading to the Free version, features exceeding the Free limits are disabled (menu items grayed out), but saved sessions and data are not lost.
10.3 Cloud Sync
Cloud sync keeps sessions, settings, themes, and keymaps consistent across multiple devices.
Sync Content
| Data type | Content | Encryption |
|---|---|---|
| Sessions | Session config (with encrypted passwords) | masterKey encrypts session passwords |
| Settings | Global settings (terminal, connection, keyboard, etc.) | masterKey encrypted |
| Themes | Custom themes | masterKey encrypted |
| Keymaps | Custom keymap mappings | masterKey encrypted |
Enable Sync
- Log in to the account (check “Enable cloud sync” on first login).
- Menu “Options → Settings” → “Cloud Sync” page.
- Check the “Enable cloud sync” master toggle.
- Check the data types to sync (sessions/settings/themes/keymaps).

Cloud sync feature is not available in Free / Trial versions; available in Pro and above.
Sync Timing
| Timing | Behavior |
|---|---|
| Startup sync | On app startup, automatically checks whether the cloud has updates; pulls and merges if so |
| Edit session | After editing/adding a session and saving, automatically syncs that session to the cloud (per-session sync, not full overwrite) |
| Auth retry | After a successful auth retry, automatically syncs the updated credentials |
| Manual sync | Manually trigger each type of sync via the user menu |
| Periodic check | Periodically checks authorization status and sync status during runtime |
Sync Strategy
WxTerm adopts an incremental sync strategy to avoid data loss from full overwrites:
- Session sync: uploads per session, only uploading sessions that are newer locally than in the cloud. Does not delete cloud sessions because they are missing locally.
- Settings/themes/keymaps sync: compares timestamps first, only uploading when local is newer than cloud.
- Timestamps: stored as-is by the server based on the client session’s update time and creation time.
Decryption Failure Handling
When a cloud session’s encrypted password cannot be decrypted with the local masterKey (common when changing devices or when the masterKey is inconsistent):
- Clear that session’s local password (keeping the rest of the session info).
- Upload the password-cleared session to the cloud.
- List all sessions that failed to decrypt in the sync result dialog.

Users can manually re-enter the passwords for these sessions later.
10.4 Master Key Recovery
If you forget the recovery password or the masterKey is lost, you can recover it via security questions.
Recovery Flow
- Click “Forgot recovery password” in the login dialog.
- In the recovery form, enter the recovery password.
- After the server verifies the recovery password, it returns the masterKey.
- The client saves the masterKey, restoring decryption capability.

MasterKey Inconsistency Handling
When a manual sync detects that the local and cloud masterKeys are inconsistent, a master key recovery dialog appears:
- Security: the cloud does not store your masterKey in plaintext; your masterKey is encrypted with your recovery password and stored.
- Recover: obtain the cloud masterKey via the recovery password to overwrite the local one.
- Cancel: keep the local masterKey, only sync data that does not involve passwords.
10.5 First Cloud Sync Prompt
On first login with cloud sync enabled, if the cloud already has data while the local is empty (e.g. first use on a new device), a cloud sync prompt dialog appears, asking whether to pull data from the cloud.

Selecting “Yes” downloads sessions/settings etc. from the cloud and merges them locally; selecting “No” keeps the local empty state, and you can manually sync later.
10.6 Auto Update
WxTerm supports in-app checking and downloading of updates.
Check for Updates
- Menu “Help → Check for Updates”.
- If there is a new version, an update dialog appears showing the version number and update content.
- You can choose to download the update immediately or be reminded later.

Auto update feature is available in all plans.