cli
무엇인가
gws는 Google Workspace의 Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin API를 단일 명령줄에서 호출하는 Rust 바이너리다. 서비스별 REST 엔드포인트를 사람이 직접 다루는 대신, 명령 트리와 JSON 출력 계층을 그 위에 놓는다.
어떻게 동작하나
명령 목록을 바이너리에 정적으로 넣지 않는다. 실행할 때 Google Discovery Service 문서를 읽어 리소스와 메서드에 대응하는 명령 트리를 그 자리에서 만든다. Google이 엔드포인트를 추가하면 CLI를 다시 빌드하지 않아도 명령이 생긴다. 모든 응답은 구조화된 JSON으로 나온다. 인증 자격증명은 AES-256-GCM으로 암호화해 저장하고, 암호화 키는 OS 키링에 두거나 GOOGLE_WORKSPACE_CLI_KEYRING_BACKEND=file일 때 ~/.config/gws/.encryption_key에 둔다. OAuth 클라이언트 JSON은 ~/.config/gws/client_secret.json에서 읽는다. 환경 변수는 .env 파일로도 공급된다.
무엇과 다른가
대체 대상은 REST 문서를 보며 curl 호출을 조립하는 방식과 서비스별로 따로 배포되는 개별 CLI다. gws는 명령 표면을 Discovery 메타데이터에서 파생시키므로 API 변경이 CLI 릴리스 주기에 묶이지 않는다. 모든 리소스에 --help, --dry-run, 자동 페이지네이션이 같은 방식으로 붙는다. 서비스별로 손으로 작성한 헬퍼 명령은 + 접두사로 자동 생성 명령과 구분된다.
어떻게 쓰나
GitHub Releases에서 OS·아키텍처에 맞는 바이너리를 받아 압축을 풀고 $PATH에 넣는 방식이 권장된다. npm으로 해당 바이너리 다운로드를 자동화할 수 있고, 소스 빌드, Nix flake(github:googleworkspace/cli), Homebrew 설치도 있다. 인증은 gcloud가 필요한 gws auth setup을 쓰거나, Google Cloud Console에서 데스크톱 앱 OAuth 클라이언트를 만들어 ~/.config/gws/client_secret.json에 두고 gws auth login을 실행한다. 헤드리스 환경은 브라우저가 있는 기기에서 인증한 뒤 자격증명을 export해 옮기고, 서비스 계정 키 파일이나 이미 발급된 액세스 토큰을 지정하는 경로도 있다. Gemini CLI 확장을 설치하면 에이전트가 터미널에서 인증한 자격증명을 그대로 상속한다.
전제와 한계
npm 설치에는 Node.js 18 이상이 필요하고, OAuth 자격증명을 만들 Google Cloud 프로젝트와 Workspace 접근 권한이 있는 Google 계정이 전제다. OAuth 앱이 테스트 모드로 미검증이면 동의 범위가 약 25개로 제한되어 85개 이상을 포함하는 recommended 프리셋이 실패하므로 서비스를 개별 선택해야 한다. Sheets 범위의 !는 bash 히스토리 확장과 충돌해 작은따옴표로 감싸야 한다. 공식 Google 지원 제품이 아니며 v1.0 전까지 호환성을 깨는 변경이 예정되어 있다.
유사 도구
- cliLark/飞书 Open Platform을 터미널에서 조작하는 공식 Go CLI다. 숏컷·API 명령·Raw API 3계층 구조로 명령을 노출하고, AI 에이전트용 스킬을 함께 배포한다.
- skillsGoogle Cloud 제품별 절차·구성 규칙을 SKILL.md 묶음으로 주입해 에이전트가 GKE·BigQuery·IAM 작업을 문서 기반 절차로 수행하게 한다.
- SkillNet에이전트 스킬을 검색·설치·생성·평가·조합·오케스트레이션하는 절차를 SDK와 CLI로 주입하는 스킬 팩이다. 공개 스킬 라이브러리 검색과 GitHub 다운로드를 자격 증명 없이 수행한다.
- refly자연어로 서술한 업무 절차를 결정적 스킬로 컴파일해 Claude Code·API·웹훅으로 내보내는 Refly의 스킬 팩이다. 실행 중 개입과 버전 관리를 규칙으로 고정한다.
- SkillAnything대상 도구·API·워크플로를 분석해 7단계 파이프라인으로 SKILL.md와 스크립트를 생성하고 Claude Code·Codex용 스킬 묶음으로 패키징하는 절차를 주입한다.
- skillkitSKILL.md의 YAML 메타데이터와 본문을 읽어 파이썬 에이전트가 스킬을 스스로 찾아 쓰게 만드는 라이브러리다. 점진적 공개 로딩과 스크립트 실행 절차를 규정한다.