Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Google Chat Plugin for elizaOS

Google Chat messaging integration for elizaOS agents, providing full support for Google Workspace team communication.

Features

  • Messaging: Send and receive messages in Google Chat spaces
  • Direct Messages: Support for 1:1 DM conversations
  • Spaces: Manage presence in Google Chat spaces
  • Threads: Reply in threaded conversations
  • Reactions: Add and remove emoji reactions
  • Attachments: Upload and download media files
  • Webhook Support: Receive messages via configurable webhook endpoint
  • Multi-language: TypeScript, Python, and Rust implementations

Installation

TypeScript/JavaScript

npm install @elizaos-plugins/plugin-google-chat

Python

pip install elizaos-plugin-google-chat

Rust

Add to your Cargo.toml:

[dependencies]
elizaos-plugin-google-chat = "2.0.0-alpha.1"

Prerequisites

  1. Google Cloud Project: Create a project in the Google Cloud Console

  2. Enable Google Chat API:

    • Go to APIs & Services > Library
    • Search for "Google Chat API" and enable it
  3. Create a Chat App:

    • Go to APIs & Services > Chat API > Configuration
    • Configure your Chat app with a webhook URL
  4. Service Account:

    • Go to IAM & Admin > Service Accounts
    • Create a service account with Chat API access
    • Download the JSON key file
  5. Configure the Chat App:

    • Set the App URL (webhook endpoint)
    • Configure the audience type and value

Configuration

Environment Variables

Variable Description Required
GOOGLE_CHAT_SERVICE_ACCOUNT Service account JSON string One of these
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE Path to service account JSON file required
GOOGLE_APPLICATION_CREDENTIALS Default credentials path
GOOGLE_CHAT_AUDIENCE_TYPE Audience type: app-url or project-number Yes
GOOGLE_CHAT_AUDIENCE Audience value for token verification Yes
GOOGLE_CHAT_WEBHOOK_PATH Webhook path (default: /googlechat) No
GOOGLE_CHAT_SPACES Comma-separated list of spaces No
GOOGLE_CHAT_REQUIRE_MENTION Require @mention in spaces (default: true) No
GOOGLE_CHAT_BOT_USER Bot user resource name No
GOOGLE_CHAT_ENABLED Enable/disable plugin (default: true) No

Audience Configuration

App URL (Recommended):

  • Set GOOGLE_CHAT_AUDIENCE_TYPE=app-url
  • Set GOOGLE_CHAT_AUDIENCE to your Chat app's App URL from the Cloud Console

Project Number:

  • Set GOOGLE_CHAT_AUDIENCE_TYPE=project-number
  • Set GOOGLE_CHAT_AUDIENCE to your Google Cloud project number

Usage

TypeScript

import googleChatPlugin from "@elizaos-plugins/plugin-google-chat";

const agent = createAgent({
  plugins: [googleChatPlugin],
  // ... other config
});

Python

from elizaos_plugin_google_chat import get_plugin

plugin = get_plugin()
# Register with elizaOS runtime

Rust

use elizaos_plugin_google_chat::GoogleChatService;

let settings = GoogleChatSettings {
    audience_type: GoogleChatAudienceType::AppUrl,
    audience: "https://chat.googleapis.com/api/...".to_string(),
    // ... other settings
    ..Default::default()
};

let service = GoogleChatService::new(settings).await?;
service.start().await?;

Actions

GOOGLE_CHAT_SEND_MESSAGE

Send a message to a Google Chat space.

Parameters:

  • text (string): Message content
  • space (string): Target space name (e.g., spaces/AAAA...)
  • thread (string, optional): Thread name to reply in

GOOGLE_CHAT_SEND_REACTION

Add or remove an emoji reaction to a message.

Parameters:

  • emoji (string): Unicode emoji character
  • messageName (string): Target message resource name
  • remove (boolean): Whether to remove the reaction

GOOGLE_CHAT_LIST_SPACES

List all spaces the bot is a member of.

Providers

googleChatSpaceState

