Skip to main content

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).

Tests PyPI version ovos-cli-client

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 own TIMESTAMP - COMPONENT - prefix is stripped, and every [source] tag is padded to the same width so message text lines up in one column. Lines containing ERROR are 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-*.service unit). 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

ovos_tui_client-0.1.13.tar.gz (47.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_tui_client-0.1.13-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

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

Hashes for ovos_tui_client-0.1.13.tar.gz
Algorithm Hash digest
SHA256 29f36e533f8c47c3a658a355c474121a781244b3029aaeb3415b7f16fe1faa6d
MD5 0cb4dd8bd7a2b879ee5e7d649d22d8ec
BLAKE2b-256 57f28ac8b9c7cfb5399549b6bfc527296a2613d2f5ddb2bd7fda81ccc0ec60da

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovos_tui_client-0.1.13.tar.gz:

Publisher: publish.yml on andlo/ovos-tui-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ovos_tui_client-0.1.13-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_tui_client-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 5b043a2bd65418dae893f50382b8f19d6a0eb80b937bfe11176e81169d77b5dd
MD5 5ecc54a5e1a99e9ade3ab02adc2fa16b
BLAKE2b-256 5603926edc0deb06f32cb334eff37ef8e0c78e32e50f8725aba1ccc9a4cc56fe

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page