Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/elnora-ai-gw-setup
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/gw-setup
What's inside
- Skill name
gw-setup- Description
- First-run setup for the Google Workspace (gw) plugin. Creates the plugin venv, installs deps, walks the user through a Google Cloud project + Desktop OAuth client (driving a browser when possible), authenticates, and verifies. Use for "set up gw", "gw setup", "authenticate google workspace", "gw first run", "connect my google account", "install gw". TRIGGERS: "gw setup", "set up google workspace", "gw auth setup", "gw first run", "connect google account", "google workspace login", "oauth setup"
- License
- Apache-2.0
- Instructions
- 110 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (1)
- SKILL.md
SKILL.md (first lines)
# gw-setup — get from install to first result
Do everything you safely can **for** the user. The only unavoidable human actions
are clicking buttons inside the Google Cloud Console (Enable, tick the consent
box, download the client JSON) and approving the OAuth consent screen. Navigate to
the exact page, tell the user precisely what to click, wait, then verify by reading
the page before moving on. Report progress as you go.
Throughout, run the CLI via the launcher `"$PLUGIN_ROOT/bin/gw"` once it exists, or
`python3 "$PLUGIN_ROOT/cli/gw.py"` (fall back to `python`) before that. Resolve
`PLUGIN_ROOT` to this plugin's root (`$CLAUDE_PLUGIN_ROOT` if set, else the repo
root that contains `cli/gw.py`).
## Step 1 — Environment
1. Detect Python: prefer `uv` if present (`uv --version`), else `python3 --version`
(fall back to `python`). Require Python 3.10+.
2. Create the plugin-local venv and install deps from `requirements.txt`
(idempotent — the single source of truth for the dependency set):
- With uv: `uv venv "$PLUGIN_ROOT/.venv"` then
`uv pip install --python "$PLUGIN_ROOT/.venv" -r "$PLUGIN_ROOT/requirements.txt"`
- Without uv: `python3 -m venv "$PLUGIN_ROOT/.venv"` then
`"$PLUGIN_ROOT/.venv/bin/pip" install -r "$PLUGIN_ROOT/requirements.txt"`
(Windows: `"$PLUGIN_ROOT\.venv\Scripts\pip.exe"`).
`keyring` is listed in `requirements.txt` but optional at runtime (OS-keychain
token storage); if it fails to build, install the rest and continue — tokens
fall back to a 0600 file.
3. Ensure the launcher is executable: `chmod +x "$PLUGIN_ROOT/bin/gw"` (POSIX).
On Windows use `bin/gw.cmd` or `bin/gw.ps1`.
4. Verify: `gw --version` prints `gw, version 1.0.0`. If not, fix before continuing.
## Step 2 — Google Cloud project + Desktop OAuth client
This plugin ships **no** OAuth client — each user brings their own. This is the
part that needs a browser.
1. **Get the machine-readable checklist.** Run `gw auth setup` (or
`gw auth setup --compact`). It returns JSON:
`{ "config_dir": "...", "steps": [ {step,title,url,instructions,verify}, ... ] }`.
Drive the rest of this step from that output — do not hardcode URLs.
2. **Offer browser automation.** If a browser-automation MCP is available
(e.g. Chrome DevTools MCP tools `mcp__chrome-devtools__*`), use it. If none is
available, offer to add one:
`claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest`
(claude-in-chrome is an alternative). If the user declines automation, **print
each step's `url` + `instructions` + `verify`** and let them do it manually,
then resume at Step 3.
3. **Walk the steps** (drive the browser or guide the user), verifying each via the
step's `verify` string before continuing:
- Create a Google Cloud project (`projectcreate`). No billing needed.
- Enable the 7 APIs: Gmail, Calendar, Drive, Docs, Sheets, Tasks, Forms. For
each, open the library `url` and click **Enable**; verify it shows "API Enabled".
- Configure the **OAuth consent screen**: user type **External**; add the user's
own Google account as a **Test user** (Gmail scopes are sensitive — consent is
blocked for unlisted users). Explain the unverified-app ~25-scope cap; the gw
default set is well under it. Verify status is "Testing" and the email is listed.
- Create a **Desktop app** OAuth client (Credentials → OAuth client ID →
Application type **Desktop app**). Click Create, then **Download** the client
JSON. Some pages require you to reopen the client to download — do so and verify
a Desktop client is listed.
- **Save the client JSON** to `<config_dir>/client_secret.json` (the `config_dir`
from the checklist, default `~/.config/gw/`). If the browser downloaded it to
the Downloads folder, move it there for the user and confirm the file exists.
Where Google requires a relaunch/reopen (e.g. after first enabling APIs, or to
reveal the download), navigate back to the exact page and re-verify rather than
assuming success.
## Step 3 — Authenticate
Run `gw auth login`. It starts a localhost callback and opens the consent URL; you
may open that URL in the browser too. On the consent screen the user picks their
Google account and approves. Use `--no-browser` to print the URL instead of opening
one (headless/SSH), and `--account <name>` to add more accounts later.
If login reports **no refresh token**, have the user revoke prior access at
`https://myaccount.google.com/permissions` and log in again.
## Step 4 — Verify it works
1. `gw auth status` → expect `token_present: true` and `valid: true`.
2. A real read, e.g. `gw calendar calendars` or `gw gmail labels`. A successful JSON
response means setup is complete.
## Step 5 — Optional: knowledge-base connector
The CRM sync, meeting-prep (`/prep-meeting`), and outreach features are optional and
need a knowledge base. Suggest (do not force):
`/plugin marketplace add Elnora-AI/knowledge-vault` then
`/plugin install knowledge-base@knowledge-vault`, and run its setup. Once
`.claude/knowledge-base.local.md` exists, the connector auto-enables. Without it,
those commands no-op with a message and every core Google command still works.
CRM CSV writes stay off until the user opts in: `sync-crm` needs `crm_dir` set in
that file, and sends update the CRM only with `GW_CRM_TRACK=on`.
## Notes / troubleshooting
- **Config lives outside the repo**: tokens, `accounts.json`, and
`client_secret.json` live under `$GW_CONFIG_DIR` (default `~/.config/gw`), never in
the repo. Nothing secret is ever written into the plugin directory.
- **Keyring vs file**: with the `keyring` package and an OS backend, tokens go to the
OS keychain; otherwise a 0600 JSON file. `GW_KEYRING=off` forces file storage.
- **Alternate OAuth client sources**: instead of `client_secret.json` you can set
`GW_CLIENT_ID`/`GW_CLIENT_SECRET`, or pass `gw auth login --client-secret-file PATH`.
- **Narrow scopes**: `gw auth login --scopes gmail,calendar` (and `--readonly`) if the
user wants a smaller grant than the default all-services set.From Elnora-AI/elnora-google-workspace, Apache-2.0.
More from Elnora-AI/elnora-google-workspace
- 0.598score
gw-forms
Elnora-AI
Read and write Google Forms via CLI.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-calendar
Elnora-AI
Create, update, and list Google Calendar events via CLI.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-searchconsole
Elnora-AI
Read Google Search Console via CLI — search queries, pages, CTR, position, indexing, sitemaps.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-analytics
Elnora-AI
Read Google Analytics 4 via CLI — traffic, acquisition, pages, conversions, realtime.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-api
Elnora-AI
Call ANY Google API method via the generic Discovery invoker — services with no curated command group (Drive, Slides, People, Chat, Keep, Meet, Classroom…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-docs
Elnora-AI
Get, create, import, append, and replace text in Google Docs via CLI.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
google-workspace
Elnora-AI
Google Workspace CLI — routes to service-specific skills for Gmail, Sheets, Calendar, Tasks, Docs, Forms, Drive, Analytics and Search Console.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-postmaster
Elnora-AI
Read Gmail Postmaster Tools via CLI — the domains you registered, and per day the spam rate, DKIM / SPF / DMARC pass rates, delivery errors and Google's…
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
gw-drive
Elnora-AI
List, get, upload, download, export, organize, and share Google Drive files via CLI.
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
gw-gmail
Elnora-AI
Send, draft, list, read, reply, scan, and manage Gmail via CLI.
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
gw-inbox
Elnora-AI
Quick inbox scan — recent emails with sender, subject, snippet.
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
gw-sheets
Elnora-AI
Read, write, append, and list Google Sheets via CLI.
SkillAFreshness: A★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 22, 2026 (1 month ago)
- Last release
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Elnora-AI
- 0.638score
Elnora MCP Server
Elnora-AI
AI-powered bioprotocol optimization — generate, search, and manage lab protocols.
ConnectorAFreshness: ARemoteLocal★ 3↓ 210/wkClaude Code +5 - 0.598score
google-workspace
Elnora-AI
Google Workspace CLI — routes to service-specific skills for Gmail, Sheets, Calendar, Tasks, Docs, Forms, Drive, Analytics and Search Console.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-calendar
Elnora-AI
Create, update, and list Google Calendar events via CLI.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-searchconsole
Elnora-AI
Read Google Search Console via CLI — search queries, pages, CTR, position, indexing, sitemaps.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-postmaster
Elnora-AI
Read Gmail Postmaster Tools via CLI — the domains you registered, and per day the spam rate, DKIM / SPF / DMARC pass rates, delivery errors and Google's…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gw-analytics
Elnora-AI
Read Google Analytics 4 via CLI — traffic, acquisition, pages, conversions, realtime.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
gw-setup skill. Agent Mart. https://agentmart.dev/skills/elnora-ai-gw-setup (last updated 2026-10-24)