Google Workspace CLI — Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin 등을 위한 통합 명령줄 도구

2 hours ago 1

  • Google Workspace API 전체를 단일 CLI로 제어할 수 있는 도구로, Drive·Gmail·Calendar·Sheets·Docs·Chat·Admin 등을 지원
  • Google Discovery Service를 기반으로 런타임 시 명령 구성을 동적으로 생성해, 새로운 API가 추가되면 자동 반영
  • AI 에이전트용 스킬 100개 이상을 포함하며, 구조화된 JSON 출력을 통해 LLM과의 통합을 지원
  • OAuth·Service Account·CI 환경 등 다양한 인증 방식을 제공하고, Model Armor를 통한 응답 보안 기능을 지원
  • 사람과 AI 모두를 위한 자동화 중심의 CLI로, Google Workspace 생태계의 통합 관리 및 자동화 효율성을 높이는 도구

개요

  • gws는 Google Workspace 전용 통합 CLI로, Drive·Gmail·Calendar·Sheets·Docs·Chat·Admin 등 모든 API를 하나의 명령줄에서 실행 가능
  • Google Discovery Service를 통해 명령 구성을 자동 생성하며, 새로운 API 엔드포인트가 추가되면 즉시 반영
  • 모든 출력은 구조화된 JSON 형식으로 제공되어, AI 에이전트나 자동화 스크립트와의 연동이 용이함
  • 프로젝트는 활발히 개발 중이며, v1.0 이전에는 주요 변경이 발생할 수 있음

주요 기능

  • 탭 완성, --help, --dry-run, 자동 페이지네이션 등 인간 친화적 CLI 기능 제공
  • AI 에이전트 통합을 위해 100개 이상의 SKILL.md 기반 스킬 포함
    • Gmail, Drive, Docs, Calendar, Sheets 등 주요 서비스용 50개 이상의 고급 레시피 포함
  • Gemini CLI 확장을 설치하면 Gemini 에이전트가 gws 명령과 스킬을 직접 호출 가능
  • MCP(Model Context Protocol) 서버 모드를 통해 Claude Desktop, Gemini CLI, VS Code 등에서 Workspace API를 도구로 노출 가능

인증 방식

  • 로컬 인터랙티브 인증: AES-256-GCM으로 암호화된 자격 증명을 OS 키링에 저장
  • 수동 OAuth 설정: Google Cloud Console에서 직접 클라이언트 생성 가능
  • 브라우저·에이전트 보조 인증: 수동 또는 자동으로 OAuth 승인 처리
  • CI/서버 환경용 인증: gws auth export로 자격 증명 내보내기 및 환경 변수로 지정
  • Service Account 및 사전 발급 토큰 지원, 우선순위는 토큰 > 자격 파일 > 키링 저장 순

AI Agent Skills

  • 저장소에 포함된 100개 이상의 스킬은 각 API 및 일반 워크플로우를 자동화
  • npx skills add 명령으로 전체 또는 개별 스킬 설치 가능
  • OpenClaw 환경에서는 심볼릭 링크 또는 복사 방식으로 스킬 동기화 가능
  • gws-shared 스킬은 CLI 미설치 시 자동 설치 기능 포함

Gemini CLI 확장

  • gemini extensions install https://github.com/googleworkspace/cli 명령으로 설치
  • 설치 후 Gemini CLI 에이전트가 gws 명령과 스킬을 직접 호출 가능
  • gws의 인증 정보를 자동 상속하여 별도 로그인 없이 사용 가능

MCP 서버 기능

  • gws mcp 명령으로 MCP 서버를 실행해 Workspace API를 MCP 호환 클라이언트에 노출
    • 예: gws mcp -s drive,gmail,calendar
  • 각 서비스는 10~80개의 도구를 추가하며, 클라이언트의 도구 제한(50~100개)에 맞게 선택 가능
  • --workflows, --helpers 플래그로 워크플로우 및 헬퍼 도구 노출 가능

고급 기능

  • Multipart 업로드: 파일 업로드와 메타데이터 생성 동시 수행
  • 페이지네이션 제어: --page-all, --page-limit, --page-delay 옵션 제공
  • Model Armor 통합: API 응답을 스캔해 프롬프트 인젝션을 차단
    • GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE, GOOGLE_WORKSPACE_CLI_SANITIZE_MODE 환경 변수로 제어

아키텍처

  • 2단계 파싱 구조로 동작
    1. 첫 번째 인자로 서비스 식별
    2. Discovery 문서 가져오기(24시간 캐시)
    3. clap::Command 트리 생성
    4. 인자 재파싱 및 인증 수행
    5. HTTP 요청 실행
  • 모든 결과(성공·오류·메타데이터)는 JSON 구조로 출력

문제 해결

  • API 미활성화 시 accessNotConfigured 오류 발생
    • enable_url 필드의 링크를 클릭해 API 활성화 후 재시도
    • gws auth setup 명령으로 필요한 API를 자동 활성화 가능

개발 및 배포

  • Rust 기반(99.5%) 으로 작성
  • cargo build, cargo test, cargo clippy 등 표준 Rust 워크플로우 지원
  • Apache-2.0 라이선스
  • 공식 Google 제품은 아니며, 비공식 오픈소스 프로젝트로 명시됨

Read Entire Article