Skip to main content
Pre-release

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

GitHub Discussions License PRs Welcome Unit Tests codecov

OVOS-core

OpenVoiceOS is an open-source platform for smart speakers and other voice-centric devices. ovos-core (this repo) is the central component.


Installing OVOS

If you have an existing system, use the ovos-installer to install OVOS and its dependencies in one step.

For Raspberry Pi users, the RaspOVOS image runs in headless mode (no GUI) and targets Raspberry Pi 3B or higher.

For embedded systems, ovos-buildroot builds a custom Linux distribution for minimal setups.

More detailed documentation is available in the ovos-technical-manual and in docs/. See docs/prerelease-quirks.md for what changed since the last stable release.

Developers can install ovos-core standalone:

pip install ovos-core

This includes the core components, for custom assistant development.


Skills

OVOS is powered by skills. Some skills come pre-installed; most need to be installed explicitly.

Browse OVOS-compatible skills on PyPI or in the OVOS GitHub organization.

Most classic Mycroft skills also work on OVOS.

When an install or uninstall requested over the bus fails, the .failed reply carries the installer's own output in detail, so a remote caller can see why without reading the service log. See docs/skill-installer.md.

A completed runtime install through the bus (ovos.skills.install) triggers a discovery pass, so an eligible skill loads on that report rather than waiting for the periodic scan; the pass keeps the readiness and connectivity gating the scan applies. skillmanager.rescan asks the skill manager for that pass on demand and replies with what it loaded. See docs/skill-manager.md.

A skill uninstalled at runtime through the bus (ovos.skills.uninstall) is unloaded as soon as the installer reports completion, so it stops answering without a restart. See docs/skill-manager.md.


Persona Support

ovos-persona generates responses when skills fail to handle user input. With Persona you can connect an LLM to ovos-core.

List Personas

  • "What personas are available?"
  • "Can you list the personas?"
  • "What personas can I use?"

Activate a Persona

  • "Connect me to {persona}"
  • "Enable {persona}"
  • "Start a conversation with {persona}"
  • "Let me chat with {persona}"

Stop Conversation

  • "Stop the interaction"
  • "Terminate persona"
  • "Deactivate Large Language Model"
Creating a Persona: Click to expand

Persona Files

Personas are configured using JSON files. These can be:

  1. Provided by plugins (for example, the OpenAI plugin).
  2. Created as user-defined JSON files in ~/.config/ovos_persona.

Personas rely on solver plugins, which try to answer queries in sequence until a response is found.

Example: using a local OpenAI-compatible server.

Save this in ~/.config/ovos_persona/salamandra.json:

{
  "name": "Salamandra",
  "solvers": [
    "ovos-solver-openai-persona-plugin"
  ],
  "ovos-solver-openai-persona-plugin": {
    "api_url": "https://ollama.uoi.io/v1",
    "model": "hdnh2006/salamandra-7b-instruct",
    "key": "sk-xxxx",
    "persona": "helpful, creative, clever, and very friendly."
  }
}

The "Salamandra" persona is now available. The example above uses a demo server; no uptime is guaranteed.

More details on how to create your personas are in the OVOS-persona README.

Pipeline Configuration: Click to expand

Persona Pipeline

Add the persona pipeline to your mycroft.conf after the _high pipeline matchers.

{
  "intents": {
      "persona": {"handle_fallback":  true},
      "pipeline": [
          "stop_high",
          "converse",
          "ocp_high",
          "padatious_high",
          "adapt_high",
          "ovos-persona-pipeline-plugin-high",
          "ocp_medium",
          "fallback_high",
          "stop_medium",
          "adapt_medium",
          "padatious_medium",
          "adapt_low",
          "common_qa",
          "fallback_medium",
          "ovos-persona-pipeline-plugin-low",
          "fallback_low"
    ]
  }
}

Getting Involved

OVOS is open source and depends on community contributions. There is a way to contribute as a coder, designer, or translator.

Help translate OVOS into your language through our Translation Portal.

Have questions or need guidance? Say hi in the OpenVoiceOS Chat, and a team member will help.

Join our Discussions to ask questions and share ideas.


Credits

The OpenVoiceOS team thanks the following organizations for their support in our early days:

  • Mycroft was a hackable, open-source voice assistant by the now-defunct MycroftAI. OpenVoiceOS continues that work.
  • NeonGecko
  • KDE / Blue Systems

Metadata

Release files for ovos-core 3.7.4a1

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-core 3.7.4a1
File Size Uploaded Provenance Actions
ovos_core-3.7.4a1.tar.gz 100.6 kB Without provenance Details for ovos_core-3.7.4a1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ovos-core 3.7.4a1
File Interpreter ABI Platform Actions
ovos_core-3.7.4a1-py3-none-any.whl Python 3 none any Details for ovos_core-3.7.4a1-py3-none-any.whl

Total release size: 211.7 kB

Release files / ovos_core-3.7.4a1.tar.gz

Download URL ovos_core-3.7.4a1.tar.gz
Size 100.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0e8d073e700491c9727e8296ba2ccdb4b7820f7218a85119197d90e2cff4cbf0
BLAKE2b-256 checksum
How to use checksums
d83220862e51fa868a9f36715b607d9dd0118494b8ea962e02beaef8e6f641cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / ovos_core-3.7.4a1-py3-none-any.whl

Download URL ovos_core-3.7.4a1-py3-none-any.whl
Size 111.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c61e711925647fd6c455b781493ce15eeb7e5fc2217abd80d44d41948096e17
BLAKE2b-256 checksum
How to use checksums
4f6ddd5c6fadc63b90d0dda4ac0b35abd36a148ad71b99f95e9fc7b89907b034
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for ovos-core 3.7.4a1

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