@emqx/mqttx
AMQTTX is a cross-platform MQTT 5.0 client tool open sourced by EMQ, which can run on macOS, Linux and Windows, and supports formatting MQTT payload.
Install
agr install @emqx/mqttx --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "MQTTX", "version": "1.13.0", "description": "MQTT desktop client", "author": "EMQX Team yusf@emqx.io", "scripts": { "version": "yarn run gen:version && git add -A .", "vue:electron-build": "cross-env NODE_OPTIONS="--openssl-legacy-provider --experimental-fetch" vue-cli-service", "vue:electron-serve": "cross-env NODE_OPTIONS="--dns-result-order=ipv4first --experimental-fetch" vue-cli-service", "serve": "vue-cli-service serve", "build": "vue-cli-service build", "gen:version": "node ./scripts/gen-version.js", "electron:build": "yarn run gen:version && yarn vue:electron-build electron:build --win --linux --mac", "electron:build-win": "yarn run gen:version && yarn vue:electron-build electron:build --win", "electron:build-linux": "yarn run gen:version && yarn vue:electron-build electron:build --linux", "electron:build-mac": "yarn run gen:version && yarn vue:electron-build electron:build --mac", "electron:serve": "yarn run gen:version && yarn vue:electron-serve electron:serve", "electron:serve:sql_debug": "cross-env VUE_APP_SQL_DEBUG=true yarn electron:serve", "postinstall": "electron-builder install-app-deps && node scripts/patch-mcp-sdk.js && node scripts/patch-monaco-clipboard.js && node scripts/patch-azure-sdk.js && node scripts/patch-typeorm-uml.js", "postuninstall": "electron-builder install-app-deps && node scripts/patch-mcp-sdk.js && node scripts/patch-monaco-clipboard.js && node scripts/patch-azure-sdk.js && node scripts/patch-typeorm-uml.js", "format": "prettier --write "src//*.ts" "src//.vue" "src/**/.scss" "web//*.ts" "web//.vue" "web/**/.scss" "cli//*.ts" "cli//.js"", "lint": "eslint --fix --ext .ts,.vue src", "test:e2e": "vue-cli-service test:e2e", "test:unit": "vue-cli-service test:unit", "typeorm": "ts-node -P tsconfig.commonjs.json ./node_modules/typeorm/cli.js -f ormconfig.ts", "db:log": "yarn typeorm schema:log", "db:migration:show": "yarn typeorm migration:show", "db:migration:generate": "yarn typeorm migration:generate --pretty", "db:migration:create": "yarn typeorm migration:create", "db:migration:run": "yarn typeorm migration:run", "db:migration:revert": "yarn typeorm migration:revert", "db:migration:sync": "yarn typeorm schema:sync", "db:migration:clean": "yarn typeorm schema:drop", "db:diagram": "ts-node -P tsconfig.commonjs.json ./node_modules/typeorm-uml/bin/run ormconfig.ts -d ./src/database/database.png" }, "main": "background.js", "engines": { "node": ">=18" }, "dependencies": { "@ai-sdk/anthropic": "^1.1.11", "@ai-sdk/azure": "^1.3.13", "@ai-sdk/deepseek": "^0.1.12", "@ai-sdk/google": "^1.2.12", "@ai-sdk/openai": "^1.3.15", "@ai-sdk/xai": "^1.1.12", "@electron/remote": "^2.1.2", "@modelcontextprotocol/sdk": "^1.7.0", "ai": "^4.2.0", "appdata-path": "^1.0.0", "avsc": "^5.7.7", "axios": "^0.21.2", "cbor": "^9.0.1", "compare-versions": "^6.0.0-rc.2", "core-js": "^2.6.11", "crypto-js": "^4.2.0", "csvtojson": "^2.0.10", "echarts": "^5.4.3", "electron-store": "^8.1.0", "electron-updater": "^5.3.0", "element-ui": "^2.15.5", "fix-path": "3.0.0", "fs-extra": "^8.1.0", "js-yaml": "^4.1.0", "json-bigint": "^1.0.0", "json2csv": "^5.0.3", "log4js": "^6.4.0", "moment": "^2.29.4", "monaco-editor": "^0.25.2", "mqtt": "4.3.7", "msgpackr": "^1.11.0", "pbkdf2": "^3.1.5", "prismjs": "^1.29.0", "protobufjs": "^7.5.4", "reflect-metadata": "^0.1.13", "rxjs": "6.2.0", "sqlite3": "5.1.6", "sudo-prompt": "^9.2.1", "typedi": "^0.8.0", "typeorm": "^0.2.34", "typeorm-typedi-extensions": "^0.2.3", "vm2": "^3.9.18", "vue": "^2.6.12", "vue-class-component": "^7.0.2", "vue-click-outside": "^1.1.0", "vue-clipboard2": "^0.3.1", "vue-grid-layout": "2.4.0", "vue-i18n": "^8.11.2", "vue-json-tree-view": "^2.1.6", "vue-markdown": "^2.2.4", "vue-property-decorator": "^8.5.1", "vue-router": "^3.4.9", "vue-rx": "6.2.0", "vuex": "^3.0.1", "vuex-class": "^0.3.2", "xlsx": "^0.17.0", "xml-js": "^1.6.11", "zod": "^3.24.2" }, "devDependencies": { "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@types/chai": "^4.1.0", "@types/electron-devtools-installer": "^2.2.0", "@types/fs-extra": "^8.0.0", "@types/js-yaml": "^4.0.5", "@types/json-bigint": "^1.0.4", "@types/json2csv": "^5.0.3", "@types/lodash": "^4.14.142", "@types/mocha": "^5.2.7", "@types/node": "^18.19.76", "@types/pbkdf2": "^3.1.2", "@types/prismjs": "^1.26.0", "@types/sqlite3": "^5.1.0", "@types/ws": "^8.2.1", "@typescript-eslint/eslint-plugin": "^3.8.0", "@typescript-eslint/parser": "^3.8.0", "@vue/cli-plugin-babel": "^3.12.1", "@vue/cli-plugin-e2e-cypress": "^3.12.1", "@vue/cli-plugin-typescript": "^3.12.1", "@vue/cli-plugin-unit-mocha": "^3.12.1", "@vue/cli-service": "^4.5.13", "@vue/eslint-config-prettier": "^6.0.0", "@vue/test-utils": "1.0.0-beta.29", "babel-plugin-component": "^1.1.1", "babel-plugin-prismjs": "^2.1.0", "chai": "^4.1.2", "cross-env": "^7.0.3", "electron": "39.2.7", "electron-devtools-installer": "^3.1.1", "eslint": "6.5.1", "eslint-config-prettier": "^6.11.0", "eslint-plugin-prettier": "^3.1.4", "husky": "^4.3.0", "lint-staged": "^10.4.2", "monaco-editor-webpack-plugin": "^4.0.0", "prettier": "^2.0.5", "raw-loader": "^4.0.2", "sass": "~1.32.13", "sass-loader": "^8.0.2", "ts-node": "10.9.2", "typeorm-uml": "^1.6.4", "typescript": "^4.9.5", "vue-cli-plugin-electron-builder": "^2.1.1", "vue-eslint-parser": "^7.0.0", "vue-template-compiler": "^2.6.12" }, "browserslist": [ "> 1%", "last 2 versions" ], "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { ".{vue,ts,js,scss}": [ "prettier --write "src//*.ts" "src//.vue" "src/**/.scss" "web//*.ts" "web//.vue" "web/**/.scss" "cli//*.ts" "cli//*.js"" ] }, "license": "Apache-2.0", "repository": "https://github.com/emqx/MQTTX", "resolutions": { "electron-builder": "23.6.0", "webpack": "4.47.0" } }
Repository README
Describes emqx/MQTTX as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.
MQTTX is a cross-platform MQTT 5.0 client tool open sourced by EMQ, which can run on macOS, Linux and Windows, and supports formatting MQTT payload.
MQTTX simplifies test operation with the help of a familiar, chat-like interface. It’s easy and quick to create multiple, simultaneous online MQTT client connections, and can test the connection, publishing, and subscription functions of MQTT/TCP, MQTT/TLS, MQTT/WebSocket as well as other MQTT protocol features.
MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks.
Preview

Installation
Currently available for download from these app stores
macOS App Store
Homebrew
The macOS users can install MQTTX using brew cask
brew install --cask mqttx
Linux
Released Packages
Download from GitHub Releases and install it.
Alternative, you can download here.
Usage
See our documentation or manual for details.
-
Get MQTT Broker Ready.
-
If you do not need to deploy the MQTT Broker locally, you can use the public MQTT 5.0 Broker provided by EMQX Cloud for testing:
Broker IP: broker.emqx.io Broker TCP Port: 1883 Broker SSL Port: 8883 -
To run MQTT Broker locally, EMQX is recommended: An Open-Source, Cloud-Native, Distributed MQTT Broker for IoT.
-
-
Connection configuration. Click the
+button in the left menu bar and fill in the corresponding required fields in the form. -
After the connection information is configured, click the
Connectbutton in the upper right corner to create a connection and connect to MQTT Broker. -
After the MQTT is connected successfully, you can perform MQTT publish and subscription tests.

Better Together with EMQX
MQTTX is designed to connect to test MQTT Brokers such as EMQX, The one-click connection and simple graphical interface make it easy to connect to EMQX or EMQX Cloud to debug and explore functional features.
Sign up EMQX Cloud for 14 days free trial
Download EMQX locally right now
Get Involved
- Follow @EMQTech on Twitter.
- If you have a specific question, check out our discussion forums.
- For general discussions, join us on the official Discord team.
- Keep updated on EMQX YouTube by subscribing.
Develop
Recommended version for Node environment:
- v18.*.*
# Clone
git clone git@github.com:emqx/MQTTX.git
# Install dependencies
cd MQTTX
yarn install
# Compiles and hot-reloads for development
yarn run electron:serve
# Compiles and minifies for production
yarn run electron:build
After the building is successful, the corresponding installation file for the successful build ing will appear in the dist_electron directory.
If you need to package it as an installation package for an independent operating system, please refer to the following command:
# For Windows
yarn run electron:build-win
# For Linux
yarn run electron:build-linux
# For macOS
yarn run electron:build-mac
Contributing
Please make sure to read the Contributing Guide before making a pull request.
Technology Stack
Resources
-
A series of blogs to help developers get started quickly with MQTT in PHP, Node.js, Python, Golang, and other programming languages.
-
We have selected popular MQTT client SDKs in various programming languages and provided code examples to help you quickly understand the use of MQTT clients.
License
Apache License 2.0, see LICENSE.
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-c185fda8da3f2026-08-06