Provides context about the current Google Chat space:

  • space_name: Space resource name
  • space_display_name: Human-readable space name
  • space_type: DM, ROOM, or SPACE
  • is_threaded: Whether space uses threads
  • is_direct: Whether this is a direct message

googleChatUserContext

Provides information about the current user:

  • user_name: User resource name
  • display_name: User's display name
  • email: User's email address
  • user_type: HUMAN or BOT

Events

Event Description
GOOGLE_CHAT_MESSAGE_RECEIVED Message received from a space
GOOGLE_CHAT_MESSAGE_SENT Message sent successfully
GOOGLE_CHAT_SPACE_JOINED Bot added to a space
GOOGLE_CHAT_SPACE_LEFT Bot removed from a space
GOOGLE_CHAT_REACTION_SENT Reaction added successfully
GOOGLE_CHAT_CONNECTION_READY Service connected and ready

Message Limits

  • Maximum message length: 4,000 characters
  • Attachments: 20 MB per file (configurable)
  • Messages exceeding the limit are automatically chunked

Webhook Security

The plugin verifies incoming webhook requests using Google's authentication:

  1. App URL mode: Verifies ID token against the configured app URL
  2. Project Number mode: Verifies JWT with Google's public certificates

Requests that fail verification are rejected with 401 Unauthorized.

Resource Names

Google Chat uses resource names for identifying entities:

  • Spaces: spaces/{space_id}
  • Messages: spaces/{space_id}/messages/{message_id}
  • Users: users/{user_id} or users/app for the bot
  • Threads: spaces/{space_id}/threads/{thread_id}
  • Reactions: spaces/{space_id}/messages/{message_id}/reactions/{reaction_id}

Troubleshooting

Authentication Issues

  1. Verify service account JSON is valid
  2. Check that the Chat API is enabled
  3. Ensure the service account has Chat API permissions
  4. Verify audience type and value match your Chat app configuration

Webhook Not Receiving Messages

  1. Verify your webhook URL is accessible from the internet
  2. Check that the webhook path matches your configuration
  3. Ensure your server responds with 200 OK to POST requests
  4. Verify the Chat app is properly configured in Cloud Console

Permission Denied

  1. Check service account permissions
  2. Verify the bot is added to the target space
  3. Ensure proper IAM roles are assigned

Multi-language Support

This plugin provides parallel implementations in:

  • TypeScript: Primary implementation with full feature support
  • Python: Feature-complete using aiohttp and google-auth
  • Rust: Full implementation using reqwest and async runtime

All implementations maintain consistent:

  • Type definitions
  • Action interfaces
  • Provider outputs
  • Event types
  • Error handling

License

MIT License - see LICENSE for details.

Metadata

Release files for elizaos-plugin-google-chat 2.0.0a5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elizaos-plugin-google-chat 2.0.0a5
File Size Uploaded
elizaos_plugin_google_chat-2.0.0a5.tar.gz 19.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for elizaos-plugin-google-chat 2.0.0a5
File Interpreter ABI Platform
elizaos_plugin_google_chat-2.0.0a5-py3-none-any.whl Python 3 none any Details

Total release size: 38.3 kB

Release files / elizaos_plugin_google_chat-2.0.0a5.tar.gz

Download URL elizaos_plugin_google_chat-2.0.0a5.tar.gz
Size 19.4 kB
Tags Source
SHA-256 checksum
How to use checksums
77a214247dc7147c3ac98beb4407dbebbb04524544de6a25b231d6a3a192227f
BLAKE2b-256 checksum
How to use checksums
16c9aec11a1ded4a4d483d3dad1caba1d1c71e637db3821d2fc7c9dae548dc48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / elizaos_plugin_google_chat-2.0.0a5-py3-none-any.whl

Download URL elizaos_plugin_google_chat-2.0.0a5-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b336e4c2d9c992bff0fafa84940ed4fc2a00d7e8c32cec1145b4b2dd4940759
BLAKE2b-256 checksum
How to use checksums
cc9558ba1a56e749bd491bdd690e49e58b0109810ad11fc7515f940cb2e00155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

2.0.0a5 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page