pimenov.ai

База знаний

gog — Google Workspace в терминале: настройка и сценарии для Codex

Руководство по gog — open-source CLI для Google Workspace в терминале: установка, авторизация, режимы безопасности и практические сценарии для Codex и ИИ-агентов.

Опубликовано

gog — это один CLI-бинарник, который открывает весь Google Workspace из терминала: Gmail, Календарь, Диск, Документы, Таблицы, Презентации, Формы и админку. Это руководство — продолжение настройки Google Workspace: домен и почта у вас уже подключены, а теперь мы подключаем к ним терминал и передаём часть рутины Codex.

🔗
Это продолжение руководства Google Workspace для бизнеса: руководство для новичка. Там вы подключали домен, почту и доступы. Здесь — как управлять всем этим из терминала и передать часть работы агенту.

Что такое gog и зачем он пользователю Codex

gog (пакет gogcli) — open-source инструмент на Go: один бинарник вместо десятка вкладок браузера и самописных обёрток над Google API. Он закрывает Gmail, Calendar, Drive, Docs, Sheets, Slides, Forms, Apps Script, Contacts, People, Tasks, Chat, Groups, Keep и Workspace Admin.

Для Codex это «руки» к вашему рабочему Google. Агент не лезет в сырой API, а вызывает готовую команду и получает стабильный JSON, который легко разобрать и передать дальше по цепочке.

💡
CLI (command-line interface) — программа, которой вы управляете текстовыми командами в терминале, а не кнопками в окне. Одна команда равна одному действию, и его легко повторить, записать в скрипт или отдать агенту.

Что умеет gog

СервисЧто делаете из терминала
GmailПоиск по телу писем, чтение, отправка, пересылка с заметками, автоответы, «обеззараженный» вывод письма для агента
CalendarСобытия на сегодня и за период, вторичные календари
DriveАудит без изменений: дерево папок, размеры, инвентаризация, выдача прав
DocsЗагрузка Markdown напрямую в документ, форматирование, атомарные пакеты правок
SheetsДобавление строк в таблицы, редактирование графиков
SlidesСборка презентации из Markdown, рендер превью слайдов
AdminСоздание пользователей, орг-юниты и группы через Admin SDK и domain-wide delegation
ЕщёForms, Contacts/People, Tasks, Apps Script, Chat, Groups, Keep, Classroom, YouTube, Photos Picker, бэкап аккаунта

Чем gog удобен именно агенту

  • Один бинарник на все API. Не нужно поднимать отдельные клиенты под каждый сервис.
  • Стабильный вывод. --json даёт предсказуемый JSON в stdout, --plain — TSV для awk. Человеческие подсказки и прогресс идут в stderr, поэтому конвейеры остаются разбираемыми.
  • Runtime-контракт. gog schema --json показывает форму команд, коды выхода, режимы вывода и текущее состояние безопасности. Агент узнаёт возможности на лету.
  • Мультиаккаунт и мультиклиент. Много Google-аккаунтов и OAuth-проектов в одном конфиге.
  • Слои безопасности. Режим только чтения, гарды команд, обёртка недоверенного контента, готовые safety-профили.

Установка и первая авторизация

Заложите минут 10–15. Команды ниже готовы к копированию.

Что нужно заранее:

  • Google-аккаунт в вашем Workspace (например, you@вашакомпания.ru).
  • Проект и OAuth-клиент в Google Cloud Console — из него вы скачаете файл client_secret.json.
  • Менеджер пакетов Homebrew (на macOS) или другой способ установки со страницы загрузки.

Шаги:

Шаг 1. Установите gog.

brew install openclaw/tap/gogcli

Шаг 2. Создайте OAuth-клиент в Google Cloud Console и скачайте client_secret.json.

Шаг 3. Сохраните OAuth-клиент в gog.

gog auth credentials ~/Downloads/client_secret.json

Шаг 4. Авторизуйте рабочий аккаунт (откроется браузер с экраном согласия Google). Флаг --services сразу сужает доступ до нужных сервисов:

gog auth add you@вашакомпания.ru --services gmail,calendar,drive

Шаг 5. Проверьте, что всё работает.

gog calendar events --today

Если что-то пошло не так, проверьте состояние авторизации и keyring:

gog auth doctor --check
gog auth keyring
💡
OAuth-клиент — это «пропуск», который вы выдаёте gog от имени своего Google-проекта. Он определяет, к каким сервисам разрешён доступ. Один раз настроили в Cloud Console, дальше gog работает с ним.
⚠️
client_secret.json и токены доступа — это ключи от вашей почты и диска. gog хранит их в системном keyring, а не в открытом виде. Не коммитьте этот файл в репозиторий и не передавайте агенту его содержимое.

Стабильный вывод: контракт для агента

Главная причина, почему gog хорошо ложится в работу с Codex, — предсказуемый вывод.

  • --json — стабильный JSON-конверт в stdout. Это то, что агент парсит и обрабатывает.
  • --plain — TSV для обработки через awk, cut и подобное.
  • Человеческий вывод, вопросы и предупреждения всегда идут в stderr, поэтому пайп со стандартным выводом не ломается.
# Письма за неделю в JSON — агент сам разберёт результат
gog gmail search 'newer_than:7d' --max 10 --json

Команда gog schema --json отдаёт машинно-читаемое описание всех команд, коды выхода и текущие настройки безопасности. Агент один раз читает схему и дальше работает по контракту, а не угадывает флаги.

Безопасность: как отдать gog агенту и не словить катастрофу

