Mycroft Skills Manager (MSM) is a command line tool used to add, manage and remove Skills on any Mycroft installation. It can install any Skill listed on the Mycroft Skills Repository or from any Github repository. msm
is a handy tool for Developers and those who may frequently reconfigure, install and uninstall Skills.
msm
has recently been rewritten in Python (msm
was previously a bash
script). In order to use msm
, you will first need to enter the Mycroft virtual environment, venv
, using the following command:
mycroft-core$ source .venv/bin/activate
(.venv) [email protected]:~/mycroft-core$
If you are using a Picroft or Mark 1 Device, you can activate the .venv
using the command:
mycroft-core$ source /opt/venvs/mycroft-core/bin/activate
You can then run msm
:
(.venv) [email protected]:~/mycroft-core$ msm update
To see a list of all the available msm
commands, type msm -h
:
(.venv) [email protected]:~/mycroft-core$ msm -h​msm: Mycroft Skill Managerusage: msm [option] [repo | name]​Options:default installs the default skills, updates all othersinstall <repo> installs from the specified github repoinstall <name> [name...] installs the mycroft-skill matching <name>remove <name> [name...] removes the specified github repolist list all mycroft-skillsupdate update all installed skillssearch <name> search mycroft-skills for match for <name>info <name> shows information about the skill matching <name>info <repo> shows information about the skill in the specified repo​Params:<repo> full URL to a Github repo<name> one or more substrings to match against submodule namesin the https://github.com/MycroftAI/mycroft-skills repo​Examples:msm search twittermsm search date-time-skillmsm install "daily meditation"msm remove "daily meditation"msm install https://github.com/penrods/Wink.git
For instance to see information on a Skill, type:
msm info mycroft-mark-1
To list all available Skills, type:
msm list
This will show available Skills, and indicate which ones you have installed:
rss-skillsentiment-analysis-skillskill-australian-news [installed]skill-autoguiskill-caffeinewiz
Search is very handy functionality if you're looking for a particular Skill:
[email protected]_1:/opt/mycroft/skills $ msm search twitterPossible match: twitter-skill
Update is very handy for updating all the Skills on your Device:
msm update
INFO - Nothing new for mycroft-ipINFO - Nothing new for mycroft-timerINFO - Nothing new for mycroft-release-testINFO - Nothing new for mycroft-weatherINFO - Nothing new for chatbotINFO - Nothing new for mycroft-speakINFO - Nothing new for fallback-wolfram-alphaINFO - Nothing new for mycroft-naptimeINFO - Nothing new for plasma-activities-skillINFO - Nothing new for mycroft-pairing
The deprecated version of msm
had several error codes. Instead, this version relies on standard Python errors.
Here are some common errors, what they mean, and how to resolve them.
ERROR - Error running update_skill on skill-radio-rne: GitException(Git command failed: GitCommandError(['git', 'fetch'], 128, b"remote: Invalid username or password.nfatal: Authentication failed for 'https://github.com/ChrisFernandez/skill-radio-rne/'", b''))
This error usually means that the GitHub repository for the Skill no longer exists, or has moved. Remove the Skill using msm remove [Skill Name]
and then install a new Skill.
ERROR - Error running update_skill on TranslateSkill: SkillModified(Uncommitted changes:M requirements.sh)
This error usually means that there is a difference between the Skill on the Device and the Skill's GitHub repo. Try re-installing the Skill.
ERROR - Error running update_skill on skill-malibu-stacy: GitException(Git command failed: GitCommandError(['git', 'merge', '--ff-only', 'origin/HEAD'], 1, b'merge: origin/HEAD - not something we can merge', b''))
This error usually means that there is no remote url
defined for the Git repository (ie. named origin
- which is the default name of a remote url
). This often happens during Skill development when git init
is run without defining a remote url
. To resolve this error, add a remote url
using the command git remote add origin https://github.com/yourGitHubUsername/yourrepo.git
.
WARNING - Failed to update repo: GitException(Git command failed: GitCommandError(['git', 'config', 'remote.origin.url', 'https://github.com/MycroftAI/mycroft-skills'], 255, b'error: could not lock config file .git/config: Permission denied', b''))
This error usually means that the filesystem permissions of the Skill are incorrect. Manually check, and if necessary, resolve them.
(mycroft-core) [email protected]:~/skills/reginaneon-av-music.reginaneon $ ls -lastotal 484 drwxr-xr-x 6 pi pi 4096 Jul 12 13:11 .4 drwxrwxrwx 37 mycroft mycroft 4096 Jul 12 13:10 ..4 drwxr-xr-x 4 pi pi 4096 Jul 12 13:10 dialog4 drwxr-xr-x 8 pi pi 4096 Jul 12 13:10 .git4 -rw-r--r-- 1 pi pi 20 Jul 12 13:10 .gitignore4 -rw-r--r-- 1 pi pi 3159 Jul 12 13:10 __init__.py4 -rw-r--r-- 1 pi pi 1850 Jul 12 13:10 README.md4 -rw-r--r-- 1 pi pi 77 Jul 12 13:10 requirements.sh4 -rw-r--r-- 1 pi pi 23 Jul 12 13:10 requirements.txt4 -rw-r--r-- 1 pi pi 35 Jul 12 13:10 settings.json4 drwxr-xr-x 3 pi pi 4096 Jul 12 13:10 test4 drwxr-xr-x 4 pi pi 4096 Jul 12 13:10 vocab​(mycroft-core) [email protected]:~/skills/reginaneon-av-music.reginaneon $ sudo chown -R mycroft:mycroft .(mycroft-core) [email protected]:~/skills/reginaneon-av-music.reginaneon $ ls -lastotal 484 drwxr-xr-x 6 mycroft mycroft 4096 Jul 12 13:11 .4 drwxrwxrwx 37 mycroft mycroft 4096 Jul 12 13:10 ..4 drwxr-xr-x 4 mycroft mycroft 4096 Jul 12 13:10 dialog4 drwxr-xr-x 8 mycroft mycroft 4096 Jul 12 13:10 .git4 -rw-r--r-- 1 mycroft mycroft 20 Jul 12 13:10 .gitignore4 -rw-r--r-- 1 mycroft mycroft 3159 Jul 12 13:10 __init__.py4 -rw-r--r-- 1 mycroft mycroft 1850 Jul 12 13:10 README.md4 -rw-r--r-- 1 mycroft mycroft 77 Jul 12 13:10 requirements.sh4 -rw-r--r-- 1 mycroft mycroft 23 Jul 12 13:10 requirements.txt4 -rw-r--r-- 1 mycroft mycroft 35 Jul 12 13:10 settings.json4 drwxr-xr-x 3 mycroft mycroft 4096 Jul 12 13:10 test4 drwxr-xr-x 4 mycroft mycroft 4096 Jul 12 13:10 vocab
If you're still running into trouble with dependencies, which can happen during Skill Authoring, there are some other techniques available.
To trigger a pip
re-installing Skill dependencies, do the following:
Remove the /home/mycroft/.mycroft/.mycroft-skill
file
Remove the /opt/mycroft/skills/.msm
file
Restart the mycroft-skills
service by using the command sudo service mycroft-skills restart
This will force both a Skills update and the re-installation of dependencies when the mycroft-skills
service is re-started.
You can also use the utility mycroft-pip
which will install dependencies into the Mycroft virtual environment without activation (ie. the 'activate' command). Use mycroft-pip
as you would regular pip
for installing Python libraries on which your Skill depends.