Install Mycroft on Linux, learn how to start and stop services, configure proxies, or remove Mycroft from your system.

Mycroft is available for Linux, and can be installed via several methods.

Currently, there are builds and/or instructions for installing Mycroft on:


This section of documentation assumes the following:

  • That you already have Linux installed on your computer

  • That your computer is already connected to the internet

  • That you are comfortable issuing basic Linux commands from a terminal or shell prompt

  • That your device has a built-in microphone and speakers, or, you have successfully connected microphone and speakers to your device.

  • That your device already has git installed and working. If you don't already have git installed, here is a great set of instructions.

System Requirements

Whilst Mycroft runs on a Raspberry Pi 3B or above, this is achieved through a custom release of Raspbian Lite significantly reducing the system overhead by not running a desktop environment and other unnecessary processes. Mycroft will run on older hardware however your experience may vary significantly.

Our Precise wake word engine also relies upon TensorFlow. For x86 Intel processors this requires the AVX (Advanced Vector Extensions) instruction set. To ensure your system supports AVX open a terminal and run: grep avx /proc/cpuinfo. AVX should be listed under the flags for each CPU core. If nothing is returned it is most likely that your system does not support AVX. Technical users may be able to build an older version of TensorFlow (1.13) from source using the instructions provided on their website. Alternatively you may use Mycroft with the PocketSphinx wake word engine.

The ARM architecture has a similar requirement called SIMD (Single Instruction, Multiple Data). This has been available since ARMv7 which includes the Cortex A53 used by the RaspberryPi and the Cortex A7 from the OrangePi.

Getting Started

There are multiple ways to install Mycroft for Linux.

Installing via git clone

The simplest way to install Mycroft for Linux is to clone the mycroft-core repo to your system and run a shell script, which will install all dependencies, and Mycroft components.

The mycroft-core repo is at

The instructions below will install Mycroft in your HOME directory.

cd ~/
git clone
cd mycroft-core

The script identifies, installs and configures dependencies that Mycroft needs to run.

The script will also install and configure virtualenv. virtualenv is a tool to create isolated Python environments. It is a way to isolate an application - in this case Mycroft - from other applications. It helps to better manage both dependencies and security.

If you are running a Linux distribution other than Ubuntu, Debian, Arch or Fedora, you may need to manually install packages as instructed by

Running Mycroft for Linux

The Mycroft for Linux installation includes two scripts that you use to control Mycroft services. is used to start one, or all, Mycroft services. This script uses the virtualenv created by

The usage of is:

usage: [command] [params]
all runs core services: bus, audio, skills, voice
debug runs core services, then starts the CLI
audio the audio playback service
bus the messagebus service
skills the skill service
voice voice capture service
wifi wifi setup service
enclosure mark_1 enclosure service
cli the Command Line Interface
unittest run mycroft-core unit tests
skill_container <skill> container for running a single skill
audiotest attempt simple audio validation
audioaccuracytest more complex audio validation
sdkdoc generate sdk documentation
Examples: all cli unittest

To start all Mycroft services at once

$ ./ all
Starting all mycroft-core services
Starting background service bus
Starting background service skills
Starting background service audio
Starting background service voice

To start individual Mycroft services

Services can also be started individually.

$ ./ audio
Starting background service audio

Stopping Mycroft services

$ ./
Stopping all mycroft-core services

Pairing Mycroft for Linux

Once successfully installed, you will need to pair your Mycroft for Linux Device with your account.


Hey Mycroft, pair my device

Mycroft will Speak "I am connected to the internet and need to be paired. Your 6-digit Registration Code is XXXXXX"

Use the Registration Code to pair your Mycroft for Linux Device with

View the documentation to learn how to add your Device to

Once paired, you can then use basic Skills.

Using Mycroft behind a proxy

Many schools, universities and workplaces run a proxy on their network. If you need to type in a username and password to access the external internet, then you are likely behind a proxy.

If you plan to use Mycroft behind a proxy, then you will need to do an additional configuration step.

NOTE: In order to complete this step, you will need to know the hostname and port for the proxy server. Your network administrator will be able to provide these details. Your network administrator may want information on what type of traffic Mycroft will be using. We use https traffic on port 443, primarily for accessing ReST-based APIs.

Using Mycroft behind a proxy without authentication

If you are using Mycroft behind a proxy without authentication, add the following environment variables, changing the and proxy_port for the values for your network. These commands are executed from the Linux command line interface (CLI).

$ export http_proxy=
$ export https_port=
$ export no_proxy="localhost,,localaddress,,,::1"

Using Mycroft behind an authenticated proxy

If you are behind a proxy which requires authentication, add the following environment variables, changing the and proxy_port for the values for your network. These commands are executed from the Linux command line interface (CLI).

$ export http_proxy=
$ export https_port=
$ export no_proxy="localhost,,localaddress,,,::1"

Keeping Mycroft for Linux updated

Keeping your mycroft-core installation up to date is simple.

  1. Change to the directory where your mycroft-core installation is. This is most likely at ~/mycroft-core

  2. Type git stash - this preserves your Mycroft configuration. git may prompt you to set up an identity.

  3. Type git pull to get the latest code. By default, using a git installation will bring down the dev branch of the repo. If you want to pull down another branch - for instance to test it - use git pull origin BRANCH_NAME.

  4. Type git stash pop to return the configuration that was stashed with git stash

  5. Type ./ to update your virtualenv - it's a good idea to do this if you update your mycroft-core installation.

  6. Type ./ all to restart the services

Removing Mycroft for Linux from your system

If you have installed mycroft-core using the git-clone method, then removing it requires a couple of steps.

NOTE: depending on your system, you may need to run the commands below with sudo

  • Remove the mycroft-core directory from wherever you installed it:

rm -R ~/yourpath/to/mycroft-core

  • Next, remove the Skills directories:

rm -R /opt/mycroft

  • Next, remove the Mycroft settings:

rm -R ~/.mycroft

Common issues with Mycroft for Linux

Removing and rebuilding your virtualenv

If your CLI won't run, it is highly likely to be an issue with the Mycroft virtual environment. The easiest solution we've found has been to remove and reinstall the virtual environment.

First, delete the existing virtual environment:

sudo rm -R ~/.virtualenvs/mycroft

Next, we run the setup script again:

mycroft-core$ ./

This will rebuild your


Installation warns about bad interpreter

When running, if you encounter a warning about a "bad interpreter", it is likely from having a space in the installation path:

./ /opt/test path/mycroft-core/.venv/bin/pip: "/opt/test: bad interpreter: No such file or directory
Warning: Failed to install all requirements. Continue? y/N

If you can't install to a path without spaces, you will have to manually verify the requirements.txt entries are installed to your virtual environment.