Choose a language
All MAGPIE implementations share the same communication model and wire formats. Choose based on where your application runs; a single system can freely mix languages.
| Python | C++ | TypeScript / JavaScript | |
|---|---|---|---|
| ZeroMQ | ✓ | ✓ | — |
| MQTT | ✓ | ✓ | ✓ |
| WebRTC | ✓ | ✓ | ✓ Browser |
| Streaming and RPC | ✓ | ✓ | ✓ |
| Typed frames | ✓ | ✓ | ✓ |
| Schema RPC | ✓ | ✓ | ✓ |
| MCP tool server | ✓ | ✓ | ✓ |
| MCP client adapter | ✓ | Via Python client | ✓ |
| Node helpers | ✓ | ✓ | — |
| Network discovery | ✓ | ✓ | — |
| CLI and SSH tools | ✓ | — | — |
Python
Choose Python for AI services, orchestration, rapid prototyping, CLI automation, media processing, or when you want the broadest MAGPIE feature set.
pip install luxai-magpie
Python reference → · Python repository
C++
Choose C++ for native robot applications, embedded Linux, low-overhead processing, or integration into an existing CMake codebase. MAGPIE C++ targets C++14 and provides optional MQTT, WebRTC, audio, and video libraries.
C++ installation → · C++ reference → · C++ repository
TypeScript and JavaScript
Choose MAGPIE.js for browser interfaces, web-based robot control, Node.js services, and browser-native WebRTC media. The npm package includes TypeScript declarations and a CDN bundle.
npm install @luxai-qtrobot/magpie
TypeScript reference → · JavaScript repository
:::info Mixing languages is expected A Python perception process can publish a frame to a C++ control service while a browser subscribes through MQTT or WebRTC. See cross-language systems for the rules that keep them interoperable. :::