gw

Manage Gmail, Calendar, Drive, Sheets, Docs, Contacts, and Tasks through the gw command-line interface.

4|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/V-Gutierrez/gw --skill gw-v-gutierrez
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gw
Source: https://github.com/V-Gutierrez/gw
Command: npx skills add https://github.com/V-Gutierrez/gw --skill gw-v-gutierrez

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Working with Google Workspace from a terminal or an AI agent normally means juggling separate tools or hand-writing API calls for each service. This Skill provides a single CLI with permanent OAuth that covers Gmail, Calendar, Drive, Sheets, Docs, Contacts, Tasks, and Meet, with JSON output on every command. ## Core Features & Use Cases - Gmail operations: list, search, read, send, reply, forward, draft editing, attachments, labels, bulk actions, and account signature management. - Calendar and scheduling: view today/week/agenda across all calendars, create recurring events with attendees, check free/busy, and create instant Meet links. - Drive, Sheets, Docs, Contacts, Tasks: upload/download/share Drive files, read and append Sheets rows, export Docs, search contacts, and manage task lists. - Use Case: Ask the agent to check today's calendar across all accounts, then draft and send a follow-up email with a PDF attachment — all through gw calendar today --all and gw gmail send --attachment. ## Quick Start Ask the assistant to show today's calendar events across all calendars using the gw CLI, then list your five most recent unread Gmail messages.

Frequently Asked Questions about gw

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an email with attachments from the command line?

Use gw gmail send with the repeatable --attachment flag, for example gw gmail send "[email protected]" "Subject" "Body" --attachment file.pdf. Files are sent as raw binary with the MIME type resolved from the filename, and the account's Gmail signature is attached automatically.

How do I check my Google Calendar from the terminal?

Run gw calendar today --all to see today's events across every calendar, or gw calendar agenda --days 7 for a week view. Add --json for machine-readable output, and use gw calendar create with start and end datetimes to add events.

Does gw support multiple Google accounts?

Yes, gw supports named profiles defined in ~/.config/gw/config.toml under [profiles.name] sections. Pass --profile work to any command and tokens are stored separately as token-{profile}.json, with per-profile credentials and settings.

How do I log in to gw on a headless server without a browser?

Run gw auth login --headless --url-only to print the consent URL, approve it in any browser, then run gw auth login --headless --code with the pasted redirect URL. The two steps can happen on different machines, which suits agents and remote sessions.

Why does gw report authentication expired or not authenticated?

The access token expires and is refreshed automatically, but if the refresh fails gw returns an auth error. Run gw auth status or gw doctor to diagnose, then gw auth login to re-consent; tokens granted before new scopes were added need one re-login per profile.

Can gw write to Google Docs or create contacts?

No, Docs access is read and export only via the documents.readonly scope, and Contacts is search and list only via contacts.readonly. Widening those scopes would force a re-authentication, so write support for both remains on the roadmap.