Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ovos-tui-client

A split-pane terminal UI for talking to, debugging and testing OpenVoiceOS without a microphone or speaker - type what you'd say, read what OVOS says back, and watch exactly what's happening on the message bus while it happens.

📖 Manual: https://andlo.github.io/ovos-tui-client/ - with screenshots and examples.

Tests Docs PyPI version

ovos-tui-client screenshot

Actively maintained, and a working replacement for the old CLI clients - see below.

Install

pip install ovos-tui-client
ovos-tui                                  # connects to 127.0.0.1:8181
ovos-tui --host 192.168.1.50 --lang da-dk

A container image is published on every release: docker run -it --rm --network host ghcr.io/andlo/ovos-tui-client:latest. pip install ovos-tui-client[web] and ovos-tui --web serve it in a browser. See Web and Docker.

What it does

  • Logs - every OVOS service log it can find, colour-coded, filterable by source, level, skill and free text, live.
  • Conversation - what you typed and what OVOS said, plus what anyone else said to OVOS: the microphone, HiveMind clients, other ovos-tui-clients - including their test runs.
  • Activity - a readable feed of what happens behind the scenes: which skill is handling it, which fallback caught it, which answers came back.
  • Command palette (Ctrl+P) - restart services, activate/deactivate skills, show the intent pipeline, send example phrases, filter logs, clear panes - all searchable by typing.
  • Scripted test runs - replay a skill's own golden test utterances (Test: <Skill> - All, or pick some with - Choose), or your own scripts, against your live OVOS, with a ✓/✗ per step and a summary. Catches the intent collisions an isolated skill test never sees. Testing skills
  • Headless runs and reports - ovos-tui --run all|<skill>|<script> runs the same tests from the command line (cron, CI) and can write a shareable, store-agnostic JSON report of exactly what was tested against. Headless runs
  • Profile report - what passes on this install per profile (the installer's default and extra skills, and a list of your own): installed, loads, and with --routes whether their golden utterances reach them. The same format and rules as a skill store's profile report, so the two compare row by row (Test: Profile report, or ovos-tui --profile-report). Testing
  • Compare two installs - the same tests on e.g. a testing and an alpha install, compared step by step (Test: Compare results…, or ovos-tui --compare A B): what got fixed, what regressed, which plugin or slots changed, and why a step failed (each failed step gets a diagnosis under the red line). Testing
  • Release channels - which OVOS channel (stable, testing, alpha) the install runs, and ovos-tui --set-channel <channel> (or Ctrl+P → OVOS: Set channel: <channel>…) to make it exactly that channel, the way the channel's own tests install it: dry run first, never downgrades the core. Release channels
  • About windows - a skill's description, examples, version, source and test coverage, with test and activate/deactivate buttons; a checklist of all installed skills.

Everything is in the manual: getting started, testing, scripts, skills, troubleshooting.

Why this is worth having

Testing OVOS by voice means dealing with wake-word misfires, STT mistakes, and no visibility into why something did or didn't happen. Typing directly and watching the activity feed skips all of that: see which skill actually answered and which ones gave up, catch vocabulary gaps as you find them, understand fallback behaviour, check the pipeline order without digging through config files, and re-run the same tests after every change.

Contributing

Tests: pip install -r requirements-test.txt && pytest. The manual lives in docs/ and is built with MkDocs; screenshots are generated, not hand-made - see Maintaining these docs.

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, 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

Metadata

Release files for ovos-tui-client 0.3.0a16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-tui-client 0.3.0a16
File Size Uploaded Provenance Actions
ovos_tui_client-0.3.0a16.tar.gz 231.5 kB With provenance Details for ovos_tui_client-0.3.0a16.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ovos-tui-client 0.3.0a16
File Interpreter ABI Platform Actions
ovos_tui_client-0.3.0a16-py3-none-any.whl Python 3 none any Details for ovos_tui_client-0.3.0a16-py3-none-any.whl

Total release size: 400.6 kB

Release files / ovos_tui_client-0.3.0a16.tar.gz

Download URL ovos_tui_client-0.3.0a16.tar.gz
Size 231.5 kB
Tags Source
SHA-256 checksum
How to use checksums
60f71f3d3b080cab02d00e1c23b380b967580b97b6bbdc0bcee48ca0309d216c
BLAKE2b-256 checksum
How to use checksums
042983b95d431805f59c59678d51b8637671b00e7864943003f5f9391d43a550
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / ovos_tui_client-0.3.0a16-py3-none-any.whl

Download URL ovos_tui_client-0.3.0a16-py3-none-any.whl
Size 169.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc7e46eb82933f17579ddca8c98b0f38a07004026acdfd73eb036b26e5e56b79
BLAKE2b-256 checksum
How to use checksums
ec9efe522e0bf1c512eb234c20c6011ccc1317b8f7761d540fab7eb589e64f48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Security for ovos-tui-client 0.3.0a16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ovos_tui_client-0.3.0a16.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page