Skip to main content
Pre-release

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

ovos-control-panel

A local web page for an OpenVoiceOS device. It runs on the device. It shows you if the device works, it lets you change the settings, and it makes backups.

There is no cloud account and no internet connection. Every file the page needs is in the package.

The dashboard, showing every service ready

Read the full guide — start here

What you can do

Page What it does
Dashboard Shows if the message bus and each OVOS service answer.
Settings Changes your layer of mycroft.conf, as a form or as raw JSON or YAML.
Skills Changes the settings of each installed skill.
Plugins Finds OVOS plugins and installs them on the device.
Personas Makes and edits personas — the ordered list of solvers that answer you.
Translate Translates what a skill says and hears into your language.
Backup Downloads a copy of your settings, and puts a copy back.
About Shows the installed package versions and useful links.

Signing in is covered in security.md. The interface is keyboard- and screen-reader-friendly and follows the device language, including right-to-left — see accessibility.md.

The page works on a phone. It follows the light or dark setting of your device.

Install

The panel follows the OVOS alpha channel. It is built on the ovos-config 3.x configuration layers, which only alpha has for now. Install it on an alpha device:

pip install --pre ovos-control-panel

On a stable or testing device, pip either picks an old pre-release or wants to upgrade core OVOS packages to alphas. Wait until alpha becomes testing.

Run

ovos-control-panel                        # 127.0.0.1:8500, this device only
ovos-control-panel --host 0.0.0.0 --token my-secret   # reachable from your phone
ovos-control-panel --port 9000
ovos-control-panel --no-bus               # do not connect to the message bus

Then open http://<the address of your device>:8500/. If a token is set, the page asks you to sign in once and then remembers you in a cookie.

Run it as a service

Write this to ~/.config/systemd/user/ovos-control-panel.service:

[Unit]
Description=OpenVoiceOS Web UI
After=ovos-messagebus.service
Wants=ovos-messagebus.service

[Service]
Type=simple
ExecStart=%h/.venvs/ovos/bin/ovos-control-panel --host 0.0.0.0 --port 8500 --token CHANGE-ME
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target

Then start it:

systemctl --user daemon-reload
systemctl --user enable --now ovos-control-panel
journalctl --user -u ovos-control-panel -f

The service starts even when the message bus is down. The dashboard then tells you that the bus does not answer.

Security

The page changes the configuration of your device, so treat it like a key.

  • The default bind is 127.0.0.1, so only a user of the device can reach it.

  • On any other address, set a token. Put it in mycroft.conf:

    {"webui": {"access_token": "a long random string"}}
    

    Or start the service with --token. The page then asks you to sign in. The token goes in the body of a POST and comes back as a cookie, so it never appears in an address, a log or the browser history.

  • With a token set, every page, asset and API call needs a sign in. Only the sign in page, /api/status, /api/login, /api/logout and /healthz answer without one.

  • Requests that change something must come from this page, not from another web site.

  • Without a token on a network address, the page shows a red banner.

  • The service never runs a shell command.

  • Do not put this page on the public internet. It has no TLS.

Backups

Every save first copies the old file into a .ovos-webui-backups directory beside it. The name of the copy holds the time of the save. The last 20 copies are kept. To undo a change, copy a backup back over the file.

Documentation

The full guide, with a page-by-page navigation table and a first-run walkthrough, lives in docs/README.md.

Development

pip install -e .[dev]
pytest tests -v

The tests need no network and no message bus. Bus behaviour is tested with FakeBus from ovos-utils.

License

Apache-2.0 — see LICENSE.

Credits

Developed by TigreGotico for OpenVoiceOS.

Funded by NGI0 Commons Fund / NLnet under grant agreement No 101135429, through the European Commission's Next Generation Internet programme.

Metadata

Release files for ovos-control-panel 0.0.1a52

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-control-panel 0.0.1a52
File Size Uploaded Provenance Actions
ovos_control_panel-0.0.1a52.tar.gz 502.3 kB Without provenance Details for ovos_control_panel-0.0.1a52.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ovos-control-panel 0.0.1a52
File Interpreter ABI Platform Actions
ovos_control_panel-0.0.1a52-py3-none-any.whl Python 3 none any Details for ovos_control_panel-0.0.1a52-py3-none-any.whl

Total release size: 936.7 kB

Release files / ovos_control_panel-0.0.1a52.tar.gz

Download URL ovos_control_panel-0.0.1a52.tar.gz
Size 502.3 kB
Tags Source
SHA-256 checksum
How to use checksums
82a9e101f853d01e3caf73029f6ce98ee8295a7c1b2e8317eec87baf60751495
BLAKE2b-256 checksum
How to use checksums
91359a16bea3123570e064af782842ca09c0dc866065c44f220f5151e81190ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / ovos_control_panel-0.0.1a52-py3-none-any.whl

Download URL ovos_control_panel-0.0.1a52-py3-none-any.whl
Size 434.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f29f971d16c21bfa6537939b3fca3d03a9c8e1441ab7c9bd76791087937596a4
BLAKE2b-256 checksum
How to use checksums
3e3fc467749c2ed926faa54d5e544a1d1f2781c60ebeb49608cdca9bc13e273f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for ovos-control-panel 0.0.1a52

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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