ovos-tui-client
๐ง Actively under development - expect frequent changes. This is a
young project with ongoing design iteration (see git history/tags for
the pace of change); pin a specific version if you need stability, or
just pip install --upgrade regularly to stay current.
A split-pane terminal UI for testing OVOS without a mic/speaker - a
lightweight replacement for the unmaintained ovos-cli-client and the
broken neon-cli-client (whose pyyaml~=5.4 dependency fails to build
on modern Python/setuptools).
Layout
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Sources: [X]bus [X]skills [X]audio ... โ
โ Log Levels: [X]DEBUG [X]INFO ... Skills:.. โ
โ Filter logs (free text)... โ
โ LOGS scrollโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโค
โ CONVERSATION (2/3) โ ACTIVITY (1/3)โ
โ You: read me a grimm story โ ๐ pipeline: โ
โ OVOS: Here's Cinderella... โ asking all... โ
โ โ ๐ฅ grimm-tale โ
โ โ s: "Cindere.. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโค
โ > _ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-
Logs: tails every recognized OVOS service log file it finds (
bus.log,skills.log,audio.log/media.log,voice.log,gui.log,enclosure.log,phal.log), each with its own color. OVOS's ownTIMESTAMP - COMPONENT -prefix is stripped, and every[source]tag is padded to the same width so message text lines up in one column. Lines containingERRORare bolded. Scrolled-up panes (logs, conversation, activity) are never yanked back to the bottom by incoming content - auto-scroll only re-engages once you're back at the bottom yourself. -
Sources and Log Levels (DEBUG/INFO/WARNING/ERROR/CRITICAL) are compact checkboxes directly in the main view, checked by default, no modal needed - each category on its own single line.
-
Skills: - click it, or press F4 - opens a panel to filter by skill (dynamically discovered the first time a skill_id is seen in the log text - best-effort, not every skill-related line mentions its own skill_id explicitly; unchecked by default, unlike Sources/ Levels, since this list is open-ended rather than short and fixed). Kept in a modal rather than inline for that reason.
Filter semantics: an unchecked box does NOT mean "hidden" - it means "not specifically filtered to". With nothing checked in a category, nothing in that category is restricted and everything shows. Checking one or more boxes restricts that category to only the checked ones - independently per category, applying retroactively to already-received lines too, same as the free-text filter. Choices persist across sessions (
~/.config/ovos-tui-client/ state.json), saved on quit. -
F1: keybinding reference. F2: services panel (restart an
ovos-*.serviceunit). F3: currently loaded skills (from the bus). F5-F8: jump focus straight to Logs / Conversation / Activity / the utterance input. Ctrl+P: Textual's built-in command palette - every action above is also there, fuzzy-searchable, for anyone who'd rather type a command than remember an F-key. Tab/Shift+Tab: cycle focus across everything (checkboxes, panes, input) - a Textual built-in, no custom code needed. Escape: closes whatever modal is open. -
Typing a plain character while focus is on Logs/Conversation/ Activity (none of which are normally typable) redirects that keystroke to the utterance input instead of doing nothing - almost always what was actually meant.
-
Conversation: what you typed (green, full line) and what OVOS said back (blue, full line).
-
Activity: a curated, simplified feed of what's happening on the bus right now - which skill is handling the request, wake word/ speech start-stop, global stop, and for
ovos.common_reading.*traffic specifically, which providers answered, at what confidence, and whether content fetch succeeded. -
Input: type what you'd say to OVOS, press Enter. Up/Down arrows browse previously submitted utterances, shell-history style.
Install
pip install ovos-tui-client
Usage
ovos-tui
Connects to 127.0.0.1:8181 by default. Options:
ovos-tui --host 192.168.1.50 --port 8181 --lang da-dk --log-dir ~/.local/state/mycroft
--log-dir: the log directory is auto-detected against a list of known candidate paths (which vary by OVOS install method). If nothing is found, the logs pane says so - pass this to point at the right directory explicitly.
Why not just fix ovos-cli-client / neon-cli-client?
ovos-cli-client (last released March 2022) installs cleanly via pip,
but crashes immediately on launch on a fresh install:
ModuleNotFoundError: No module named 'ovos_utils.configuration' -
its ovos_utils dependency is unpinned, and the module it imports
from has since been removed/relocated in current ovos_utils
releases. It was never updated to match. Confirmed directly (pip install ovos-cli-client && ovos-cli-client) rather than assumed.
neon-cli-client pulls in neon-utils, which pins pyyaml~=5.4 - a
version with no prebuilt wheel for modern Python and a build script
incompatible with current setuptools (workaround: pin
setuptools<58 first).
Building this tool instead avoids both dependency chains (just
textual + ovos-bus-client, both actively maintained), and adds
genuinely useful features - toggleable/filterable logs, service
restart, a simplified activity feed - neither of the above has.
No existing project fills this specific niche as of writing (checked the OpenVoiceOS GitHub org's repositories and general TUI project listings) - if that's changed by the time you're reading this, please open an issue and point at it.
Category
Development Tools
Tags
#ovos #tui #testing #cli #development
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_tui_client-0.1.13.tar.gz.
File metadata
- Download URL: ovos_tui_client-0.1.13.tar.gz
- Upload date:
- Size: 47.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29f36e533f8c47c3a658a355c474121a781244b3029aaeb3415b7f16fe1faa6d
|
|
| MD5 |
0cb4dd8bd7a2b879ee5e7d649d22d8ec
|
|
| BLAKE2b-256 |
57f28ac8b9c7cfb5399549b6bfc527296a2613d2f5ddb2bd7fda81ccc0ec60da
|
Provenance
The following attestation bundles were made for ovos_tui_client-0.1.13.tar.gz:
Publisher:
publish.yml on andlo/ovos-tui-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ovos_tui_client-0.1.13.tar.gz -
Subject digest:
29f36e533f8c47c3a658a355c474121a781244b3029aaeb3415b7f16fe1faa6d - Sigstore transparency entry: 2225109221
- Sigstore integration time:
-
Permalink:
andlo/ovos-tui-client@f820a3e634ff21eade4e34444c5fd12090e9f98a -
Branch / Tag:
refs/tags/v0.1.13 - Owner: https://github.com/andlo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f820a3e634ff21eade4e34444c5fd12090e9f98a -
Trigger Event:
push
-
Statement type:
File details
Details for the file ovos_tui_client-0.1.13-py3-none-any.whl.
File metadata
- Download URL: ovos_tui_client-0.1.13-py3-none-any.whl
- Upload date:
- Size: 36.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b043a2bd65418dae893f50382b8f19d6a0eb80b937bfe11176e81169d77b5dd
|
|
| MD5 |
5ecc54a5e1a99e9ade3ab02adc2fa16b
|
|
| BLAKE2b-256 |
5603926edc0deb06f32cb334eff37ef8e0c78e32e50f8725aba1ccc9a4cc56fe
|
Provenance
The following attestation bundles were made for ovos_tui_client-0.1.13-py3-none-any.whl:
Publisher:
publish.yml on andlo/ovos-tui-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ovos_tui_client-0.1.13-py3-none-any.whl -
Subject digest:
5b043a2bd65418dae893f50382b8f19d6a0eb80b937bfe11176e81169d77b5dd - Sigstore transparency entry: 2225109511
- Sigstore integration time:
-
Permalink:
andlo/ovos-tui-client@f820a3e634ff21eade4e34444c5fd12090e9f98a -
Branch / Tag:
refs/tags/v0.1.13 - Owner: https://github.com/andlo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f820a3e634ff21eade4e34444c5fd12090e9f98a -
Trigger Event:
push
-
Statement type: