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.
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
/Applicationsor viawhich
- If using Terminal: add
- 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
Metadata
Release files for jean-claude-code 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| jean_claude_code-0.1.2-py3-none-manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| jean_claude_code-0.1.2-py3-none-manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl | Python 3 | none | macOS 10.9+ x86-64 | Details |
Total release size: 25.4 MB
Release files / jean_claude_code-0.1.2-py3-none-manylinux2014_x86_64.whl
| Download URL | jean_claude_code-0.1.2-py3-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 6.5 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
bffd0ca67ae12c2b482069a2ba200a4c4d74283735da7a3dff67ad2df61801a5
|
|
BLAKE2b-256 checksum How to use checksums |
c2a76e9bc08bd84010e310ece4bd95ec254f583cd095f663b5332822be3ace4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 26, 2025.
Transparency logRelease files / jean_claude_code-0.1.2-py3-none-manylinux2014_aarch64.whl
| Download URL | jean_claude_code-0.1.2-py3-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
f7de0305386ed7ca0d07d9e877fbbf14c3fbe33b4d8a02e10da28a09504d0ff7
|
|
BLAKE2b-256 checksum How to use checksums |
940a776409538097185ef79da4a65fda6b65a54c250226871040e37e195882eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 26, 2025.
Transparency logRelease files / jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl
| Download URL | jean_claude_code-0.1.2-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1088858ca944e961940690b90099da3bf06f0bcc39ffc57214f01538d18e9b15
|
|
BLAKE2b-256 checksum How to use checksums |
3ac48fd0b2402cf7db020f6e3a51f7ed6dd1982f138e23c9116fcabf8ecd7820
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 26, 2025.
Transparency logRelease files / jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl
| Download URL | jean_claude_code-0.1.2-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 6.6 MB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
b53a9231870c37d21417cf7df843af801271bd44a1733e9d03626c2faecd57a1
|
|
BLAKE2b-256 checksum How to use checksums |
7b2238f73aa23242584ed09c52c7015d30bd7667284cdc1b10e4a343ed2f71eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 26, 2025.
Transparency log