• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Graphical User Interface used by the Mycroft Mark II and more

Mycroft GUI

Graphical User Interface powered by Qt and Kirigami for Mycroft AI



Getting Started

The following guide will provide a set of instructions to get you started with installing Mycroft GUI on your system. Note: All non virtual environment setups should generally follow the General Setup Instructions steps.

General Setup Instructions

The interactive Installation script supports installation on KDE Neon, K/Ubuntu 20.04 & Manjaro Linux, It also supports installation and building on other distributions and platforms but system dependencies will be have to installed manually as mentioned in the Installation Script.

  1. Fetch Repository and Run Installation Script

     cd ~
     git clone https://github.com/mycroftai/mycroft-gui
     cd mycroft-gui
     bash dev_setup.sh    
    
  2. Running Mycroft GUI:

    mycroft-gui-app
    

Virtual Environment Setup Instructions

  1. Download and Install VirtualBox

  2. Download Latest (Any Supported) Distribution ISO.

  3. Open VirtualBox and create a system installation

  4. Within the VM, open a terminal session and type:

     cd ~
     git clone https://github.com/mycroftai/mycroft-gui
     cd mycroft-gui
     bash dev_setup.sh
    
  5. (Optional) Customize Plasma settings for GUI debugging purposes

    • Disable screensaver
      • Click the > icon, type: Screen Locking
      • Untick "Lock screen automatically after:"
      • Click OK
  1. Running Mycroft GUI:

    mycroft-gui-app
    

Usage

Mycroft GUI can be used on an Local Environment as well as a Remote Environment

Local Environment

Note: Boot your device or run ./start-mycroft.sh all

  1. Invoke using mycroft-gui-app in any terminal, or Mycroft icon from your desktop application launcher.

  2. Click Start button in the middle of the window if Autoconnect is disabled

  3. Talk to your Mycroft!

Remote Environment

Note: Remote device / server must have mycroft services running or ./start-mycroft.sh all on remote device / server

  1. Invoke using mycroft-gui-app in any remote terminal session, or Mycroft icon from your remote desktop/platform application launcher.

  2. Configuring Mycroft GUI for externally hosted Mycroft-Core:

    • Click on the hamburger menu in the lower left

    • Select 'Settings'

    • Enter the IP address of your device. If your device is at 192.168.2.2, enter 'ws://192.168.2.2'

    • Close

  3. Click Start button in the middle of the window if Autoconnect is disabled

  4. Talk to your Mycroft!

  5. Additional Notes:

    • CAUTION: The Mycroft messagebus is an open websocket with no built-in security measures by default. We strongly recommend that you do not expose the messagebus ports outside a secure LAN/PAN unless you have other security measures in place.

    • For Externally Hosted Mycroft-Core, one would require to sync skills, one can simply use the provided sync script from the repository to perform a sync

      • Run bash sync_skills.sh 192.168.1.1 [replace with your remote ip]
    • For Externally Hosted Mycroft-Core, but sure to disable the firewall on the Raspberry Pi. You can do this via sudo ufw disable

    • Generally, the GUI interaction is managed by an enclosure-specific skill that orchestrates things. For example, the Mark 2 uses skill-mark-2.

    • Lightweight debugging can be done from Mycroft's CLI. You can see commands being sent to GUI clients by hitting Ctrl+G within the CLI

    • Multiple GUIs can safely run against a single Mycroft Core instance.

Development & Contributing

Users & Developers can contribute in advancement of Mycroft GUI in several ways, below mentioned methods will help you identify contribution targets.

Contributing To Mycroft GUI API

Mycroft GUI API is the protocol layer designed to talk and integrate with Mycroft Core Services, It handles various functions some of which include setting, managing and parsing session data and handling delegate activities for skill instances, API Implementation documentation can be found at:

Developing Skills With An User Interface

Mycroft enabled devices with displays such as the Mark II, KDE Plasmoid provide skill developers the opportunity to create skills that can be empowered by both voice and screen interaction. The display interaction technology is based on the QML user interface markup language that gives you complete freedom to create in-depth innovative interactions without boundaries, A detailed documentation on getting started with developing skills with an user Interface is available at Mycroft Documentation - Displaying Information

Troubleshooting

Having trouble or facing issues with Mycroft GUI ? You can use the below guide to debug Mycroft GUI

Debugging Mycroft GUI

  1. Debugging Mycroft GUI Application:

    • Run Mycroft GUI application from a terminal

    • Errors should be visible on teriminal output, copy output to a log file

    • Open a relevant issue and post your log file

  2. Debugging Skills & Session Data:

    • Start Mycroft CLI client and use ctrl+g to view session data being passed to Mycroft GUI

    • For more detailed logging add { "log_level": "debug"} to your mycroft system configuration

    • More detailed logs can be retrived from "/var/logs/mycroft/enclosure.log" & "/var/logs/mycroft/skills.log"

  3. Debugging on Remote Device (Example: Mark-1):

    • SSH to the Mark 1

    • Run sudo service mycroft-enclosure-client stop

    • Run sudo su mycroft

    • Run mycroft-enclosure-client This will start the client and show Debug() messages on the console.

