Direct Platform Integrations

SkillFiles & storage

Query Gmail, Google Calendar, Asana, Slack, Google Sheets, Google Docs, and Google Drive directly via Python APIs. Use when the user asks to check email, view calendar, list tasks, check Slack messages, read/write spreadsheets, read documents, or find files in Drive. Triggers on requests like "check my email", "show calendar", "list asana tasks", "check slack", "read this spreadsheet", "open this google doc", "find files in drive", "show the hackathon sheet", "what's in this doc", or any platform query.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Direct Platform Integrations skill

What this skill tells your AI

The instructions your AI receives, as published by thesmokedev/taskchad-os in .claude/skills/direct-integrations/SKILL.md and read by ahel’s review.

Query Gmail, Calendar, Asana, Slack, Sheets, Docs, and Drive directly — no Zapier/MCP needed.

Canonical action policy lives in .claude/scripts/integrations/capabilities.py. Wrapper commands validate against that policy before running. Mutating actions such as Slack send, Sheets write/append, and Asana task changes are operator-confirmed surfaces, not ambient model-facing reads.

Script Path

.claude/skills/direct-integrations/scripts/query.py

Running Commands

# Gmail
python .claude/skills/direct-integrations/scripts/query.py gmail list [--max N] [--query Q] [--unread] [--hours N]
python .claude/skills/direct-integrations/scripts/query.py gmail urgent [--hours N]
python .claude/skills/direct-integrations/scripts/query.py gmail unread
python .claude/skills/direct-integrations/scripts/query.py gmail read <message_id>

# Calendar
python .claude/skills/direct-integrations/scripts/query.py calendar today
python .claude/skills/direct-integrations/scripts/query.py calendar upcoming [--hours N]
python .claude/skills/direct-integrations/scripts/query.py calendar soon

# Asana
python .claude/skills/direct-integrations/scripts/query.py asana my-tasks [--max N]
python .claude/skills/direct-integrations/scripts/query.py asana project [project_id] [--max N]
python .claude/skills/direct-integrations/scripts/query.py asana overdue
python .claude/skills/direct-integrations/scripts/query.py asana due-soon [--days N]

# Slack
python .claude/skills/direct-integrations/scripts/query.py slack channels
python .claude/skills/direct-integrations/scripts/query.py slack messages <channel> [--hours N]
python .claude/skills/direct-integrations/scripts/query.py slack send <channel> <message>
python .claude/skills/direct-integrations/scripts/query.py slack check

# Google Sheets
python .claude/skills/direct-integrations/scripts/query.py sheets read <spreadsheet_id> [--range "Sheet1!A1:Z100"] [--max-rows N]
python .claude/skills/direct-integrations/scripts/query.py sheets info <spreadsheet_id>
python .claude/skills/direct-integrations/scripts/query.py sheets write <spreadsheet_id> --range "A1" --values '[["a","b"]]'
python .claude/skills/direct-integrations/scripts/query.py sheets append <spreadsheet_id> --range "A:Z" --values '[["new","row"]]'

# Google Docs
python .claude/skills/direct-integrations/scripts/query.py docs read <document_id> [--max-chars N]
python .claude/skills/direct-integrations/scripts/query.py docs info <document_id>

# Google Drive
python .claude/skills/direct-integrations/scripts/query.py drive find "search term" [--type spreadsheet|document|folder|presentation|pdf] [--max N]
python .claude/skills/direct-integrations/scripts/query.py drive list [--type TYPE] [--max N]
python .claude/skills/direct-integrations/scripts/query.py drive get <file_id>

Setup

If integrations aren't configured yet:

cd .claude/scripts && uv run python setup_auth.py --check

Notes

  • Gmail + Calendar + Sheets + Docs + Drive share a single Google OAuth token.
  • Gmail reads are model-facing; Gmail archive exists for cleanup paths and is policy-gated as an operator/internal mutator.
  • Sheets has policy-gated read/write access; Docs and Drive are read-only in this wrapper.
  • Asana uses Personal Access Token from .env
  • Slack uses Bot Token from .env
  • Use drive find to locate file IDs by name, then pass to sheets read or docs read

Signals

GitHub stars
23
Forks
5
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
direct-integrations
Source
github.com/thesmokedev/taskchad-os