Google Workspace CLI: управляй Gmail, Docs и Drive из терминала
Google выпустила CLI для всего Workspace — одна команда для Gmail, Drive, Calendar и 85+ API. Разбираю gws: установка, фичи, интеграция с AI-агентами и честный вердикт.
TL;DR: gws — open-source CLI на Rust для всего Google Workspace. Gmail, Drive, Calendar, Sheets, Docs, Chat через одну команду в терминале. Команды генерируются динамически из Google Discovery Service, а вывод всегда в JSON, что удобно и для скриптов, и для AI-агентов.Если ты когда-нибудь автоматизировал что-то в Google Workspace, ты знаешь эту боль. Отдельный SDK для Drive, отдельный для Gmail, для Sheets свой клиент, и везде разная авторизация. Google, видимо, тоже устала от этого зоопарка и выкатила gws.
Что такое Google Workspace CLI?
gws (Google Workspace CLI) — command-line инструмент для всех API Google Workspace. Gmail, Drive, Calendar, Sheets, Docs, Chat, Admin SDK в одном месте.
gws не хардкодит список команд. Он читает Google Discovery Service при запуске и генерирует команды на лету. Добавили новый эндпоинт в API? gws подхватит его автоматически, обновлять ничего не нужно.
Написан на Rust, лежит на GitHub под Apache 2.0. За 10 дней набрал почти 20 000 звёзд. Формально это не официально поддерживаемый продукт Google, но репо живёт в организации googleworkspace и активно развивается.
По данным VentureBeat, gws делали сразу для двух аудиторий: разработчиков с их скриптами и AI-агентов, которым нужен машиночитаемый вывод.
Быстрый старт
Установка через npm (бинарники уже скомпилированы, Node.js нужен только для установки):
npm install -g @googleworkspace/cli
Или через Cargo, если ты в мире Rust:
cargo install --git https://github.com/googleworkspace/cli --locked
Первый запуск, настройка авторизации:
# Создаёт Google Cloud проект, включает API
gws auth setup
# Логинишься через OAuth
gws auth login
И всё, можно работать:
# Список файлов на Drive
gws drive files list --params '{"pageSize": 5}'
# Отправить письмо
gws gmail +send --to коллега@company.com --subject "Отчёт" --body "Готово"
# Посмотреть расписание
gws calendar +agenda
Весь вывод в JSON. Комбинируешь с jq и вытаскиваешь что угодно:
gws drive files list --params '{"pageSize": 100}' --page-all | jq -r '.files[].name'
Ключевые возможности
Динамическая генерация команд
Я уже писал про это выше, но стоит остановиться подробнее. gws при каждом запуске запрашивает Google Discovery Service и строит дерево команд на лету. Никакого захардкоженного списка. Когда Google добавит метод для Gemini или NotebookLM, gws увидит его сам.
Сейчас это покрывает 85+ скоупов. Можно заглянуть в схему любого метода:
gws schema drive.files.list
Хелпер-команды (+)
Для типовых операций есть команды с префиксом +. По сути это сокращения, чтобы не собирать длинные JSON-параметры руками:
| Сервис | Команды | Что делают |
|---|---|---|
| Gmail | +send, +reply, +forward, +triage |
Работа с почтой |
| Sheets | +append, +read |
Чтение и запись данных |
| Calendar | +agenda, +insert |
Расписание и события |
| Drive | +upload |
Загрузка файлов |
| Chat | +send |
Сообщения в чат |
Ещё есть готовые сценарии для рутины: +standup-report, +meeting-prep, +weekly-digest. Не уверен, насколько они гибкие на практике, но идея хорошая.
Интеграция с AI-агентами
В комплекте 40+ скиллов для AI-агентов и 50+ рецептов. Подключаешь к Gemini CLI как расширение:
gws auth setup
gemini extensions install https://github.com/googleworkspace/cli
Или добавить скиллы в OpenClaw:
ln -s $(pwd)/skills/gws-* ~/.openclaw/skills/
Весь вывод в JSON, агент может парсить ответы без дополнительной обработки. Большинство CLI делают красивый человекочитаемый вывод, а тут сразу машиночитаемый.
Отдельная штука для параноиков (в хорошем смысле): Model Armor. Это фильтрация ответов от prompt injection через Google Cloud:
gws gmail users messages get --params '...' \
--sanitize "projects/P/locations/L/templates/T"
Авторизация и dry-run
С авторизацией всё гибко: OAuth2, сервисные аккаунты, access-токены через env-переменные. Credentials на диске шифруются AES-256-GCM, что приятно. Можно экспортировать для переноса на другую машину:
gws auth export --unmasked > credentials.json
Мне понравился флаг --dry-run для любой команды. Показывает, какой запрос уйдёт в API, без отправки. Полезно, когда ковыряешься в незнакомом методе и не хочешь случайно удалить чужие файлы с Drive.
Тарифы
gws бесплатный и open-source (Apache 2.0). Нужен Google Cloud проект (бесплатного хватит) и аккаунт с доступом к Workspace.
Потестить можно с обычным Gmail. Для Admin API понадобится Workspace-аккаунт организации.
Вердикт
Думаю, gws закрывает реальную дыру. Если ты пишешь скрипты, которые дёргают Gmail, Drive и Sheets, раньше приходилось собирать Франкенштейна из трёх разных библиотек. Теперь это одна команда.
Для AI-агентов ситуация ещё лучше. JSON-вывод, готовые скиллы, подключение к Gemini CLI за одну команду. Если строишь агента, который должен разбирать почту или работать с таблицами, gws стоит посмотреть.
Но я бы не стал строить на нём что-то продакшн-критичное прямо сейчас. Проекту 10 дней, v1.0 ещё нет, и Google честно предупреждает про breaking changes. Для экспериментов и личной автоматизации — отлично. Для чего-то серьёзного — подожди пару месяцев.
Что ещё почитать
- CLI-Anything: превращаем любой софт в CLI для AI-агентов — похожая идея, но для произвольного софта
- Мультиагенты в OpenAI Codex — настройка агентов для разработки
- Claude Code: как сэкономить токены на MCP с Tool Search — MCP и интеграция инструментов