App info
- Installs
- 5,000+
- Category
- Tools
- Content rating
- Everyone
- Version
- 3.260
- Released
- Dec 19, 2022
- Last updated
- 21 Sept 2026
- In-app purchases
- No
- Contains ads
- No
- Promo video
- No
- Requires Android
- 7.0
Screenshots
Rankings
This app isn't in any of our charts yet.
What's newin version 3.260
- Introduced Linux and Windows desktop versions - New LinearChart modes: PROPORTIONS, STEPS, HISTOGRAM and «Skip repeats» option - Added real-time search to Text Log with non-destructive mode And 7 features, 7 improvements, 8 fixes
About this app
Write JavaScript and control devices via USB, WiFi, MQTT, Bluetooth or HTTP
Read full description
ZenAir is a professional, local-first JavaScript-driven tool for communication with microcontrollers (Arduino, ESP32, STM32) and other IoT devices. Connect via USB, Wi-Fi, MQTT, Bluetooth/BLE or HTTP/SSE, monitor data, build dashboards and automate devices. Built for embedded developers, makers and field engineers who need a reliable serial/MQTT console, live charts and device control from Android, Windows or Linux. Desktop builds: https://github.com/Azerlag/ZenAir-Privacy-Policy/releases Everything runs locally: no account, no cloud, no ads, paid features or telemetry. The only thing ZenAir contacts on its own is the GitHub release page for the update check, which can be turned off in settings (there is also a manual "Check update" button). MULTI-DEVICE - Up to 5 simultaneous connections per terminal, in any mix of Wi-Fi, Bluetooth, MQTT, HTTP and others - Broadcast one message to all devices or route it with a prefix like [1,2,3]hello - Use your phone or PC as an arbiter between devices and build cross-device communication channels - HTTP + SSE token streaming lets you connect a local LLM and give it the role of interface designer and manager of your devices. A built-in $help command feeds it the app's documentation JAVASCRIPT ENGINE - Transform, filter and react to incoming data in real time - JavaScript Ticker: timers, polling, timeouts and external triggers (on receive, send, connect, disconnect, internet state change) - Placeholder Resolver let you insert live values into messages: $js, $send, $file, $itemField, push notifications and more - Extract multiple JSON paths at once + choose custom joiner - Filter incoming data with regex blacklist/whitelist at any processing stage - $file reads/writes any data to app storage with one command CONNECTIVITY - USB Serial ports are auto-detected and sorted by discovery time - MQTT 3.1.1 and 5.0, auto-reconnect, auto-ping - Auto Connect, background operation, activity tracking with timestamps - SSDP Locator: auto-discover devices on your Wi-Fi and load terminals embedded in your microcontroller DYNAMIC INTERFACES - GRID Terminal: a free-form canvas with an editor, per-element MQTT topics, remote configuration from your microcontroller and dynamic UI - 11 JSON-defined elements: Button, Switch, Slider, Joystick, State, Text Log, Text Field, Linear Chart, Color Picker, Nested Grid, JavaScript Ticker - Every element is plain JSON. Copy it to the clipboard, paste it into another terminal, or share it anywhere - Nested Grid lets a device dictate its own UI via JSON: add and delete items, keep the interface in the device's memory and send it when needed An example terminal with most elements is included in the app. MONITORING - Live chart with up to 8000 points - 8+ view modes: Line, Point, Column, Area, Delta, Proportions, Steps, Histogram - Optional repeat-skipping for cleaner discrete data - JavaScript transformation of data and labels, day/night indicator - Fuzzy real-time search, including a non-destructive mode that keeps all lines visible - Custom syntax highlighting, basic Markdown, timestamps in several styles (Delta from last message, Relative, Human-style etc.) - Line-keeping: a scrolling console stays on the line you are viewing PRIVACY AND SECURITY - Import/export terminals via file, text or Data Matrix image - AES-256-GCM export encryption with PBKDF2 - Temporary terminals that live only in RAM COMFORT - 9 themes (4 light, 5 dark) with automatic switching on a schedule - Background animations and background images, fullscreen mode - In-app interface language selection - Autosave with adjustable rate, keep-screen-on mode