Loading...
Loading...
Google APIs made easy — Gmail, Drive, Calendar, Tasks. Unified library and gateway CLIs (go-gmail, go-drive, go-calendar, go-tasks) for AI agents. Use when user needs to work with Gmail, Google Drive, Google Calendar, or Google Tasks. Replaces gmcli, gdcli, gccli.
npx skill4agent add marcfargas/go-easy go-easyFirst use:will download go-easy and dependencies (~23 MB) on the first call. Advise the user of a possible delay on the first response.npx
@marcfargas/go-easy/gmail/drive/calendar/tasks/authnpx go-gmailnpx go-drivenpx go-calendarnpx go-tasks--confirmnpx go-easyauth listauth addauth remove| Service | Gateway CLI | Status | Details |
|---|---|---|---|
| Gmail | | ✅ Ready | gmail.md |
| Drive | | ✅ Ready | drive.md |
| Calendar | | ✅ Ready | calendar.md |
| Tasks | | ✅ Ready | tasks.md |
~/.go-easy/npx go-easy auth list
# → { "accounts": [{ "email": "marc@blegal.eu", "scopes": [...], "source": "combined" }] }# Phase 1: Start — returns auth URL immediately
npx go-easy auth add marc@blegal.eu
# → { "status": "started", "authUrl": "https://accounts.google.com/...", "expiresIn": 300 }
# Show the URL to the user and ask them to click it.
# Optionally open the browser for them.
# Phase 2: Poll — same command, returns current status
npx go-easy auth add marc@blegal.eu
# → { "status": "waiting", "authUrl": "...", "expiresIn": 245 }
# → { "status": "complete", "email": "marc@blegal.eu", "scopes": ["gmail", "drive", "calendar", "tasks"] }auth add <email>{ status: "started", authUrl }auth add <email>statuscompletedeniedexpirederrorcomplete| Status | Meaning | Action |
|---|---|---|
| Auth server launched, waiting for user | Show URL, start polling |
| Server alive, user hasn't completed | Keep polling every 15s |
| Success — token stored | Continue with task |
| User didn't grant all scopes | Inform user, may retry |
| User clicked "Deny" | Inform user |
| 5-minute timeout | Retry with |
| Server/token exchange failed | Show message, retry |
auth add{ status: "complete" }npx go-easy auth remove marc@blegal.eu --confirm
# → { "ok": true, "removed": "marc@blegal.eu" }--confirmfix{ "error": "AUTH_NO_ACCOUNT", "message": "Account \"x@y.com\" not configured", "fix": "npx go-easy auth add x@y.com" }fix--confirm--confirm--confirm--confirmC:\dev\go-easy# 1. Check if account is configured
npx go-easy auth list
# 2. If not, add it (interactive — needs user to click auth URL)
npx go-easy auth add user@example.com
# 3. Use the service CLIs
npx go-gmail user@example.com search "is:unread"
npx go-drive user@example.com ls
npx go-calendar user@example.com events primary
npx go-tasks user@example.com lists