Screens on OVOS¶
In a nutshell
OVOS is voice-first, but some devices (notably the Mark 2) also have a screen. The screen software that exists is old, deprecated, and best described as "just barely working". It stays alive only so existing Mark 2 devices don't go dark. A ground-up replacement is in design, and it is not usable. Every other GUI page links here for the state of GUI on OVOS.
The honest verdict¶
There is no generally usable OVOS GUI. The only screen stack that actually
runs is the legacy Qt5 stack: ovos-shell wrapping
mycroft-gui-qt5, talking over the legacy GUI protocol to
ovos-gui. That stack is deprecated upstream (Qt5 itself gets no
updates) and treated as broken, in the sense that no active development happens
on it. It stays around solely so devices that already have it (Mark 2s shipped via the
ovos-installer) keep a working screen.
A ground-up replacement, the GUI adapter rework, formalized as spec OVOS-GUI-1, is in progress to fix this properly. It is not merged, not released, and not something to plan a product around. See GUI Adapter Plugins for the technical design.
Practical recommendation¶
If you are shipping a device with a screen:
- Voice must remain the primary interface. Treat any screen as a bonus, never a requirement, since the display stack can vanish or be swapped without warning.
- If you need a screen, use the legacy Mark 2 path:
ovos-shell+mycroft-gui-qt5, installed automatically by theovos-installer. Do not invest in new QML pages against this stack — it will not gain new capability. - Do not build against the adapter/rework APIs; they are unreleased and their shape can change before release.
- If a screen is not a hard requirement, skip the GUI entirely. OVOS works fully voice-only, and this sidesteps the whole legacy/rework transition.
Tracked rework¶
The GUI adapter rework spans several repositories. The rework is not usable until the base class and the router ship:
- ovos-plugin-manager#377:
AbstractGUIPluginbase class - ovos-gui#112: adapter/template rework landing
- ovos-gui#117: OVOS-GUI-1 service conformance
- ovos-bus-client#238: GUI-1-conformant wire shapes (merged)
- ovos-legacy-mycroft-gui-plugin#3: legacy adapter conforming to the session_id-only contract
GUI generations at a glance¶
| Generation | Status | What it is | Page |
|---|---|---|---|
| Legacy GUI service | Deprecated, only thing that runs | The ovos-gui daemon that tracks GUI state and speaks the legacy protocol |
GUI Service |
| Legacy protocol | Deprecated | The Qt-WebSocket messages (gui.value.set, gui.page.show, …) between skills and screen clients |
GUI Protocol |
| Qt5/QML client | Deprecated upstream, the only runnable client | mycroft-gui-qt5, the Qt5/QML rendering toolkit |
Qt5 GUI |
| Shell application | Deprecated, in use on Mark 2 | ovos-shell, the full-screen Kirigami app wrapping the Qt5 client |
OVOS Shell |
| Home screen | Deprecated, in use on Mark 2 | The idle/resting screen skill shown when nothing else is displayed | Home Screen |
| Skill GUI API | Legacy API, what skills use | self.gui / GUIInterface, the Python API a skill uses to push data to a screen |
GUI Skills |
| Adapter rework (OVOS-GUI-1) | In progress, not usable | Planned replacement: skills declare SYSTEM_* templates, interchangeable render backends draw them |
GUI Adapter Plugins |
Read next: GUI Service (legacy) · PHAL Related: GUI Adapter Plugins · OVOS Shell · Home Screen