Google Connect
Setup wizard for Google Workspace integration.
Purpose
Guide users through connecting their Google account to Nexus. One OAuth setup grants access to all 7 Google services: Gmail, Docs, Sheets, Calendar, Drive, Tasks, and Slides.
Shared Resources
This skill uses google-master shared library:
| Resource | When to Load |
|---|---|
google-master/scripts/check_google_config.py | Always first (pre-flight) |
google-master/scripts/google_auth.py | For authentication |
google-master/references/setup-guide.md | Detailed setup instructions |
google-master/references/error-handling.md | On any errors |
Workflow 0: Config Check (ALWAYS FIRST)
Every interaction MUST start with config validation:
python 00-system/skills/google/google-master/scripts/check_google_config.py --json
Exit code meanings:
- •Exit 0: Fully configured and authenticated - ready to use
- •Exit 1: Credentials exist but need to login (run OAuth flow)
- •Exit 2: Missing credentials - need full setup
Route based on exit code:
- •Exit 0 → Workflow 4 (Already Connected)
- •Exit 1 → Workflow 3 (Authenticate)
- •Exit 2 → Workflow 1 (Full Setup)
Workflow 1: Full Setup (First-Time Users)
Triggers: "connect google", "setup google", config check returns exit 2
Purpose: Guide user through complete Google Cloud setup.
Step 1: Introduction
Display:
━━━ GOOGLE WORKSPACE SETUP ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ This will connect Nexus to your Google account, enabling: 📧 Gmail - Read, send, manage emails 📄 Docs - Create and edit documents 📊 Sheets - Work with spreadsheets 📅 Calendar - Manage events and schedules 📁 Drive - Upload, download, organize files ✅ Tasks - Create and manage task lists 📽️ Slides - Create and edit presentations Time: ~10 minutes (one-time setup) You'll need: A Google account and browser access ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ask: "Ready to set up Google integration?"
Step 2: Create Google Cloud Project
Display:
━━━ STEP 1: CREATE GOOGLE CLOUD PROJECT ━━━━━━━━━━━━━━━━━━━ 1. Go to: https://console.cloud.google.com/ 2. Click the project dropdown (top-left) → "New Project" 3. Enter project name: "Nexus Integration" (or any name) 4. Click "Create" 5. Wait for project to be created, then select it ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ask: "Done creating the project? (yes/no)"
Step 3: Enable APIs
Display:
━━━ STEP 2: ENABLE GOOGLE APIS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Go to: APIs & Services → Library Search for and ENABLE each of these APIs: ☐ Gmail API ☐ Google Docs API ☐ Google Sheets API ☐ Google Calendar API ☐ Google Drive API ☐ Google Tasks API ☐ Google Slides API Click each one → Click "Enable" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ask: "All 7 APIs enabled? (yes/no)"
Step 4: Configure OAuth Consent Screen
Display:
━━━ STEP 3: CONFIGURE OAUTH CONSENT ━━━━━━━━━━━━━━━━━━━━━━━ Go to: APIs & Services → OAuth consent screen 1. Select "External" user type → Create 2. Fill in required fields: • App name: "Nexus" • User support email: (your email) • Developer contact: (your email) 3. Click "Save and Continue" 4. On "Scopes" page → Click "Save and Continue" (skip for now) 5. On "Test users" page: • Click "Add Users" • Add YOUR email address • Click "Save and Continue" 6. Review and go back to dashboard ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ask: "OAuth consent screen configured? (yes/no)"
Step 5: Create OAuth Credentials
Display:
━━━ STEP 4: CREATE OAUTH CREDENTIALS ━━━━━━━━━━━━━━━━━━━━━━ Go to: APIs & Services → Credentials 1. Click "Create Credentials" → "OAuth client ID" 2. Application type: "Desktop app" 3. Name: "Nexus Desktop" (or any name) 4. Click "Create" 5. A popup shows your credentials. Copy these values: • Client ID (ends in .apps.googleusercontent.com) • Client Secret Also note your Project ID from the project dropdown. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ask: "Please paste your Client ID:"
Step 6: Save Credentials
After user provides Client ID, Client Secret, and Project ID:
- •Check if
.envfile exists at Nexus root - •Add or update these lines:
code
GOOGLE_CLIENT_ID=<user-provided-client-id> GOOGLE_CLIENT_SECRET=<user-provided-client-secret> GOOGLE_PROJECT_ID=<user-provided-project-id>
Display:
✅ Credentials saved to .env file Your Google Cloud credentials are now stored securely. Next: We'll authenticate with your Google account.
Proceed to: Workflow 3 (Authenticate)
Workflow 2: Install Dependencies
Run before authentication if needed:
pip install google-auth google-auth-oauthlib google-api-python-client
Display:
Installing Google API libraries...
Workflow 3: Authenticate
Triggers: Config check returns exit 1, or after Workflow 1 completes
Purpose: Run OAuth flow to get access token.
Step 1: Start OAuth Flow
Display:
━━━ AUTHENTICATION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ A browser window will open for Google sign-in. 1. Select your Google account 2. Click "Continue" (you may see "unverified app" warning) 3. Grant access to all requested permissions 4. Close the browser when done ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 2: Run Login
python 00-system/skills/google/google-master/scripts/google_auth.py --login
Step 3: Verify Success
If successful:
✅ Google Integration Complete! You now have access to: 📧 Gmail → "list emails", "send email" 📄 Docs → "create doc", "read doc" 📊 Sheets → "read sheet", "append to sheet" 📅 Calendar → "list events", "create event" 📁 Drive → "list files", "upload file" ✅ Tasks → "list tasks", "create task" 📽️ Slides → "create presentation", "add slide" Try: "list my upcoming calendar events"
If failed, check error and refer to google-master/references/error-handling.md.
Workflow 4: Already Connected
Triggers: Config check returns exit 0
Purpose: Show user they're already set up.
Display:
━━━ GOOGLE ALREADY CONNECTED ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ Your Google integration is fully configured! Available services: 📧 Gmail 📄 Docs 📊 Sheets 📅 Calendar 📁 Drive ✅ Tasks 📽️ Slides Commands: • "list emails" → Gmail inbox • "create doc [title]" → New Google Doc • "list calendar events" → Upcoming events • "list drive files" → Drive contents • "list tasks" → Task lists • "create presentation" → New Slides ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Workflow 5: Reconnect / Re-authenticate
Triggers: "reconnect google", "reauth google", "refresh google token"
Purpose: Get new OAuth token (e.g., after scope changes or token expiry).
python 00-system/skills/google/google-master/scripts/google_auth.py --login
This removes the old token and initiates a fresh OAuth flow.
Workflow 6: Disconnect
Triggers: "disconnect google", "remove google", "logout google"
Purpose: Remove stored credentials.
python 00-system/skills/google/google-master/scripts/google_auth.py --logout
Display:
✅ Google disconnected Token removed. Your .env credentials are still saved. To fully remove, delete these lines from .env: GOOGLE_CLIENT_ID GOOGLE_CLIENT_SECRET GOOGLE_PROJECT_ID
Error Handling
| Error | Solution |
|---|---|
| "Missing credentials" | Run full setup (Workflow 1) |
| "Invalid client" | Check Client ID/Secret in .env |
| "Access denied" | Add your email as test user in OAuth consent |
| "Token expired" | Run reconnect (Workflow 5) |
| "API not enabled" | Enable the specific API in Google Cloud Console |
Load google-master/references/error-handling.md for detailed troubleshooting.
Quick Reference
| Command | Action |
|---|---|
connect google | Start setup wizard |
google status | Check connection status |
reconnect google | Refresh authentication |
disconnect google | Remove token |
File Locations
| File | Path | Purpose |
|---|---|---|
| Credentials | .env | Client ID, Secret, Project ID |
| Access Token | 01-memory/integrations/google-token.json | OAuth token |
Both files are in .gitignore and will not be committed.
Google Connect v1.0 - Setup wizard for Google Workspace integration