22P by GN⁺ | ★ favorite | 댓글 2개
  • 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 생태계의 통합 관리 및 자동화 효율성을 높이는 도구

개요

  • gwsGoogle 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를 자동 활성화 가능

개발 및 배포

  • Apache-2.0 라이선스. Rust(99.5%)
  • 공식 Google 제품은 아니며, 비공식 오픈소스 프로젝트
GeekNews Weekly에 포함된 글입니다. 에디터 코멘트 보기

댓글과 토론

gog 랑은 다르게 구글의 모든 API에 대해서 동적으로 명령어를 만들어 내는 접근 방식이 독특하네요

개발자가 Justin Poehnelt라고 구글 워크스페이스 DevRel 이라 더 믿음이 갑니다.

Hacker News 의견들
  • AI와 MCPs의 세상에서 갑자기 기업들이 제대로 된 API/CLI 도구를 구축하려는 움직임이 생긴 것 같음

    • AI 경쟁 덕분에 생긴 몇 안 되는 좋은 변화 중 하나는, 모두가 데이터를 공개 API로 내놓고 CLI나 확장 가능한 API 형태로 도구를 제공하기 시작한 점임
    • 이렇게 오래 걸려서야 MCP가 단지 더 나쁜 API라는 걸 깨달은 게 놀라움
  • 이게 Workspace StudioCLI 버전인 것 같음
    개발자들이 실제로 앱을 쓰고 싶어 하는 방식에 맞춰 구글이 움직이는 게 반가움
    구글 대시보드나 조잡한 서드파티 라이브러리보다 훨씬 낫다고 생각함
    구글이 공식 지원은 아니라고 하지만, 외부보다 내부에서 더 잘 지원할 가능성이 높음

  • GCP Next가 4월 22~24일에 열릴 예정임
    그 이후에도 이 프로젝트가 계속 유지되길 바람

  • rust 바이너리를 설치하는데 왜 npm을 사용하는지 궁금함

  • 요즘 에이전트 스킬들이 CLI를 원하니까, 이런 흐름이 트렌드로 자리 잡았으면 좋겠음

  • 모든 CTO들이 이걸 자기 OpenClaw 인스턴스에 연결하려고 들썩이는 모습이 그려짐

    • 결국 gog와 비교해봐야 할 듯함
  • 사용 가능한 명령어가 동적으로 바뀌는 건 안티패턴처럼 보이지만, AI라면 그걸 처리할 수 있을지도 모르겠음

  • Apple도 iCloud에 대해 같은 접근을 해줬으면 함

    • 기대는 하지 말라는 반응이 있었음
    • 웃음으로 넘긴 사람도 있었음
  • 흥미롭지만 약간 무서움. 이게 구글 공식 제품이 아니라면 TOS 위반 가능성이 있을지도 모름

    • 이건 Google DevRel 팀이 만든 거라 TOS 위반은 아니지만, DevRel 프로젝트 특성상 쉽게 중단될 위험이 있음
    • 실제로는 구글이 직접 게시한 것으로 보임