Getting Started with Muxit
Welcome to Muxit — a hardware orchestration platform for controlling instruments, robots, and sensors through a unified interface with automation scripts, real-time dashboards, and AI.
What Is Muxit?
Muxit gives you a single interface to control all your lab and workshop hardware. Instead of juggling vendor-specific software for each device, you connect everything to Muxit and control it all from one place.
What you can do:
- Control a power supply from your browser — set voltage, read current, ramp parameters
- Build a live dashboard for your CNC machine — position, feed rate, status, all updating in real-time
- Write automation scripts — ramp a temperature in steps, monitor a threshold, log measurements to a file
- Use AI to control devices — tell Claude "set the voltage to 12V and monitor the current" and it happens
- Stream a webcam to a dashboard widget alongside your instrument readings
- Connect IoT sensors via MQTT — ESP32, Arduino, Home Assistant, Node-RED
- Set up autonomous agents — an AI that watches temperature and adjusts power automatically
Muxit runs as a local server on your computer and serves a web-based GUI to your browser. No cloud account required — everything stays on your machine.
Key Concepts
| Concept | What It Is | Example |
|---|---|---|
| Driver | Low-level hardware interface that talks to a physical device | USB webcam driver, MQTT bridge, serial instrument driver |
| Connector | Wraps a driver with a friendly name, custom methods, and config | psu.js — configures a PSU driver with serial port, adds rampTo() method |
| Script | Sandboxed JavaScript automation program | Read temperature every second, log it, alert if too high |
| Dashboard | Drag-and-drop layout of live widgets bound to device data | Gauges, charts, sliders, buttons, video streams |
| Agent | Autonomous AI that plans and executes multi-step goals | Monitor temperature sensor, reduce power if overheating |
For more definitions, see the Glossary.
What's Included
Muxit ships with a complete demo environment — no hardware needed to start exploring:
- TestDevice — a simulated instrument with temperature, voltage, counters, and more. Always available, doesn't count against connector limits
- Example scripts —
hello.js(basic logging),demo.js(dashboard integration with sine waves),count_to_ten.js(simple loop),stream-demo.js(animated canvas streaming) - Example dashboards —
demo.dashboard.json(interactive gauges, sliders, charts),test-device.dashboard.json(full device control panel) - Built-in drivers — Webcam, ONVIF IP camera, FileAccess (sandboxed file I/O), MqttBridge (IoT integration)
- Example agents — temperature-monitor (auto-reduce power), pick-and-place (robot coordination)
5-Minute Quickstart
1. Install and Start
git clone https://github.com/MUXIT-IO/muxit.git
cd muxit
node build.js
node start.js server --guiYour browser opens to http://127.0.0.1:8765. See the Installation Guide for detailed setup.
2. Explore the Hardware Panel
Click the plug icon in the left Activity Bar to open the Hardware panel. You'll see the test-device connector with live properties:
- temperature — a simulated temperature value
- label — a text label you can change
- enabled — a boolean toggle
- threshold — a numeric threshold
- count — an incrementing counter
These values update in real-time through polling.
3. Open a Dashboard
In the Explorer sidebar (files icon), expand dashboards/ and click demo.dashboard.json. You'll see a live dashboard with:
- Gauge widgets showing sine/cosine waves
- Sliders you can drag to change values
- A chart plotting data over time
- An indicator light showing running state
4. Run a Script
In the Explorer sidebar, expand scripts/ and click demo.js. Click the Run button in the editor toolbar. Watch the dashboard come alive — the script drives the gauge values and responds to slider input.
Click Stop to end the script.
5. Try the AI Chat (Optional)
Click the chat icon in the Activity Bar to open the AI Chat sidebar. If you've configured an API key (Settings > AI Services), try:
- "What devices are connected?"
- "Read the test device temperature"
- "Set the threshold to 75"
Choose Your Path
"I have lab instruments"
You have SCPI-compatible instruments (oscilloscopes, power supplies, multimeters) connected via USB/serial or TCP/IP.
Start here:
- Your First Connector — learn the connector config format
- Connector Guide — transports, serial/TCP setup, real hardware examples
- Driver SDK — build a custom driver for your instrument
"I have a CNC, 3D printer, or robot"
You have motion-control hardware that communicates over serial (G-code/GRBL) or TCP.
Start here:
- Connector Guide — see the G-code/GRBL CNC example
- Dashboard Guide — build a control panel with position display, buttons, terminal
- Your First Script — automate motion sequences
"I have IoT sensors"
You have ESP32, Arduino, Tasmota, or Home Assistant devices communicating via MQTT.
Start here:
- MQTT & IoT Guide — connect to an MQTT broker, subscribe to topics, display data
- Dashboard Guide — build a sensor dashboard
- Your First Script — automate based on sensor readings
"I want to use AI to control hardware"
You want Claude, GPT-4, or another LLM to control your devices.
Start here:
- AI & Voice Guide — set up the Chat Panel or MCP server
- AI & Voice Guide — Agents — autonomous AI with safety boundaries
"I just want to explore"
No hardware yet — you want to learn what Muxit can do.
Start here:
- UI Tour — understand the interface
- Your First Script — write a script using the TestDevice
- Your First Dashboard — build a dashboard with live widgets
- Your First Connector — create a connector config
Running Muxit
node start.js server # Start the server
node start.js server --gui # Start + auto-open browser
node start.js server --no-tray # Start without system tray icon
node start.js server --port=9000 # Custom port
node start.js cli # CLI mode (driver testing REPL)
node start.js mcp # MCP server (for Claude Code/Desktop)Then open http://127.0.0.1:8765 in your browser.
File Structure
workspace/
├── connectors/ ← device configurations (.js)
├── scripts/ ← automation scripts (.js)
├── drivers/ ← driver files (.driver.js, .dll)
├── dashboards/ ← dashboard layouts (.dashboard.json)
├── agents/ ← agent config files (.agent.json)
├── data/ ← sandboxed file storage (FileAccess driver)
└── config/ ← server settings (server.json)The filename of each connector, script, or dashboard becomes its name in Muxit. For example, connectors/psu.js creates a connector called "psu" that you access with connector("psu") in scripts.
Next Steps
- Installation — detailed setup for all platforms
- UI Tour — learn the interface
- Your First Script — write and run a script
- Your First Dashboard — build a live dashboard
- Your First Connector — configure a device
- Script Guide — all script API functions
- Connector Guide — connector config format
- Dashboard Guide — widgets and data binding
- AI Guide — AI chat, voice, MCP, agents
- Troubleshooting — common issues and solutions