Awesome Open Source
Awesome Open Source

Google Assistant Unofficial Desktop Client

Build Dependencies Downloads Issues License Top Language Last Commit Commits since last release

G Assist Banner

Google Assistant Unofficial Desktop Client is a cross-platform desktop client for Google Assistant based on Google Assistant SDK.

Note:

The "Google Assistant Unofficial Desktop Client" is under development. So, if you find any bugs or have any suggestion, feel free to post an issue or a pull request.

Inspiration

The design is inspired by Google Assistant in Chrome OS and comes in both Light Mode (beta) and Dark Mode 😉.

G Assist Screenshot

Getting Started

In order to use the client, you must have a "Key File" and "Token" for authentication which you can get by going through Device Registration process. You can go through the wiki given below to get started.

"Setup Authentication for Google Assistant Unofficial Desktop Client" Wiki (For both Device Registration & Authentication help):

https://github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client/wiki/Setup-Authentication-for-Google-Assistant-Unofficial-Desktop-Client

Other References

If you want a user friendly registration method, use Device Registration UI:

https://developers.google.com/assistant/sdk/guides/library/python/embed/config-dev-project-and-account

If you want to use a CLI tool to complete the Device Registration and Authentication process manually, read the following:

https://developers.google.com/assistant/sdk/reference/device-registration/register-device-manual

After you have registered your device and downloaded the required authentication files, you can head on to Settings and set the "Key File Path" and "Saved Tokens Path" to the location where the respective files are located.

Want to Contribute?

You are more than welcome to contribute to all kinds of contributions:

  • 🤔 Request/Suggest a feature
  • 🐛 Report a bug
  • 📖 Make this documentation better
  • 💻 Contribute with the code

Before you start, we highly recommend you check the Google Assistant Unofficial Desktop Client's contributing guidelines.

How to Build?

Using npm


# Get dependencies from npm
npm install

# Run the Assistant
npm start

# Build the Assistant
npm run dist

Using yarn


# Get dependencies from npm registry
yarn install

# Run the Assistant
yarn start

# Build the Assistant
yarn dist

Download

If you don't want to build the project for yourself, you can download the Assistant Setup/Installer for the respective platform from here (releases)

Linux Build

If you are a linux user, Snap build is recommended over AppImage. You can download the snap from snapstore.

Get it from the Snap Store

Default Keyboard Shortcut

  • Windows: Win + Shift + A
  • MacOS: Cmd + Shift + A
  • Linux: Super + Shift + A

Note: Keyboard shortcut is configurable in the settings

TODO

  • [x] Set build for Mac and Linux in package.json
  • [x] Create Config File
  • [x] Remove 'auth' from the app folder
  • [ ] Respond to "Ok Google" or "Hey Google"
  • [x] Activate Mic for continuousConverstion only when audio output is done
  • [x] Use different dependency for audio recording
  • [ ] Improve Carousel UI Rendering in the main_area
  • [x] Improve Error Handling
  • [x] Improve Assistant Audio Output
  • [x] Turn off webAudio after visualization
  • [x] "Enable Audio Output" in Settings
  • [x] Divide Settings into sections
  • [x] Don't accept empty queries
  • [x] Info for each Setting
  • [x] Animation while talking
  • [x] Ping when activating mic
  • [x] Welcome screen for first-time users
  • [x] Display images from Google Images
  • [x] Option to disable auto-scaling
  • [x] Cleanup CSS
  • [x] Remove sox as a dependency

Other Libraries Used


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (68,751) 
electron (930) 
cross-platform (677) 
electron-app (140) 
desktop-app (92) 
google-assistant (29) 

Find Open Source By Browsing 7,000 Topics Across 59 Categories

Advertising 📦 10
All Projects
Application Programming Interfaces 📦 124
Applications 📦 192
Artificial Intelligence 📦 78
Blockchain 📦 73
Build Tools 📦 113
Cloud Computing 📦 80
Code Quality 📦 28
Collaboration 📦 32
Command Line Interface 📦 49
Community 📦 83
Companies 📦 60
Compilers 📦 63
Computer Science 📦 80
Configuration Management 📦 42
Content Management 📦 175
Control Flow 📦 213
Data Formats 📦 78
Data Processing 📦 276
Data Storage 📦 135
Economics 📦 64
Frameworks 📦 215
Games 📦 129
Graphics 📦 110
Hardware 📦 152
Integrated Development Environments 📦 49
Learning Resources 📦 166
Legal 📦 29
Libraries 📦 129
Lists Of Projects 📦 22
Machine Learning 📦 347
Mapping 📦 64
Marketing 📦 15
Mathematics 📦 55
Media 📦 239
Messaging 📦 98
Networking 📦 315
Operating Systems 📦 89
Operations 📦 121
Package Managers 📦 55
Programming Languages 📦 245
Runtime Environments 📦 100
Science 📦 42
Security 📦 396
Social Media 📦 27
Software Architecture 📦 72
Software Development 📦 72
Software Performance 📦 58
Software Quality 📦 133
Text Editors 📦 49
Text Processing 📦 136
User Interface 📦 330
User Interface Components 📦 514
Version Control 📦 30
Virtualization 📦 71
Web Browsers 📦 42
Web Servers 📦 26
Web User Interface 📦 210