cli

AI Agent FrameworksCLIRust

★ 31,021주당 +111조회 4

무엇인가

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 전까지 호환성을 깨는 변경이 예정되어 있다.

유사 도구