More Repositories

1

mycroft-core

Mycroft Core, the Mycroft Artificial Intelligence platform.
Python
6,511
star
2

mimic3

A fast local neural text to speech engine for Mycroft
Python
1,068
star
3

mycroft-precise

A lightweight, simple-to-use, RNN wake word listener
Python
848
star
4

mimic1

Mycroft's TTS engine, based on CMU's Flite (Festival Lite)
C
818
star
5

enclosure-picroft

Mycroft interface for Raspberry Pi environment
Shell
806
star
6

mycroft-skills

A repository for sharing and collaboration for third-party Mycroft skills development.
HTML
758
star
7

adapt

Adapt Intent Parser
Python
712
star
8

mimic-recording-studio

Mimic Recording Studio is a Docker-based application you can install to record voice samples, which can then be trained into a TTS voice with Mimic2
JavaScript
499
star
9

Mycroft-Android

Android companion app, sends commands from your Android device to your Mycroft system and returns the output as speech or other medium to the Android device.
Kotlin
351
star
10

padatious

A neural network intent parser
Python
159
star
11

selene-backend

Microservices and web apps to support Mycroft devices
Python
144
star
12

ZZZ-RETIRED__openstt

RETIRED - OpenSTT is now retired. If you would like more information on Mycroft AI's open source STT projects, please visit:
143
star
13

mimic3-voices

Voice models for Mimic 3 text to speech system
HTML
128
star
14

personal-backend

WORK IN PROGRESS: A Flask personal backend alternative for running your own version of https://home.mycroft.ai
Python
114
star
15

hardware-mycroft-mark-II

Mycroft's Mark II Rpi mechanical, electrical and industrial designs
Python
109
star
16

docker-mycroft

Mycroft Development Environment inside Docker!
Dockerfile
97
star
17

hardware-mycroft-mark-1

Open-sourcing our mechanical, electrical and industrial designs
93
star
18

MycroftCore-Android

MycroftCore on Android as a native app
Java
87
star
19

documentation

Mycroft.AI documentation for all public facing technical components.
Python
80
star
20

sonopy

A simple audio feature extraction library
Python
79
star
21

lingua-franca

Mycroft's multilingual text parsing and formatting library
Python
75
star
22

selene-ui

Web applications to support the Mycroft AI project.
TypeScript
50
star
23

Precise-Community-Data

Pre-trained Precise models and training data provided by the Mycroft Community
48
star
24

ZZZ-RETIRED__mycroft-core-documentation

ZZZ ARCHIVED - Documentation for Mycroft Core.
34
star
25

installers

Installers and instructions for getting Mycroft working on different equipment, OS platforms and desktops.
Shell
28
star
26

mycroft-skills-kit

Mycroft Skills Kit
Python
28
star
27

contributors

Contributors building the Mycroft open source project
23
star
28

ZZZ-RETIRED__rpi3-headless-wifi-setup

Retired project, replaced by:
Python
21
star
29

mycroft-dinkum

A consumer ready version of Mycroft specifically for the Mark II.
Python
20
star
30

skill-weather

Mycroft AI official Weather Skill, providing weather conditions and forecasts.
Python
19
star
31

skill-wiki

Query Wikipedia articles
Python
18
star
32

skill-hello-world

Mycroft AI Hello World Skill - use this basic Skill to see how Mycroft AI Skills work.
Python
16
star
33

mimic1-core

Core of the mimic TTS system
C
14
star
34

mycroft-skills-manager

Mycroft Skills Manager
Python
14
star
35

skill-alarm

Mycroft AI official Alarm Skill - Set single and recurring alarms, with a choice of alarm sounds
Python
14
star
36

skill-reminder

Mycroft AI official Reminder Skill - set reminders
Python
14
star
37

skill-singing

Mycroft AI official Singing Skill - Mycroft speaks lyrics to popular songs
Python
14
star
38

mycroft-messagebus-client

Python module for connecting to the mycroft messagebus
Python
13
star
39

mycroft-precise-python-experiments

Python Experiments for Mycroft Precise Wake Word Listener
Python
13
star
40

snapcraft-mycroft-core

This project is for building mycroft-core snaps
Jsonnet
13
star
41

skill-installer

Mycroft AI official Skill installation Skill - allowing voice installation of Skills
Python
12
star
42

pylisten

A simple pyaudio microphone interface
Python
11
star
43

padaos

A rigid, lightweight, dead-simple intent parser
Python
11
star
44

ZZZ-RETIRED__adapt-documentation

Retired repo, formerly was the source of docs shown on https://adapt.mycroft.ai
11
star
45

skill-desktop-launcher

Mycroft AI official Desktop Launcher Skill - launch applications in Linux
Python
11
star
46

precise-data

Binary data used for Mycroft Precise
10
star
47

skill-volume

Mycroft AI official Volume Skill - control the volume of your Device
Python
10
star
48

fallback-duckduckgo

