MCPcopy
hub / github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client

github.com/Melvin-Abraham/Google-Assistant-Unofficial-Desktop-Client @v1.1.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.1.0 ↗
388 symbols 1,114 edges 23 files 136 documented · 35%
README

Google Assistant Unofficial Desktop Client

Build Downloads Issues License Top Language Last Commit Commits since last release Milestone v2.0.0

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

Download

You can build the assistant on your machine if you prefer (see How to Build). 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). You can download from other official sources as well.

Windows (using winget)

If you are on Windows 11, chances are you have winget pre-installed. If you are on older version of Windows (Windows 10) and don't have it installed, check out Install Winget documentation section to learn how to install it.

⚡ Stable versions:

PS> winget install "g-assist" -e

🧪 Preview Versions (Pre-release versions):

PS> winget install "g-assist-preview" -e

MacOS (using brew)

Visit brew.sh to learn how to install brew if you don't have it installed on your machine.

$ brew install --cask google-assistant

Linux (using snap)

Some linux distros like Ubuntu, KDE Neon, Manjaro, Zorin OS, etc. come pre-installed with snap. For distros without out-of-the-box support for snaps, visit Installing snapd documentation page.

Manually download from the Snapstore:

Get it from the Snap Store

⚡ Stable versions:

$ sudo snap install g-assist

🧪 Preview versions (Pre-release versions):

If you want to install release candidates:

$ sudo snap install g-assist --candidate

If you want to install beta versions:

$ sudo snap install g-assist --beta

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.

Default Keyboard Shortcut

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

Note: Keyboard shortcut is configurable in the settings

Other Libraries Used

  • p5.js:
  • For visualization purpose when the user speaks through mic.
  • Link: https://p5js.org/

  • aud_player.js:

  • For playing audio through speakers.
  • Link: https://github.com/ItsWendell/google-assistant-desktop-client/blob/develop/src/renderer/providers/assistant/player.js

  • microphone.js:

  • For recording audio using Web API.
  • Link: https://github.com/ItsWendell/google-assistant-desktop-client/blob/develop/src/renderer/providers/assistant/microphone.js

  • google-assistant:

  • Node.js implementation of the Google Assistant SDK
  • Link: https://github.com/endoplasmic/google-assistant

  • bumblebee-hotword:

  • A minimalist hotword / wake word for the web, based on Porcupine
  • Link: https://github.com/jaxcore/bumblebee-hotword

Core symbols most depended-on inside this repo

on
called by 71
app/src/updater/updaterGeneric.js
getEffectiveTheme
called by 45
app/src/main.js
stop
called by 45
app/src/lib/microphone.js
debugLog
called by 36
app.js
start
called by 34
app/src/lib/microphone.js
consoleMessage
called by 21
app/src/main.js
displayErrorScreen
called by 18
app/src/main.js
sendStatusToWindow
called by 14
app/src/updater/updaterMain.js

Shape

Function 324
Method 52
Class 12

Languages

TypeScript100%

Modules by API surface

app/src/lib/p5.min.js159 symbols
app/src/main.js60 symbols
app/src/lib/pv_workers/pv_porcupine.js39 symbols
app.js19 symbols
app/src/updater/updaterRenderer.js15 symbols
app/src/lib/audio_player.js14 symbols
app/src/lib/p5.sound.min.js13 symbols
app/src/updater/updaterMain.js11 symbols
app/src/common/utils.js11 symbols
app/src/updater/updaterGeneric.js9 symbols
app/src/lib/microphone.js9 symbols
app/src/keybinding.js8 symbols

Dependencies from manifests, versioned

bumblebee-hotword0.2.1 · 1×
electron10.3.2 · 1×
electron-builder23.6.0 · 1×
electron-is-accelerator0.2.0 · 1×
electron-log4.4.8 · 1×
electron-updater5.3.0 · 1×
eslint8.26.0 · 1×
eslint-config-airbnb19.0.4 · 1×
eslint-config-airbnb-base15.0.0 · 1×
eslint-plugin-import2.26.0 · 1×
express4.18.2 · 1×
google-assistantgithub:Melvin-Abraha · 1×

For agents

$ claude mcp add Google-Assistant-Unofficial-Desktop-Client \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact