Permanently Disable Default Skills

Hello,

On my image of Picroft I deleted some of the default skills, such as the “Go to sleep” skill that puts MyCroft into sleep mode because I wanted to use ‘sleep’ as a keyword in one of my custom skills. This works, however when I update Picroft in order to install new skills, the default skills return. Is there anyway to avoid this? I have also tried simply deleting the contents of the default skill files instead of deleting the files in their entirety, however when Picroft updated again the contents were restored.

Thanks in advance,

Noah

if you edit a file in the skill folder it wont come back, but if you delete the folder it will be downloaded again, delete the init.py file and the skill should not come back nor load

The other way to disable Skills is in mycroft.conf.
We have documentation available on how to do this at;

I tried this but it does not seem to work… I wanted to disable the spotify skill since it kept giving an error message about me not having the correct username or password (allthough I could use mycroft to manipulate my spotify after startup). I found the .gitmodules file in the /opt/mycroft/.kills-repo folder, the spotify submodule is called “mycroft-spotify” and the path is “spotify-skill”. I added the the lines given in the link that you provided to the mycroft.conf file in the /home/mycroft/.mycroft/ folder with “mycroft-spotify” as well as “spotify-skill” instead of the YOUR_SKILL entry:

"skills": {
    "blacklisted_skills": ["skill-media", "send_sms", "skill-wolfram-alpha", YOUR_SKILL"]
  },

but both did not result in the picroft not loading the spotify skill upon rebooth. I must say I’m kind of a noob in this sort of thing so I might as well missed something myself :stuck_out_tongue:

Hi there @Vianne - are you able to show us the specific entry you used? That would help us to troubleshoot it.

I recently went through this to disable the default joke skill (I’ve written one that has a much larger database of jokes and performs search on the jokes). The tricky part was finding the “name” of the skill, because a skill has multiple names. The init.py for the Joke skill it has name=“JokingSkill” but that is not the name that is used for blacklisting. Apparently the name is the directory name rather than the name in the skill itself, namely ‘mycroft-joke.mycroftai’.

I believe the spotify joke is not part of the core, so you should be able to tell mycroft to uninstall the spotify skill. When I did that with the joke skill, it would come back as soon as I rebooted the device, apparently because it’s part of the core.

Hi Kevin,

That’s a good heads up that we need to update that little snippet of documentation around the naming of skills.

Despite it being a default skill it’s not technically part of mycroft-core, and you should still be able to blacklist it or any other skill. After rebooting is the “blacklisted_skills” line in your mycroft.conf still intact?

Just to flag, the documentation for blacklisting a Skill now lives at:
https://mycroft-ai.gitbook.io/docs/skill-development/faq#how-do-i-disable-a-skill

Unfortunately there’s a limit to the redirection’s we can do on anchor links

This is incorrect. As per https://github.com/MycroftAI/mycroft-core/blob/master/mycroft/configuration/mycroft.conf, the string to use in the blacklist is the name that appears when you enter :skills in the GUI, eg “fallback-wolfram-alpha.mycroftai”, and not the path from .gitmodules.

2 Likes