Mycroft AI official Duck Duck Go Skill - used as a fallback if an Utterance can't be matched to an Intent
Python
9
star
49

skill-npr-news

Mycroft AI official News Skill, providing the latest news report from your favorite broadcast.
Python
9
star
50

enclosure-mark1

Replacing the faceplate repo
C++
9
star
51

ML-Tools

Tools for ML Research
Jupyter Notebook
8
star
52

skill-stop

Mycroft AI official Stop Skill - stop the actions of a Skill that are in progress
Python
8
star
53

mycroft-skills-data

Metrics and data relating to Skills built for the Mycroft Core system
8
star
54

fallback-wolfram-alpha

Mycroft AI official Wolfram Alpha Skill - used as a fallback if an Intent is not matched
Python
8
star
55

ZZZ-RETIRED__mycroft-slackbot

Retired, Mycroft Slack is no longer active
Java
8
star
56

skill-joke

Mycroft AI official Joke Skill - provide basic jokes
Python
7
star
57

skill-camera

Camera Skill for Mycroft AI
QML
7
star
58

mycroft-timer

Mycroft AI official Timer Skill - set multiple named timers
Python
7
star
59

skill-homescreen

Python
7
star
60

skill-mark-2

Control of the Mycroft Mark 2 enclosure
QML
7
star
61

plugin-tts-mimic3

Text to speech plugin for Mycroft using Mimic 3
Python
7
star
62

skill-audio-record

Mycroft AI official Audio Record Skill - record audio and play it back
Python
7
star
63

skill-personal

Mycroft AI official Personality Skill - answers basic personality questions around Mycroft
Python
7
star
64

skill-spelling

Mycroft AI spelling Skill
Python
6
star
65

skill-stock

Mycroft AI official Stock Skill - providing current prices of stocks
Python
6
star
66

skill-date-time

Mycroft AI official Date and Time Skill, providing the current time, date and day of week for cities around the world.
Python
6
star
67

mycroft-gui-mark-2

QML
6
star
68

skill-playback-control

Mycroft AI official Playback Control Skill - providing Intents for other Skills to use common playback functionality (via Common Play)
QML
6
star
69

skill-ip

Mycroft AI official IP Skill - find the IP address of your Device
Python
5
star
70

skill-fallback-persona

Mycroft AI official Persona Skill - used as a fallback if the Utterance can't be matched to an Intent
Python
5
star
71

mark-ii-sandbox

Image for the Mark II based on Raspberry Pi OS
Python
5
star
72

skill-configuration

Mycroft AI official Configuration Skill - synchronize settings with home.mycroft.ai
Python
5
star
73

docker-openvpn-client

An OpenVPN client built into a docker container. Allows for attaching other containers to a VPN
Shell
5
star
74

skill-query

Skill Negotiating for the best source for an answer via Common QA
Python
5
star
75

mimic1-packaging

Shell
5
star
76

skill-pairing

Mycroft AI official Pairing Skill - connect your Device to home.mycroft.ai
QML
5
star
77

skill-speak

Mycroft AI official Speak Skill - make Mycroft speak back text
Python
5
star
78

mycroft-wifi-setup

Mycroft WiFi Setup Client
Python
4
star
79

respeaker-dev-filesystem

Development file system for Seeed ReSpeaker Core v2
4
star
80

mimic1-full

Build mimic (without runtime plugins if desired)
C
4
star
81

pako

The universal package manager library
Python
4
star
82

fallback-unknown

Mycroft AI official Unknown Fallback Skill - used if no Intent is matched to an Utterance
Python
4
star
83

arriz

A real-time array visualization tool
Python
4
star
84

skill-release-test

Mycroft AI official Release Test Skill - used during `mycroft-core` release testing
Python
4
star
85

mycroft-mark-1

Mycroft AI official Mark 1 Skill - control the Mark 1 enclosure
Python
4
star
86

rnn-demo

Demo of using various recurrent networks to make streaming predictions
Python
4
star
87

mycroft-devices

Shell
3
star
88

skill-support

Mycroft AI official Support Skill - create information for a support request using voice
Python
3
star
89

skill-send-sms

Python
3
star
90

design

Place to share designy things from Mycroft.
3
star
91

mycroft-core-release

A project to automate the mycroft-core release process.
Python
3
star
92

mimic1-documentation

Documentation for https://github.com/mycroftai/mimic1
3
star
93

skill-naptime

Mycroft AI official Naptime Skill - put Mycroft to sleep for a while
Python
3
star
94

mimic1-english

English language support for the mimic TTS system
C
3
star
95

ZZZ-RETIRED__chatter

A Mycroft AI chatbot solution framework
3
star
96

skill-repeat-interactions

Mycroft AI official Repeat Interaction Skill - repeat recent commands
Python
3
star
97

mark-ii-product

Software packaging for the default Mark II operating system.
C
2
star
98

skill-version-checker

Mycroft AI official Version Checker Skill - check the version of mycroft-core that is installed
Python
2
star
99

skill-standard-gui

Handles standard, non-platform-specific GUI activities.
Python
2
star
100

skill-dial-call

Python
2
star