Remove/replace core skills

I would like to replace the skill-npr-news with my own version that plays news from a different source. I tried to remove skill-npr-news from /opt/mycroft/skills but it gets reinstalled every time I restart the mycroft-skills service.

PS. In the long run, I think we ought to have just one news skill that could be configured to work with multiple news sources, i.e. “Hey mycroft, tell me news by BBC.” But that’s already another topic.

1 Like

Hey j24,

That’s a good point and something I didn’t think about when it came to updating skills automatically. Long term, we need to think about it. Maybe not update if there have been local changes? But what if you break it and want it fixed? I guess you could delete it and it would re-install. Right now, you can edit the skill directly as it is if you want.

Ideally, it would be an optional, configurable setting, maybe? Honestly, let me know what you think since you want things to still work and be able to edit the default skills.
The feed address is in the mycroft.config file, so you could try editing that to whatever you want.
Another option is to add another intent handler for BBC news or just edit the code directly so that it pulls from where you want.

Heyo @j24

Today we have two ways to do that, you can remove everything inside the npr skill but leave the folder or you can change msm script to doesn’t install npr-news.

the msm is inside msm/msm

Thanks for the tips, guys!

@Karl, in my opinion, ideally the skills would work similarly to packages in linux package management or apps on your phone: You start with a set of preinstalled skills (apps, packages), but you can choose to remove any of them. Only the installed skills are kept up to date. If you want an uninstalled skill back you reinstall it. There would be a separate msm command to reset the default set of core skills (hereafter msm dist-upgrade) reinstalling any removed ones and installing any new core skills there might be available.

With user modified skills, I think there are two viable options in the system proposed above: 1) User modified skills are not touched by msm (check by e.g. git status). This could be overridden by msm dist-upgrade. 2) To edit a skill user would fork it and remove the original.

1 Like