gog имеет доступ к почте, диску и админке. Если отдать его агенту «как есть», одна неудачная команда может разослать письма или удалить файлы. Поэтому безопасность встроена слоями.

  • Режим только чтения. Агент сможет искать и читать, но не отправлять и не удалять.
  • Гарды команд. Разрешаете конкретный список команд, остальное блокируется.
  • Safety-профили. Заранее «запечённые» профили ограничивают бинарник до того, как вы отдадите его недоверенному вызову.
  • Обёртка недоверенного контента. Флаг --sanitize-content оборачивает тело письма так, чтобы текст из входящего не воспринимался агентом как команда. Это защита от промпт-инъекций.
  • Preview-first аудиты. drive tree, drive du, inventory и contacts dedupe по умолчанию только показывают результат. Чтобы реально что-то изменить, нужен явный --apply.
# Прочитать письмо для агента в безопасном виде
gog gmail get <messageId> --sanitize-content --json
🔴
Минимальные права — правило по умолчанию. Давайте агенту ровно тот доступ, который нужен для задачи. Начинайте с профиля только для чтения и расширяйте права осознанно, по одной команде за раз.

gog как MCP-сервер для Codex

У gog есть режим MCP-сервера: он отдаёт типизированные, заранее разрешённые инструменты агентным клиентам. Codex или другой агент подключается к этим инструментам напрямую, без общего «мостика» в shell.

По умолчанию MCP-сервер работает только на чтение. Инструменты записи скрыты, пока вы явно не запустите сервер с --allow-write, а флаг --allow-tool сужает набор до конкретных инструментов или сервисов.

Минимальная конфигурация MCP-клиента:

{
  "command": "gog",
  "args": ["--account", "you@example.com", "mcp"]
}

Вариант «только чтение Docs и Sheets»:

{
  "command": "gog",
  "args": [
    "--account", "you@example.com",
    "--enable-commands-exact", "mcp,docs.cat,sheets.get",
    "mcp",
    "--allow-tool", "docs_get,sheets_read_range"
  ]
}

Так агент не сможет ничего изменить, пока вы сами не откроете запись через --allow-write.

Как подключить gog к Codex

Три рабочих варианта, от простого к строгому:

  1. Команды прямо в терминале Codex. Codex CLI и Codex App умеют запускать shell-команды. gog с флагом --json даёт агенту разбираемый результат без дополнительной обвязки.
  2. Описание в AGENTS.md. Зафиксируйте нужные команды gog и их назначение в файле проекта — тогда агент знает контракт и не выдумывает флаги.
  3. MCP-сервер с allowlist. Для боевого контура поднимите gog как MCP-сервер и отдайте только разрешённые инструменты.
📌
Подробнее про проектную память для агентов — в отдельном материале базы знаний.

Практические сценарии для Codex

Разбор входящей почты

gog gmail search 'newer_than:7d' --max 10 --json
gog gmail get <messageId> --sanitize-content --json

Агент находит письма за неделю, читает их в безопасном виде и делает сводку с задачами.

Сегодняшнее расписание в контекст

gog calendar events --today --json

Codex подтягивает встречи на день и готовит к ним материалы.

Аудит Google Drive без риска

gog drive tree --parent <folderId> --depth 2
gog drive du --parent <folderId> --max 20 --json

Только просмотр: дерево папок и самые тяжёлые объекты. Ничего не меняется, пока вы не добавите --apply.

Отчёт в Docs и Sheets

gog sheets table append <spreadsheetId> Tasks 'Ship README|done'
gog docs format <docId> --match Status --bold --font-size 18

Агент дописывает строку в таблицу задач и форматирует документ.

Презентация из Markdown

gog slides create-from-markdown "Weekly update" --content-file slides.md

Из обычного Markdown-файла собирается презентация в Google Slides.

Рутина Workspace Admin

gog --account admin@вашакомпания.ru admin users create ada@вашакомпания.ru \
   --first-name Ada --last-name Lovelace --change-password
gog --account admin@вашакомпания.ru admin orgunits list --type all

Создание сотрудника и просмотр орг-юнитов из терминала.

gog против gws

Рядом существует gws — CLI из GitHub-организации Google Workspace. Важно: сами авторы отмечают, что это не официально поддерживаемый продукт Google.

Различие в подходе:

  • gws строит набор команд динамически из Google Discovery Service. Плюс — широкое покрытие API и автоматическое подхватывание новых методов. Минус — вы ближе к «сырому» API и его параметрам.
  • gog даёт workflow-команды под конкретные задачи, единый контракт вывода и слои безопасности (read-only, гарды, safety-профили).

Для агентных сценариев gog обычно удобнее за счёт предсказуемого вывода и встроенной безопасности. Но не полагайтесь на готовые сравнительные таблицы — сами авторы gog советуют прогнать собственную оценку под ваши задачи.

Сколько стоит и какие лимиты

gog бесплатен и распространяется под лицензией MIT. Платить за сам инструмент не нужно.

Реальные ограничения — это квоты Google API на ваш OAuth-проект. Для личного и командного использования их с запасом хватает, но при массовых операциях (тысячи писем, крупные миграции) держите квоты в голове и разносите задачи по времени.

🚫
Осторожно с новыми аккаунтами. Google может заблокировать свежесозданный аккаунт, если на нём сразу начинается «ботоподобная» активность — массовое чтение почты или рассылки от агента. Подключайте gog к рабочему аккаунту с историей, не превышайте разумный темп запросов и не используйте одноразовые ящики специально «под бота».

Ссылки

По теме

Подключение Google Workspace к Codex — то место, где удобный CLI легко превращается в небезопасный автопилот без продуманных прав и профилей. Если такой контур хочется собрать аккуратно и под свои задачи, это можно разобрать вместе.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov.