Skip to main content

Google Workspace (Gmail, Calendar, Drive) and iMessage integration for Claude Code

Project description

jean-claude

A Claude Code plugin for managing Gmail, Google Calendar, Google Drive, and iMessage (macOS only).

Prerequisites

Claude Code

This is a plugin for Claude Code, Anthropic's agentic coding tool. Install it first:

curl -fsSL https://claude.ai/install.sh | bash

uv (Python package manager)

This plugin requires uv to manage Python dependencies (requires Python 3.11+, which uv will install automatically if needed):

curl -LsSf https://astral.sh/uv/install.sh | sh

Installation

From your terminal, run:

claude plugin marketplace add max-sixty/jean-claude
claude plugin install jean-claude@jean-claude

Setup

Google Workspace (Gmail, Calendar, Drive)

After installing the plugin, ask Claude to authenticate:

"Set up Google authentication for jean-claude"

Claude will run the auth command for you, which opens a browser for OAuth consent.

Manual setup (if you prefer running commands yourself)
# The plugin is installed at:
cd ~/.claude/plugins/marketplaces/jean-claude

# Full access (read, send, modify)
uv run jean-claude auth

# Or read-only access (no send/modify capabilities)
uv run jean-claude auth --readonly

# Verify it worked
uv run jean-claude status

Credentials are saved to ~/.config/jean-claude/token.json and persist until revoked.

[!NOTE] You may see an "unverified app" warning during OAuth—this is normal for apps pending Google verification. Click "Advanced" → "Go to jean-claude (unsafe)" to proceed. The app only requests the permissions you approve and stores credentials locally on your machine.

Using your own Google Cloud credentials (optional)

Use your own credentials if the default ones stop working (Google limits unverified apps to 100 users) or if you want your own quota.

  1. Create a Google Cloud project at https://console.cloud.google.com
  2. Go to "APIs & Services" → "Enabled APIs" and enable:
    • Gmail API
    • Google Calendar API
    • Google Drive API
  3. Go to "APIs & Services" → "OAuth consent screen":
    • Choose "External" user type
    • Fill in app name and your email
    • Add scopes: gmail.modify, calendar, drive
    • Add yourself as a test user
  4. Go to "APIs & Services" → "Credentials":
    • Click "Create Credentials" → "OAuth client ID"
    • Choose "Desktop app" as application type
    • Download the JSON file
  5. Move the downloaded file:
    mkdir -p ~/.config/jean-claude
    mv ~/Downloads/client_secret_*.json ~/.config/jean-claude/client_secret.json
    
  6. Run the auth command—it will automatically use your credentials

iMessage (macOS only)

iMessage integration requires macOS—it uses AppleScript and the local Messages database.

  • Sending messages: Works via AppleScript. On first use, macOS prompts to allow your terminal to control Messages.app (Automation permission). Grant this to whichever app runs Claude Code (Terminal, iTerm2, VS Code, etc.).

  • Reading messages: Requires Full Disk Access to read the Messages database.

    1. Open System SettingsPrivacy & SecurityFull Disk Access
    2. Click + and add the app that runs Claude Code:
      • If using Terminal: add /Applications/Utilities/Terminal.app
      • If using iTerm2: add /Applications/iTerm.app
      • If using VS Code: add /Applications/Visual Studio Code.app
      • If using another terminal: find it in /Applications or via which
    3. Toggle the app on and restart it

Usage

Once installed, Claude automatically uses this plugin when you ask it to:

  • Search, send, or draft emails
  • Check calendar or create events
  • Find, upload, or share Drive files
  • Send texts or check iMessages

Example Prompts

"Check my inbox for unread emails"
"What's on my calendar today?"
"Send an email to alice@example.com about the meeting"
"Search Drive for quarterly reports"
"Text +12025551234 that I'm running late"
CLI Commands

The plugin provides a unified CLI with subcommands. Claude invokes these automatically, but you can also run them manually:

cd ~/.claude/plugins/marketplaces/jean-claude
uv run jean-claude --help
uv run jean-claude gmail --help
uv run jean-claude gcal --help
uv run jean-claude gdrive --help
uv run jean-claude imessage --help  # macOS only

Shell Completions

Enable tab completion for the CLI:

cd ~/.claude/plugins/marketplaces/jean-claude

# Bash (~/.bashrc)
eval "$(uv run jean-claude completions bash)"

# Zsh (~/.zshrc)
eval "$(uv run jean-claude completions zsh)"

# Fish (~/.config/fish/config.fish)
uv run jean-claude completions fish | source

Features

Gmail

  • Search and list emails
  • Create, send, and manage drafts
  • Reply and forward with threading preserved
  • Star, archive/unarchive, mark read/unread, trash messages

Google Calendar

  • List events (today, date range, or N days)
  • Create events with attendees, location, description
  • Search, update, and delete events
  • Timezone auto-detection

Google Drive

  • List and search files
  • Upload and download files
  • Create folders and share files
  • Trash and restore files

iMessage (macOS only)

  • Send messages to individuals or groups
  • Send file attachments
  • List chats and participants
  • Search message history
  • View unread messages

Security

  • OAuth tokens are stored with 0600 permissions (owner read/write only)
  • Default OAuth client credentials are embedded for convenience (standard practice for desktop/CLI apps per Google's guidelines)
  • Users can provide their own Google Cloud credentials if preferred
  • All email/message sends require explicit user approval
Development
# Install with dev dependencies
uv sync

# Run tests
uv run pytest

# Run lints
pre-commit run --all-files

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl (6.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file jean_claude_code-0.1.2-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jean_claude_code-0.1.2-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bffd0ca67ae12c2b482069a2ba200a4c4d74283735da7a3dff67ad2df61801a5
MD5 d27e6350b393e1deae68356b8dddfa68
BLAKE2b-256 c2a76e9bc08bd84010e310ece4bd95ec254f583cd095f663b5332822be3ace4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for jean_claude_code-0.1.2-py3-none-manylinux2014_x86_64.whl:

Publisher: build.yml on max-sixty/jean-claude

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jean_claude_code-0.1.2-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jean_claude_code-0.1.2-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7de0305386ed7ca0d07d9e877fbbf14c3fbe33b4d8a02e10da28a09504d0ff7
MD5 7fc2430e9739ddd85ebbaa74cd194b12
BLAKE2b-256 940a776409538097185ef79da4a65fda6b65a54c250226871040e37e195882eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for jean_claude_code-0.1.2-py3-none-manylinux2014_aarch64.whl:

Publisher: build.yml on max-sixty/jean-claude

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1088858ca944e961940690b90099da3bf06f0bcc39ffc57214f01538d18e9b15
MD5 20eca9ba370ca9e9ff543e94add139c3
BLAKE2b-256 3ac48fd0b2402cf7db020f6e3a51f7ed6dd1982f138e23c9116fcabf8ecd7820

See more details on using hashes here.

Provenance

The following attestation bundles were made for jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl:

Publisher: build.yml on max-sixty/jean-claude

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b53a9231870c37d21417cf7df843af801271bd44a1733e9d03626c2faecd57a1
MD5 dee446a61fe3b1df3792ab984fa44433
BLAKE2b-256 7b2238f73aa23242584ed09c52c7015d30bd7667284cdc1b10e4a343ed2f71eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl:

Publisher: build.yml on max-sixty/jean-claude

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page