Settings
Settings opens as a dialog over your workspaces, and your terminals keep running behind it. This page goes through each category in the order the app lists them.
Open Settings
Press Cmd+, (Ctrl+, on Windows) or click Settings at the bottom of the sidebar. The dialog opens on Appearance. A few buttons elsewhere open it on another category: the settings link in the Token Meter popover opens Token Meter, the Enter License Key button in the upgrade prompt opens License & Activation, and the gear in the Machines header and the key icon in the title bar (shown while the access password is on) open Remote Access & Devices. Close it with Esc, the × button, or a click outside the dialog.
| Category | What it holds |
|---|---|
| General | Whether MXterm Pro opens when you log in |
| Appearance | Interface language (eleven to choose from), text contrast, inactive pane dimming, focused pane colour, light or dark mode, theme |
| Terminal | Font and text, copy on select, default shell, SSH working directory, Claude Code status line, Chat view |
| Agents | Which agent CLIs are installed, and whether Control Room (formerly War Room) and MCP are set up for each |
| Notifications | Sound, banners and the Dock badge, which events notify, and on or off per agent |
| Token Meter | Which provider is pinned first, plan limits for Claude and Codex, and API keys for account balances |
| Shortcuts | The keyboard shortcut list with a search box, rebinding, and Reset all to default. See Keyboard shortcuts |
| Account | Signing in to your MXterm account, and approving devices that ask to join it |
| License & Activation | Activating a Pro licence on this computer, with a key or with your MXterm account, and freeing its seat |
| Remote Access & Devices | Sharing this computer's panes with paired devices: the host server, the local network switch, start at launch and keep awake, the pairing code, the access password, paired devices, how long pictures received from other devices are kept |
| My Devices | Opening your other Macs that are signed in to the same account, with no pairing code or password (Pro) |
| Privacy | Usage reporting and the diagnostic file |
| Feedback | Sending a suggestion, a feature idea or a bug report by email |
| Updates & About | Your version and build number, update checks, a preview of the update card, open-source licences |
Most category names are shown in English in every interface language. General, Agents, Account, My Devices, Privacy and Feedback have translations of their own: the Vietnamese interface shows Chung, Agents (unchanged), Tài khoản, Máy của tôi, Quyền riêng tư and Góp ý.
General
One setting: Open at login, which starts MXterm Pro when you log in to the computer. The switch reflects what your operating system currently has registered, so turning it off elsewhere, in macOS System Settings for instance, shows up here.
Appearance
| Setting | Choices | Default |
|---|---|---|
| Display Language / Ngôn ngữ | English, Bahasa Indonesia, Tiếng Việt, 简体中文, 日本語, 한국어, Español, Français, Türkçe, Português (Brasil), Deutsch | The first language in your system's language list that MXterm Pro has, otherwise English |
| Minimum Text Contrast | Off (theme as shipped), 3:1, 4.5:1, 7:1 | 4.5:1 |
| Inactive Pane Dimming | A slider from Off to 70%, with a Default button | 40% |
| Focused Pane Colour | Soft white, Light grey, Blue, Green, Violet, Amber, Red | Soft white |
| Theme | MXterm Classic, MX Dark Pro, MXterm Midnight, Tokyo Night, Catppuccin Macchiato, One Dark Pro, MXterm Ember, Solarized Dark, MXterm Black, MXterm Slate | MXterm Classic |
Minimum Text Contrast lifts terminal colours that sit too close to the background; the rest of the theme's palette stays as it is. Focused Pane Colour is the colour of the border that marks the active pane, and Inactive Pane Dimming is how far the other panes fade back; a pane that is alone in its tab is never dimmed. MXterm Black and MXterm Slate do not fade inactive panes to grey: they darken them with black, and the same slider sets how much. All ten themes are dark. The theme applies to the sidebar, the tabs and every terminal pane, and you pick it by hand.
Display Language / Ngôn ngữ is one menu: it shows the current language, and opening it lists all eleven. English, Indonesian, Vietnamese and Chinese come first, then Japanese, Korean, Spanish, French, Turkish, Portuguese (Brazil) and German. Each row shows the language's own name, with the English name muted beside it when the two differ, and a check marks the current one. There are no flags. Simplified Chinese, Japanese, Korean, Spanish, French and Turkish were added in 1.1.11, and Indonesian, Portuguese (Brazil) and German after that. A choice applies at once.
Terminal
| Setting | Choices | Default |
|---|---|---|
| Font (under Text) | Default (Monaco), System Monospace, Menlo, Monaco and other Mac fonts, Consolas on Windows and DejaVu Sans Mono and Ubuntu Mono on Linux (the list shows all of them on every system, each tagged with its platform); JetBrains Mono, Fira Code and Cascadia Code if you install them; Custom… for any font family name | Default (Monaco) |
| Size | 8 to 32 px | 12 px |
| Line height | 1.0 to 2.0 | 1.14 |
| Minimum columns | Off (0), or 10 to 200 in steps of 10 | 80 |
| Ligatures | On, off. Needs a ligature font such as JetBrains Mono, Fira Code or Cascadia Code | Off |
| Copy on Select | On, off. Copies highlighted terminal text to the clipboard | Off |
| Shell | On macOS: Default, zsh, bash, fish. On Windows: Default (PowerShell), PowerShell, Command Prompt, and PowerShell 7, Git Bash and WSL when they are installed. A shell that isn't installed is greyed out | Default |
| Default SSH Working Directory | Home Directory (~), Custom Directory Path | Home Directory (~) |
| Manage Claude Code's status line (under Agent status line) | On, off | On |
| Chat view (experimental) | On, off | Off |
Text settings apply to open terminals straight away, and Reset to default puts them back. On macOS, fonts the computer doesn't have are marked not installed in the list. On Windows the app cannot read the installed-font list, so each named font is marked availability unknown. Shell only affects panes created after you change it; running terminals keep their shell.
Minimum columns keeps a program from being squeezed. A pane narrower than that many columns shows smaller text instead, in half-pixel steps, so the program still gets that many columns; a full-screen program told the pane has 13 columns wraps its output at that width, and the wrapping stays when the pane is widened again. The text grows back once the pane is wide enough, and never above Size (or the pane's own zoom). If fitting the columns would need text smaller than 8 px, the pane is not shrunk and the program gets the real number of columns, as with the setting off. It is on by default, at 80, and applies to panes on this computer. Lower it in steps of 10, down to Off (0), to switch it off. Reset to default puts it back to 80.
Default SSH Working Directory sets where a connection opened from the SSH & SFTP Manager starts. A default directory saved on the host itself takes priority. Remember Last Session Directory was removed in 1.0.22: it had always behaved the same as Home Directory (~), because the app never recorded a last directory. See SSH and SFTP.
With Manage Claude Code's status line on, the app writes a statusLine entry to ~/.claude/settings.json, so Claude Code panes show whether Claude Code reached MXterm Pro's MCP server and how much of the session's context is used. If you already have a custom status line, it is left untouched.
With Chat view (experimental) on, panes running Claude Code, Codex, omp or Grok can switch between the terminal and a readable chat of the conversation, read from the agent's own transcript file. Switch a pane from its header or with Cmd+Shift+J (Ctrl+Shift+J on Windows). A new agent pane opens in the view you last chose, which is Chat until you pick Terminal, and each pane keeps the view it was last in. Chat is an overlay, so switching never touches the running program.
Agents
Agents has one row for each of the 27 coding agents MXterm Pro can launch, listed on the Agents page. Refresh checks again. A row shows:
- Installed or Not installed. MXterm Pro looks for the agent's executable in the same places as the workspace composer. It only looks at the file names in those folders and never runs the program. For Cursor Agent the file is
cursor-agent, notcursor, which is the editor's launcher. - Whether the agent has reached Control Room: Not in a Control Room,
N panes in a room · M connected, or In a room, but has not called MXterm yet. Panes are counted by the agent they were opened as, so a plain shell where you typed the agent's name yourself is not counted. - Whether MXterm Pro sets up its MCP tools for that agent, either MXterm sets up its tools for this agent (Claude Code, Codex, Gemini CLI, Grok and OMP) or Tool setup not verified for the others, which may need the manual setup described in Coding agents and Control Room.
- The Skip-permissions flag that Bypass Mode adds, for the agents that have one. For Goose, which has no flag, the row shows the environment variable
GOOSE_MODE=autoinstead. - For an agent that is not installed, How to install opens the install command with Copy command and a link to the vendor's page. MXterm Pro never runs the install for you. Agents whose vendor gives no install command, such as Amp, Cursor Agent, Antigravity and Aider, show a link to the vendor's page instead.
Worktrees MXterm created is a card on the Agents screen. It lists the folders under .worktrees/ that MXterm made for agents or isolated tabs, found through your recent folders. Press Show list to load it: nothing is scanned in the background, and nothing is removed automatically. Each row shows the branch, the path, the size, how long ago the folder changed and a chip: Safe to remove, Uncommitted changes, Not merged or In use (a pane is open in it, so close the pane first). Remove asks you to confirm, and asks a second time when uncommitted changes or unmerged commits would be lost; the branch is always kept. Clean stale entries appears when git still lists a worktree whose folder is gone.
Show signed-in accounts is off by default. Switched on, MXterm Pro reads the account email from each agent's own file (~/.claude.json, ~/.codex/auth.json, ~/.gemini/google_accounts.json and ~/.grok/auth.json; Claude Code and Codex follow CLAUDE_CONFIG_DIR and CODEX_HOME when they are set) and shows it on that agent's row, or No account found. Only the email is read: never a token, and never the Keychain. Switching it off drops the emails from memory at once.
Notifications
| Setting | Default | What it does |
|---|---|---|
| Agent notifications | On | The master switch. Off silences the chime, the banners and the Dock badge |
| Sound Notifications | On | Plays a sound when an agent is blocked or finishes a task |
| System Desktop Notifications | On | Shows a system banner. Clicking it opens that pane |
| Only when MXterm Pro is in the background | Off | Off, you also get a banner for a pane in another tab while you work in this window |
| Show terminal text in banners | Off | Adds the agent's terminal title to the banner text |
| Dock badge | On | A count of panes waiting on you. macOS only; on Windows the switch has no effect |
| Notify me when | All three on | An agent finishes, An agent needs your input, An agent stops unexpectedly |
| Per Agent Notifications | On for each agent | Turns alerts on or off for Claude Code, Codex, OpenCode, Qwen Code, Gemini CLI, Cursor Agent, OMP, Grok and Goose separately |
Only the nine agents whose state MXterm Pro can read appear in the per-agent list. Plain shell panes don't send notifications. What a banner says and where a click takes you is in Coding agents and Control Room.
Token Meter
Pinned to the top comes first. It is a menu that picks which provider the Token Meter popover lists first: Claude Code, Codex, Gemini, Other agents, DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter or Z.ai, or None (fixed order). Claude Code is pinned by default. The popover still lists every provider you have set up, and the figure in the title bar does not follow the pin: it still follows the limit closest to running out.
Under Plan limits there are two switches, both off by default.
- Show real limit percentages for Claude: the app reads Claude Code's sign-in from your macOS Keychain through the system
securitytool, so macOS does not ask each time, and callsapi.anthropic.comto read your plan usage. The token is held in memory only, and your transcripts are not sent. Off, the meter shows tokens used instead of a percentage. If macOS refuses the read, the switch stays off until you turn it on again. If Claude Code isn't signed in on this Mac, runclaudein a terminal to sign in, then try again. Starting MXterm Pro withMXTERM_DISABLE_KEYCHAIN=1blocks the read whatever the switch says, for machines where reaching another app's keychain item is not allowed. This works on macOS only. The switch still appears on Windows, but the app cannot read Claude Code's sign-in there, so it reports that Claude Code is not signed in whether or not it is. - Live Codex limits: the app reads Codex's own ChatGPT sign-in from
~/.codex/auth.jsonand sends it only tochatgpt.com. It never changes or refreshes that sign-in, and a sign-in that Codex keeps in the system keychain is not read, so runcodex loginif the panel says there is none. Left off, Codex's limits still show, read from its session files on this machine, so only as current as your last Codex turn.
Below that, Account providers takes an API key for DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter and Z.ai, so the meter can show what is left on those accounts. Paste a key and click Save; the row then shows Key saved · …abcd, the last four characters, and Remove clears it. Moonshot, MiniMax and Z.ai also have a Region menu: International or China for Moonshot, Global or China for MiniMax and Z.ai, with the first choice as the default. For Z.ai a key only works in its own region. If the Kimi Code CLI is already signed in on this computer, the Kimi row picks up that sign-in from ~/.kimi-code and says so; a key you paste takes precedence. The panel states where keys go: Keys are stored in the macOS Keychain and only sent to that provider. On Windows the keys are stored through the system credential store rather than the macOS Keychain, although the panel text still says macOS Keychain.
What the meter itself shows is covered in Token Meter.
Account
Account is where you sign in to your MXterm account. Signed out, the card reads MXterm Account, with the line Sign in to see and control your other machines without setting up a share each time. and a Sign in with MXterm Account button. The button opens your browser and reads Waiting for the browser… until you finish. If it fails the card says Could not sign in: followed by the reason. Signed in, the card shows Signed in as and your email, with a Sign out button.
While you are signed in, a Devices waiting to join card lists any device that asked to join this account. Check that the code matches what the other device shows, type its last 4 digits and click Approve. The card is hidden when nothing is waiting.
Signing in is free. It is also what lets you activate Pro with a seat from your team in License & Activation, and My Devices needs it.
License & Activation
Pro is unlocked per computer by activating your licence key here, or with your MXterm account when a seat on a licence was given to it.
- Open Settings and choose License & Activation.
- Paste the key from your purchase email (it looks like
MXTERM-XXXX-XXXX-XXXX-XXXX) into the field under Activate License Key. - Click Activate.
Got a seat from your team? Under the key field, Sign in to MXterm signs you in through your browser, and then Activate as followed by your email activates this computer with your account, with no key. If your account has seats on more than one licence, the panel asks you to pick one. A computer activated this way never shows you the key.
Activation contacts mxterm.net. It sends the key, a hash of this computer's hardware ID, the computer's name, the app version and the operating system. The server counts the computer against your licence's device limit and returns a signed licence token, which the app stores. After that the app checks the licence again online at each launch (at most once an hour) and every 24 hours while it runs. If mxterm.net cannot be reached, nothing changes and Pro keeps working offline. Pro is dropped only when the server gives the same clear refusal twice in a row. Pasting a wrong or mistyped key does not take away a valid licence this computer already has: the form shows the error and the licence stays as it was. When a licence is dropped, by the online check, Deactivate Device or Remove from this device anyway, it is dropped everywhere in the app at once, with no restart.
Once activated, the panel shows the licence as Active, with the activation date and, under Device Limits, how many of your devices are in use out of your limit. When the server has not reported the limit, the panel shows — rather than a figure it would have to invent. No key yet? Click Get MXterm Pro in the panel, or see Pricing.
If an online check takes Pro away from this computer, the panel says why: a refund was issued, the licence was revoked, the key is no longer valid, or this computer was removed from the licence because its seat went to another one. Enter the key again to take a seat back.
| If activation says | Do this |
|---|---|
| This license is already active on the maximum number of devices. | Free a device in your account, then activate again. |
| License not found. Check the key from your purchase email. | Copy the key from the email again, with no extra characters. |
| Could not reach mxterm.net. Check your connection and try again. | Activation needs the network once. Try again when you are online. |
| Your license was accepted, but this app build could not confirm it. Please update MXterm Pro and try again, or contact support if it persists. | The key worked. Update MXterm Pro to the latest version, then activate again; the same computer does not use a second seat. If it keeps happening, contact support. |
Deactivate Device frees this computer's seat so you can use it elsewhere. It asks first (Deactivate this device? / This frees this device's seat on your license, so you can activate it on another computer. Pro features stop on this device.), and confirming shows Freeing the seat… while it tells mxterm.net, then This device's seat is free. You can activate your license on another computer.
Remote Access & Devices
This category is the host side of Panes on another MXterm: it lets other devices see, and if you allow it type into, the panes you choose. It takes over the whole Settings dialog as its own screen titled Remote Access & Paired Devices, with a back arrow and three tabs: Connect, Devices and Advanced. The gear in the Machines header in the sidebar opens it directly. The server is stopped until you click Start Server, unless Start the host server when MXterm opens is on. In Advanced, Delete pictures received from other devices after removes pictures a phone, iPad or another computer sent to this Mac after 7 days by default (Off, or 1, 3, 7, 14 or 30 days). Clean now runs it at once and asks first when the setting is Off. Control Room history and your own attachments are never touched, and pictures a phone pastes into a pane are always removed after 24 hours.
- A badge names the network the server would use: Tailscale Mesh VPN (Worldwide Access), Local Wi-Fi Network (LAN Only) or This Mac Only (Offline). MXterm Pro picks a Tailscale address if the computer has one. A private local-network address (
10.x,172.16to172.31.xor192.168.x) is used only when Allow devices on my local network (not encrypted) is on, and then in addition to Tailscale. When both a local-network address and a Tailscale address answer, the local-network one is listed first and leads the pairing QR. That switch is off by default. Otherwise the server stays on127.0.0.1, which only this computer can reach. If the only reachable address is a local-network one and the switch is off, Start Server refuses and says why. The server never serves on a public address. - Start Server and Stop Server turn the listener on and off, and the card's title names the network: Host server · Tailscale, Host server · Local network or Host server · Local. While it runs the panel reads Bound to followed by the address. The port is 6868. MXterm Pro tries the port it bound last time first, then 6868 up to 6877, so a saved address keeps working unless another program took that port. If all ten are taken the panel says so.
- Under the server controls, Allow devices on my local network (not encrypted) is off by default. Off, the server listens only on Tailscale, which encrypts. On, it listens on your Tailscale address and also on each private local-network address of this computer, in plain text, so anyone on that Wi-Fi who can watch the traffic can copy a paired device's token and open the panes you share. Turning it on asks you to confirm and does not start the server. Turning it off stops a server that was listening on the local network. Earlier versions used the local network on their own; now it stays off until you allow it.
- Allow remote bypass, next to it, is off by default. Off, a device that asks to open a new session can never skip the agent's permission checks, even if it is allowed to create sessions. On, a request that asks for bypass gets it, and this Mac shows which session was opened that way.
- The pairing card is one centred column. First comes the 6-character pairing code, in one box with its countdown (it expires after 5 minutes). Two icon buttons sit at the end of the box: copy, which puts the code on your clipboard, and New Code, a refresh icon that makes another. When there is no valid code, the app makes one for you. While the host is off, a short line under its switch hints at which way to connect: over your local network once the switch is on, with this Mac's address (or a reminder to turn on Allow devices on my local network), and Tailscale, which it says it found or how to get. Below the code a line says to press New Code to show the QR code: the QR code, which holds the address and the code, to scan with the MXterm app on a phone, appears only after you press that button. Then each address to open on the other device, with its route name and one copy button at the end of its row. A device signed in to the same MXterm account can also ask to pair without a code: the Mac shows an Allow / Deny prompt with digits to compare against the ones the device shows, and Allow pairs it. The request expires after 90 seconds, and a device of another account is refused.
- On a local network the connection is not encrypted, and the panel warns that anything on that Wi-Fi which gets the token can open the panes you share. Use a network you trust, or Tailscale, which encrypts. When Tailscale is not installed the panel offers Install Tailscale; when it is installed but not connected, the panel tells you to sign in. Under either hint, the link How to use Tailscale with MXterm Pro opens a guide to which address the host binds on mxterm.net. While the host runs with local-network access on, MXterm Pro is built to announce itself with Bonjour so nearby phones can find it; the announcement carries no token and grants no access.
- Attached now lists each device connected to a shared pane right now, with the pane and the time it connected, and a Disconnect button. Disconnect ends that device's session on that pane only and keeps it out until you share the pane again. Its pairing stays.
- Authorized Remote Devices lists each paired device with its kind, Browser or MXterm app, when it paired and when it was last seen. Revoke removes a device. Each device has a Can create new sessions switch, off for every newly paired device. On, that device can open a new pane on this computer from its own screen. Each device also has Can manage Control Rooms, off by default: on, the MXterm app on that phone or computer can create a Control Room, choose its coordinator, add or remove its members and delete a room (a tab's main room cannot be deleted) from its own screen. The Free limits on rooms and members apply there as on this computer. Before it does, the MXterm app on a phone shows which agents are installed on this computer, found by the same scan as Settings → Agents; an agent the scan could not check is still offered. Each device also has Hide all panes: while it is on, that device sees no panes from this computer and cannot open or type into any. Clean up devices unused 30+ days removes the stale ones in one click. A device of either kind that goes unused for 30 days stops working on its own, and each use starts the 30 days again. An MXterm app you paired stays paired when this host restarts: the host keeps a hash of its token, never the token.
The globe in the title bar opens the same pairing code, QR code and addresses without going into Settings. Each address is listed first, with its route (Local network or Tailscale, the local network first when both answer) and one copy button at the end of its row. Under the addresses the code sits centred in one box with its countdown, a copy icon and a New Code icon button. The QR code is not shown at first: a line under the box says to press New Code, and the QR code appears under the box after you do. The app makes a code for you when there is none. Opening the menu from the keyboard and pressing Enter does not flip the master switch; move with an arrow key or Tab first. A click anywhere outside closes the menu. With no route yet, the menu offers the next Tailscale step: Download Tailscale when it is not installed, Open Tailscale when it is installed but off, and a How it works link. When Tailscale connects it says so and, if no other device is there yet, asks you to sign in to Tailscale on your phone with the same account. The Cloudflare WARP card appears in the menu only while WARP is really blocking Tailscale.
One more card can appear in Setup & Server. A Cloudflare WARP card shows only when WARP is installed (or to warn about another VPN carrying all traffic). WARP can block Tailscale while Tailscale still reads Connected, and the card's switch adds the addresses it needs to WARP's exclude list, then removes exactly what it added when you switch it off.
Nothing is shared by default. You share a pane from the globe in its header. Choose Control (paired devices can view and type, one device at a time) or View only (they cannot type), then how long: 30 minutes, 1 hour, 8 hours or until you stop it. To share every pane of the main window instead, turn on Share all panes in the title-bar globe, which shows while the host server runs. Pick Control or View in the row's two-part switch and a time from its drop-down (1 hour, 4 hours, 8 hours or Until off) first; both are remembered. The first time it is View for 1 hour, and Control is one click with no confirmation. Panes you open while it is on are shared too, the share ends by itself at the deadline, and switching it off unshares only the panes it shared. While it is on, the row shows how many panes are shared right now, counting panes you shared by hand. The Free limit on panes shared at once still applies, and the menu says how many panes it could not share.
On the Free plan, by default, 1 other computer can be paired to control this one, and up to 5 panes can be shared at once. The MXterm phone app (iPhone, iPad) is not counted toward the limit of 1 other computer that can control this Mac. Only other computers running MXterm count; browsers do not. Under the pairing code a note reads, for example, Free: 1 of 1 other computer can control this one. Phones and tablets are not limited., with an upgrade button once the limit is reached. A new computer past the limit is refused when it pairs, and allowing one from a pairing request opens the upgrade prompt. Sharing a sixth pane opens the upgrade prompt too. Neither limit removes a pairing or a share that already exists. mxterm.net can change these numbers. Pro has no limit on either. See Pricing.
The host ends a share at its deadline, and switching between the two modes keeps the time left. While a pane is shared, its header button (an eye when it is View only) shows the time left, if the share has a deadline, and how many devices are attached. MXterm Pro is built to restore shares after a restart once each pane runs again. See Panes on another MXterm.
Phone notifications (coming soon)
- Phone notifications are not available yet. This describes how they are designed to work, and only the status will change when they ship.
- The Mac side has a switch, Notify my phone when an agent needs me or finishes, under Settings → Remote Access & Devices → Advanced. It is off by default and needs you to be signed in to your MXterm account. While it is off, the Mac sends nothing. The iPhone app does not register for these notifications yet, so no phone receives anything today.
- You are notified when an agent needs you and when an agent finishes.
- While you are at the Mac, the Mac sends nothing. No keyboard or mouse input for 2 minutes counts as away. A second switch under the first, Also notify my other devices while I am at this computer, is off by default; turn it on to be notified anyway, for example to test. It works only while the first switch is on.
- The notification holds only the agent, the folder, the names of the pane and its tab and, when an agent finishes, how long it worked, never terminal text, prompts, commands or paths. The pane name is the one you gave it, or the agent's name if you did not; a title a program sets in the terminal is never sent. It can also carry one short line with the question an agent asks (a plain question only, never a permission request; at most 120 characters; links, file paths, email addresses and keys are removed on your Mac, and a line that mentions a password, token or secret is not sent). This line is on by default once phone notifications are on; turn it off with “Include a short summary in phone notifications” in Settings → Remote Access & Devices → Advanced. These names and that line pass through MXterm's server and Apple to reach your lock screen; MXterm does not store them. For a plain question (never a permission prompt) it can also carry an id for that question, so a phone can answer it.
- For a permission prompt, the banner can offer Approve and Decline, and the phone must be unlocked. iOS limits what runs while the app is closed, so an action may wait until you open the app.
- You choose which events, which computers and which quiet hours.
- They are free on every plan. They start on iPhone, and Apple Watch mirrors the banner.
- Notifications are sent through Apple's push service. For what mxterm.net keeps, see the privacy policy.
Unattended access
Unattended access is a card in Remote Access & Devices for reaching this computer when nobody is sitting at it. It has two switches, and under each one it says what is happening now.
- Start the host server when MXterm opens is off by default. On, MXterm Pro starts the host server each time it launches. Together with Open at login in General, the computer is reachable again after a restart. Shares are restored once each pane is back, so a restart does not by itself end a share.
- Keep this Mac awake while a pane is shared is on by default (Keep this computer awake while a pane is shared on Windows). It stops idle sleep while the host server runs and at least one pane is shared. The screen can still turn off.
If the network is not up when MXterm opens, the start retries after 5 seconds, then 10 seconds, then every 15 seconds. It gives up after 5 minutes if there is still no network or the start keeps failing, and the card says why. Clicking Start Server or Stop Server, or turning the switch off, ends the retrying.
If the last start was on Tailscale, it waits for Tailscale during those 5 minutes rather than start on a local network address. When Allow devices on my local network is off, it never starts on the local network: after 5 minutes without Tailscale the card says Did not start the server: Tailscale did not connect within 5 minutes, and local network access is off. With the switch on, it uses the local network address only when the time is up.
The computer is held awake only while three things are true: the server is running, at least one pane is shared, and the switch is on. MXterm Pro re-checks every 15 seconds and whenever a share, the server or the switch changes, so a pane closed while shared lets the computer sleep again within about 15 seconds.
This stops idle sleep only. It cannot stop a sleep you cause, such as closing a laptop lid (a Mac on battery still sleeps when you close the lid). If the system refuses, the card says The system refused to keep the machine awake: followed by the reason.
| System | How it stays awake | Note |
|---|---|---|
| macOS | A power assertion of type PreventUserIdleSystemSleep, listed by pmset -g assertions as MXterm Pro: a pane is shared for remote access while it is held | The system drops it when MXterm quits or crashes |
| Windows | SetThreadExecutionState with ES_CONTINUOUS and ES_SYSTEM_REQUIRED, called from one dedicated thread | Read from the code, unverified on a Windows machine |
| Linux | Nothing is held | The switch is not shown |
Access password
The Access password card lets a new device pair with a password instead of a code read off this screen. A device paired this way gets its own token, which you can revoke under Authorized Remote Devices, exactly as with a code. The password opens nothing a pairing code does not. It is off by default.
The password is accepted over Tailscale and, when you allow it, over the local network, where it travels unencrypted. It is never accepted on this Mac's own loopback address. When the server is stopped or listens only on 127.0.0.1, the card says why the password cannot pair anything right now.
Type a password of at least 6 characters and click Save, which sits right of the field, or click the dice button beside it (Generate) for a random passphrase. While the password is on, the card shows a green On badge, and Change the password opens the same field with the same two buttons. A generated password is shown once and cannot be shown again. It is stored as an Argon2id hash in the system credential store (the Keychain on macOS), never in a file. Changing it does not sign out devices that are already paired.
| Mode | What it does | Free | Pro |
|---|---|---|---|
| Temporary | On for a set time, then it turns itself off. The deadline is a clock time, so a restart does not extend it | 1 hour or 8 hours (the default) | 1 hour, 8 hours, 1 day or 7 days |
| Standing | No time limit: it stays on, across restarts, until you turn it off. You confirm first, because anyone on your tailnet who knows the password can pair a new device | Not available: it carries a Pro badge, and Turn on opens the upgrade prompt | Available. It is the mode a Pro licence starts on |
While the password is on, a key icon shows in the title bar: green for Temporary, with the time left on hover, and amber for Standing and for a Temporary one about to expire. Click it to open Remote Access & Devices. Nothing shows while the password is off.
The host limits guessing. After 3 wrong guesses from one address, each further one locks that address out for longer, starting at 5 seconds and doubling up to 15 minutes. It also allows at most 20 wrong guesses every 10 minutes across all addresses.
The three actions below sit under Danger zone, a heading you click to open, centred in the card. Turn off (devices stay) is green: it stops the password pairing new devices, and the devices it already paired stay paired. Sign out all devices revokes every paired browser and MXterm app and disconnects them from every pane, and leaves the password as it is. Turn off and sign out all devices does both. Turn-off actions show only while the password is on. Each asks you to confirm.
To pair another MXterm with this password, open its Machines section. The add-host form and the Pair again dialog offer Code and Password. Choose Password and use this computer's Tailscale address (100.x.y.z) for an encrypted pairing, with Tailscale running on both machines; a local-network address also works but is not encrypted. The error does not say whether the password was wrong or the host has none turned on.
My Devices
My Devices connects to another Mac that is signed in to the same MXterm account, with no pairing code and no password. It needs a signed-in account and Pro. Signed out, it asks you to sign in first and offers an Account button. On Free it shows My Devices is a Pro feature with Upgrade to Pro.
Otherwise it lists the other devices trusted on your account, with a refresh button. Each row shows the device name and a Linked badge once connected, the Can create new sessions switch, an address field and a Connect button, and an Open button once it is linked. Type the other Mac's host address, for example http://192.168.1.50:6868, and click Connect. With no other device the panel reads No other trusted devices yet: sign in to the same account on another Mac and it appears once it links this one back.
Privacy
Usage reporting moved out of Updates & About into its own Privacy category in 1.0.22, alongside a way to produce a support file.
Share anonymous usage data is on by default, and applies to official releases only. Once per launch it sends a single app_open event to Google Analytics with the app version and your operating system, and nothing more to Google Analytics for the rest of that run: there is no repeating heartbeat. Once a day it sends the version, Free or Pro, OS version, CPU type, number of launches, whether the last run crashed, and how often upgrade prompts were shown and clicked. When something fails it sends which of a fixed list of known failures it was, with a reason code. All of it is tagged with a random ID that is not linked to you. It never sends terminal output, file paths, SSH hosts or usernames, or licence keys. Turn the switch off to stop reporting. The full list of what is sent is on Telemetry.
The same switch also controls usage counts: once a day, with the daily check-in, the app sends counts and ranges about which features you use, never what you type or open. The full list is on Telemetry. Turning the switch off stops new usage reports, and usage counts are kept for 400 days.
You can also turn it off outside the app, which is useful on a machine you set up for someone else. Start MXterm Pro with either DO_NOT_TRACK or MXTERM_TELEMETRY_DISABLED set to any non-empty value other than 0, false or no. The environment beats the switch: the switch is then greyed out and labelled Turned off by …, naming the variable.
The Diagnostic file for support card produces a file to send with a support request: App info and recent errors, with sensitive details removed. Nothing is uploaded until you send it: read it here first. From MXterm Pro 1.1.74, Send to MXterm opens Feedback as a bug report with this file already ticked; nothing is sent until you press Send there. Preview shows the file's text in the panel, with Copy and Email support buttons, so you read it before anything is saved or sent. Save file… opens a save dialog that offers mxterm-diagnostics-YYYY-MM-DD.json on your Desktop, then offers Reveal in Finder (Show in File Explorer on Windows) and Email support.
- It holds the app version and whether it is an official or a development build, uptime, your tier and language, your OS, its version and your processor, whether telemetry is on, whether the last run crashed, counts of saved SSH hosts, tabs and panes, which agents you use, which Token Meter providers are set up, and recent failures from a local 14-day list.
- Your home folder is written as
~, and only identifier-shaped values are kept from each failure. - It never contains terminal output, commands, file paths, host names, licence keys or email addresses.
- The finished file is checked before it is written. If anything in it trips the privacy check, nothing is saved and the panel tells you which rule stopped it.
Feedback
Feedback is how you send the MXterm team a message. Choose what it is: Suggestion (an idea or a comment), Improve a feature (something works but could work better) or Report a bug. Then write your message and press Send (older versions show Write the email instead; see below).
From MXterm Pro 1.1.57 on Mac (1.1.58 on Windows and Linux), Send delivers the message to mxterm.net: your name, email and message, the kind, the app version, your operating system and the app language, and the diagnostic file only if you tick it (kept 90 days). Our email provider processes it, and you can send up to 3 per hour. If sending fails, the app offers to open your mail app instead.
In older versions, your mail app opens with a message addressed to support@mxterm.net. The subject names the kind, such as [MXterm 1.1.31] Bug report; the other two are Suggestion and Feature improvement. The body is empty above a short footer with the MXterm Pro version, your operating system and the app language.
In those versions MXterm Pro sends nothing itself: the email goes out only when you press Send in your mail app. Use the contact page instead opens the contact page on mxterm.net. For a bug, the panel suggests attaching a diagnostic file, and Open Privacy takes you to Diagnostic file for support.
Updates & About
The app checks mxterm.net for a new version 5 seconds after launch, then every 4 hours.
When an update exists, an Update to vX.Y.Z button appears at the bottom of the sidebar, under Settings. Click it to download. It shows Downloading… with a percentage, then changes to Restart to update. If the download fails it becomes Retry update, with the error in its tooltip. A small card at the bottom left of the window also says when an update is ready, in a short note that your tabs and chats reopen after the update. If panes are still running, a line says how many and suggests updating once they finish; a restart does end running commands. Close it with the × (not while it downloads); it comes back for a newer version. Preview in Updates & About shows the card with a sample version: its buttons only simulate, nothing is downloaded and the app does not restart.
To check yourself, click Check for Updates in Updates & About, or choose Check for Updates… from the menu of the MXterm Pro icon in the menu bar (the system tray on Windows). The panel shows your version with its build number, such as v1.1.31 · build 2573, and whether you are up to date. If a check fails it says Could not check for updates: followed by the reason, and if a download fails it says Download failed: followed by the reason, rather than reading as up to date. When a version is available it shows the release notes and Download & Install, then Restart to Apply once the download is done. View Update Log shows what the updater did.
There is one release channel and no way to change it. This category also holds Open-source licences, the list of the libraries MXterm Pro is built on.