- Un outil permettant de piloter l’ensemble des API Google Workspace depuis une CLI unique, avec prise en charge de Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, etc.
- S’appuie sur le Google Discovery Service pour générer dynamiquement la structure des commandes à l’exécution, ce qui permet de refléter automatiquement l’ajout de nouvelles API
- Inclut plus de 100 skills pour agents IA et prend en charge l’intégration avec les LLM via une sortie JSON structurée
- Propose divers modes d’authentification, notamment OAuth, Service Account et environnements CI, ainsi que des fonctions de sécurité des réponses via Model Armor
- Une CLI centrée sur l’automatisation, pensée à la fois pour les humains et l’IA, qui améliore l’administration unifiée et l’efficacité de l’automatisation dans l’écosystème Google Workspace
Vue d’ensemble
gws est une CLI unifiée dédiée à Google Workspace, capable d’exécuter toutes les API — Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, etc. — depuis une seule ligne de commande
- La structure des commandes est générée automatiquement via le Google Discovery Service, avec prise en compte immédiate des nouveaux endpoints d’API
- Toutes les sorties sont fournies au format JSON structuré, ce qui facilite l’intégration avec des agents IA ou des scripts d’automatisation
- Le projet est en développement actif et des changements majeurs peuvent survenir avant la v1.0
Fonctionnalités principales
- Fournit des fonctions de CLI conviviales comme l’autocomplétion,
--help, --dry-run et la pagination automatique
- Inclut plus de 100 skills basés sur
SKILL.md pour l’intégration avec des agents IA
- Comprend plus de 50 recettes avancées pour des services clés comme Gmail, Drive, Docs, Calendar et Sheets
- Après installation de l’extension Gemini CLI, l’agent Gemini peut appeler directement les commandes et skills
gws
- Grâce au mode serveur MCP (Model Context Protocol), il est possible d’exposer les API Workspace comme outils dans Claude Desktop, Gemini CLI, VS Code, etc.
Méthodes d’authentification
- Authentification interactive locale : identifiants stockés dans le trousseau du système d’exploitation, chiffrés en AES-256-GCM
- Configuration OAuth manuelle : création directe du client dans la Google Cloud Console
- Authentification assistée par navigateur ou agent : gestion manuelle ou automatique de l’autorisation OAuth
- Authentification pour environnements CI/serveur : export des identifiants via
gws auth export puis définition via des variables d’environnement
- Prise en charge des Service Accounts et des jetons préémis, avec priorité dans l’ordre : jeton > fichier d’identifiants > stockage dans le trousseau
Skills pour agents IA
- Les plus de 100 skills inclus dans le dépôt automatisent chaque API ainsi que des workflows généraux
- La commande
npx skills add permet d’installer l’ensemble des skills ou seulement certains
- Dans un environnement OpenClaw, les skills peuvent être synchronisés par lien symbolique ou par copie
- Le skill
gws-shared inclut une installation automatique si la CLI n’est pas encore installée
Extension Gemini CLI
- Installation via la commande
gemini extensions install https://github.com/googleworkspace/cli
- Une fois installée, l’agent Gemini CLI peut appeler directement les commandes et skills
gws
- Hérite automatiquement des informations d’authentification de
gws, sans connexion supplémentaire
Fonction serveur MCP
- La commande
gws mcp lance un serveur MCP pour exposer les API Workspace à des clients compatibles MCP
- Exemple :
gws mcp -s drive,gmail,calendar
- Chaque service ajoute de 10 à 80 outils, à sélectionner selon les limites d’outils du client (50 à 100)
- Les flags
--workflows et --helpers permettent d’exposer des workflows et des outils utilitaires
Fonctionnalités avancées
- Upload multipart : envoi de fichiers et création de métadonnées en une seule opération
- Contrôle de la pagination : options
--page-all, --page-limit, --page-delay
- Intégration de Model Armor : analyse des réponses API pour bloquer les injections de prompt
- Contrôle via les variables d’environnement
GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE et GOOGLE_WORKSPACE_CLI_SANITIZE_MODE
Architecture
- Fonctionne selon une structure de parsing en 2 étapes
- Identification du service via le premier argument
- Récupération du document Discovery (cache de 24 heures)
- Génération de l’arborescence
clap::Command
- Nouvelle analyse des arguments et authentification
- Exécution de la requête HTTP
- Tous les résultats (succès, erreurs, métadonnées) sont renvoyés dans une structure JSON
Dépannage
- Si une API n’est pas activée, une erreur
accessNotConfigured survient
- Cliquer sur le lien du champ
enable_url pour activer l’API puis réessayer
- La commande
gws auth setup permet d’activer automatiquement les API nécessaires
Développement et déploiement
- Licence Apache-2.0. Rust (99,5 %)
- Ce n’est pas un produit officiel de Google, mais un projet open source non officiel
2 commentaires
Contrairement à gog, l’approche qui consiste à générer dynamiquement des commandes pour toutes les API de Google est assez originale.
Le développeur est Justin Poehnelt, du DevRel de Google Workspace, ce qui inspire encore plus confiance.
Avis sur Hacker News
À l’ère de l’IA et des MCPs, on dirait que les entreprises se mettent soudain à construire de vrais outils API/CLI
On dirait la version CLI de Workspace Studio
C’est agréable de voir Google évoluer dans le sens où les développeurs veulent réellement utiliser les apps
Je pense que c’est bien mieux qu’un dashboard Google ou qu’une bibliothèque tierce bricolée
Même si Google dit que ce n’est pas pris en charge officiellement, il y a de fortes chances que ce soit mieux soutenu en interne qu’en externe
GCP Next est prévu du 22 au 24 avril
J’espère que ce projet continuera d’être maintenu après ça
Je me demande pourquoi on utilise
npmpour installer un binairerustComme les agent skills veulent maintenant des CLI, j’aimerais que cette tendance s’installe durablement
J’imagine déjà tous les CTO s’agiter pour brancher ça à leur instance OpenClaw
Le fait que les commandes disponibles changent dynamiquement ressemble à un anti-pattern, mais peut-être que l’IA saura gérer ça
J’aimerais qu’Apple adopte la même approche pour iCloud
C’est intéressant, mais un peu inquiétant. Si ce n’est pas un produit officiel de Google, il pourrait y avoir un risque de violation des TOS