gws - 구글 워크스페이스 CLI
(github.com/googleworkspace)- 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단계 파싱 구조로 동작
- 첫 번째 인자로 서비스 식별
- Discovery 문서 가져오기(24시간 캐시)
-
clap::Command트리 생성 - 인자 재파싱 및 인증 수행
- HTTP 요청 실행
- 모든 결과(성공·오류·메타데이터)는 JSON 구조로 출력
문제 해결
- API 미활성화 시
accessNotConfigured오류 발생-
enable_url필드의 링크를 클릭해 API 활성화 후 재시도 -
gws auth setup명령으로 필요한 API를 자동 활성화 가능
-
개발 및 배포
- Apache-2.0 라이선스. Rust(99.5%)
- 공식 Google 제품은 아니며, 비공식 오픈소스 프로젝트임
gog 랑은 다르게 구글의 모든 API에 대해서 동적으로 명령어를 만들어 내는 접근 방식이 독특하네요
개발자가 Justin Poehnelt라고 구글 워크스페이스 DevRel 이라 더 믿음이 갑니다.
Hacker News 의견들
-
AI와 MCPs의 세상에서 갑자기 기업들이 제대로 된 API/CLI 도구를 구축하려는 움직임이 생긴 것 같음
- AI 경쟁 덕분에 생긴 몇 안 되는 좋은 변화 중 하나는, 모두가 데이터를 공개 API로 내놓고 CLI나 확장 가능한 API 형태로 도구를 제공하기 시작한 점임
- 이렇게 오래 걸려서야 MCP가 단지 더 나쁜 API라는 걸 깨달은 게 놀라움
-
이게 Workspace Studio의 CLI 버전인 것 같음
개발자들이 실제로 앱을 쓰고 싶어 하는 방식에 맞춰 구글이 움직이는 게 반가움
구글 대시보드나 조잡한 서드파티 라이브러리보다 훨씬 낫다고 생각함
구글이 공식 지원은 아니라고 하지만, 외부보다 내부에서 더 잘 지원할 가능성이 높음 -
GCP Next가 4월 22~24일에 열릴 예정임
그 이후에도 이 프로젝트가 계속 유지되길 바람 -
rust바이너리를 설치하는데 왜npm을 사용하는지 궁금함 -
요즘 에이전트 스킬들이 CLI를 원하니까, 이런 흐름이 트렌드로 자리 잡았으면 좋겠음
-
모든 CTO들이 이걸 자기 OpenClaw 인스턴스에 연결하려고 들썩이는 모습이 그려짐
- 결국 gog와 비교해봐야 할 듯함
-
사용 가능한 명령어가 동적으로 바뀌는 건 안티패턴처럼 보이지만, AI라면 그걸 처리할 수 있을지도 모르겠음
-
Apple도 iCloud에 대해 같은 접근을 해줬으면 함
- 기대는 하지 말라는 반응이 있었음
- 웃음으로 넘긴 사람도 있었음
-
흥미롭지만 약간 무서움. 이게 구글 공식 제품이 아니라면 TOS 위반 가능성이 있을지도 모름
- 이건 Google DevRel 팀이 만든 거라 TOS 위반은 아니지만, DevRel 프로젝트 특성상 쉽게 중단될 위험이 있음
- 실제로는 구글이 직접 게시한 것으로 보임