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.
- Create a Google Cloud project at https://console.cloud.google.com
- Go to "APIs & Services" → "Enabled APIs" and enable:
- Gmail API
- Google Calendar API
- Google Drive API
- 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
- Go to "APIs & Services" → "Credentials":
- Click "Create Credentials" → "OAuth client ID"
- Choose "Desktop app" as application type
- Download the JSON file
- Move the downloaded file:
mkdir -p ~/.config/jean-claude
mv ~/Downloads/client_secret_*.json ~/.config/jean-claude/client_secret.json
- 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.
- Open System Settings → Privacy & Security → Full Disk Access
- 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
- 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)"