Skip to main content

ez-google

Use when asked to send email, check inbox, read emails, check calendar, schedule meetings, create events, search Google Drive, create Google Docs, read or write spreadsheets, find contacts, or any task involving Gmail, Google Calendar, Drive, Docs, Sheets, Slides, or Contacts. Agent-friendly with hosted OAuth - no API keys needed.

설치로 이동

소스 정보

저장소
RunnerQuan/SAFE-Agent
최근 소스 활동
2026년 3월 30일 04:33
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
13 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
ez-google
description
Use when asked to send email, check inbox, read emails, check calendar, schedule meetings, create events, search Google Drive, create Google Docs, read or write spreadsheets, find contacts, or any task involving Gmail, Google Calendar, Drive, Docs, Sheets, Slides, or Contacts. Agent-friendly with hosted OAuth - no API keys needed.
metadata
{"openclaw":{"emoji":"📧"}}
# ez-google Agent-friendly Google Workspace tools. Simple CLI scripts with hosted OAuth - users just click a link and paste back a token. No API keys or credentials needed. **Run all commands with:** `uv run scripts/<script>.py <command> [args]` ## Auth (do this first) ```bash auth.py status # Check: AUTHENTICATED or NOT_AUTHENTICATED auth.py login # Get URL → send to user auth.py save '<TOKEN>' # Save token from hosted OAuth ``` **Auth flow:** `status` → if not authenticated → `login` → user clicks link, copies token → `save '<TOKEN>'` --- ## Gmail ```bash gmail.py list [-n 10] [-q "query"] # List emails gmail.py search "query" # Search emails gmail.py get MESSAGE_ID # Read email gmail.py send "to" "subject" "body" # Send email gmail.py draft "to" "subject" "body" # Create draft gmail.py labels # List labels # Bulk operations (up to 1000 messages per API call) gmail.py bulk-label "query" --add LABEL --remove LABEL # Add/remove labels gmail.py bulk-trash "query" [-y] # Move to trash (use -y to skip confirmation) ``` **Bulk examples:** ```bash gmail.py bulk-label "from:newsletter@example.com" --add ARCHIVE --remove INBOX gmail.py bulk-trash "subject:alert older_than:30d" -y gmail.py bulk-label "category:promotions" --add Label_3 # Use label IDs from `labels` ``` ## Calendar ```bash gcal.py list [DATE] # List events (DATE: YYYY-MM-DD or "today") gcal.py create "title" "START" "END" # Create event (START/END: YYYY-MM-DDTHH:MM) gcal.py get EVENT_ID # Event details gcal.py delete EVENT_ID # Delete event gcal.py calendars # List calendars ``` ## Drive ```bash drive.py list [-n 20] # List files drive.py search "query" # Search by name drive.py get FILE_ID # File metadata drive.py download FILE_ID # File content drive.py create-folder "name" # Create folder ``` ## Docs ```bash docs.py create "title" # Create doc docs.py get DOC_ID # Read content docs.py find "query" # Find by title docs.py append DOC_ID "text" # Append text docs.py insert DOC_ID "text" # Insert at start docs.py replace DOC_ID "old" "new" # Replace text ``` ## Sheets ```bash sheets.py create "title" # Create spreadsheet sheets.py get ID "Sheet!A1:D10" # Read data sheets.py info ID # Sheet metadata sheets.py find "query" # Find by name sheets.py write ID "Sheet!A1" "a,b;c,d" # Write (rows separated by ;) sheets.py append ID "Sheet!A:B" "a,b;c,d" # Append rows ``` ## Slides ```bash slides.py find "query" # Find presentations slides.py get PRESENTATION_ID # Get slides info slides.py text PRESENTATION_ID # Extract all text slides.py create "title" # Create presentation ``` ## People/Contacts ```bash people.py me # Current user profile people.py contacts [-n 100] # List contacts people.py search "name" # Search contacts people.py get CONTACT_ID # Contact details ``` ## Chat (Workspace only) ```bash chat.py spaces # List spaces chat.py messages SPACE_ID [-n 20] # List messages chat.py send SPACE_ID "text" # Send message chat.py get SPACE_ID # Space details ``` --- Note: After adding new services, run `auth.py logout` then `login` again to grant new permissions.
GitHub에서 보기