Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/googleworkspace/cli/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Chat service provides access to Google Chat v1 API for sending messages, managing spaces, and interacting with Chat apps. API: chat (v1)

Common Use Cases

  • Send messages to spaces
  • List and manage spaces
  • Create and manage chat apps
  • Upload attachments
  • Manage memberships

Helper Commands

+send

Send a plain text message to a space:
gws chat +send --space spaces/AAAAxxxx --text 'Deploy complete!'
Features:
  • Simple text messaging
  • For cards or threaded replies, use the raw API

Command Examples

List Spaces

gws chat spaces list
{
  "spaces": [
    {
      "name": "spaces/AAAAxxxx",
      "type": "ROOM",
      "displayName": "Engineering Team",
      "spaceThreadingState": "THREADED_MESSAGES"
    },
    {
      "name": "spaces/BBBByyyy",
      "type": "DM",
      "singleUserBotDm": false
    }
  ]
}

Get Space Details

gws chat spaces get --params '{"name": "spaces/AAAAxxxx"}'

Create a Space

gws chat spaces create --json '{
  "displayName": "Project Alpha",
  "spaceType": "SPACE"
}'

Send a Message

gws chat spaces messages create \
  --params '{"parent": "spaces/AAAAxxxx"}' \
  --json '{"text": "Hello, team!"}'
{
  "name": "spaces/AAAAxxxx/messages/MESSAGExxxx",
  "sender": {
    "name": "users/123456789",
    "displayName": "Alice Smith",
    "type": "HUMAN"
  },
  "text": "Hello, team!",
  "createTime": "2026-03-05T10:30:00.000Z",
  "thread": {"name": "spaces/AAAAxxxx/threads/THREADxxxx"}
}

Send a Card Message

gws chat spaces messages create \
  --params '{"parent": "spaces/AAAAxxxx"}' \
  --json '{
    "cardsV2": [
      {
        "cardId": "deploy-status",
        "card": {
          "header": {"title": "Deployment Status", "subtitle": "Production"},
          "sections": [
            {
              "widgets": [
                {"textParagraph": {"text": "✅ Deployment successful"}},
                {"buttonList": {
                  "buttons": [
                    {"text": "View Logs", "onClick": {"openLink": {"url": "https://logs.example.com"}}}
                  ]
                }}
              ]
            }
          ]
        }
      }
    ]
  }'

List Messages

gws chat spaces messages list --params '{"parent": "spaces/AAAAxxxx", "pageSize": 10}'

Update a Message

gws chat spaces messages patch \
  --params '{"name": "spaces/AAAAxxxx/messages/MESSAGExxxx", "updateMask": "text"}' \
  --json '{"text": "Updated message text"}'

Delete a Message

gws chat spaces messages delete --params '{"name": "spaces/AAAAxxxx/messages/MESSAGExxxx"}'

Manage Memberships

List members
gws chat spaces members list --params '{"parent": "spaces/AAAAxxxx"}'
Add member
gws chat spaces members create \
  --params '{"parent": "spaces/AAAAxxxx"}' \
  --json '{"member": {"name": "users/123456789", "type": "HUMAN"}}'
Remove member
gws chat spaces members delete --params '{"name": "spaces/AAAAxxxx/members/MEMBERxxxx"}'

Upload Attachment

gws chat media upload --params '{"parent": "spaces/AAAAxxxx"}' --upload ./image.png
Then reference the attachment in a message:
gws chat spaces messages create \
  --params '{"parent": "spaces/AAAAxxxx"}' \
  --json '{
    "text": "Check out this screenshot:",
    "attachment": [{"attachmentDataRef": {"resourceName": "ATTACHMENT_NAME"}}]
  }'

React to a Message

Add reaction
gws chat spaces messages reactions create \
  --params '{"parent": "spaces/AAAAxxxx/messages/MESSAGExxxx"}' \
  --json '{"emoji": {"unicode": "👍"}}'
List reactions
gws chat spaces messages reactions list --params '{"parent": "spaces/AAAAxxxx/messages/MESSAGExxxx"}'
Remove reaction
gws chat spaces messages reactions delete --params '{"name": "spaces/AAAAxxxx/messages/MESSAGExxxx/reactions/REACTIONxxxx"}'

Search Spaces

gws chat spaces search --params '{"query": "engineering"}'

Message Threading

Chat supports threaded conversations. When creating a message, you can:
  • Start a new thread (default)
  • Reply to an existing thread by passing thread.name
  • Use messageReplyOption to control fallback behavior
Reply to thread
gws chat spaces messages create \
  --params '{"parent": "spaces/AAAAxxxx", "messageReplyOption": "REPLY_MESSAGE_OR_FAIL"}' \
  --json '{"text": "Reply in thread", "thread": {"name": "spaces/AAAAxxxx/threads/THREADxxxx"}}'

Resources

  • spaces - Chat spaces (rooms, DMs)
  • spaces.messages - Messages in spaces
  • spaces.members - Space memberships
  • spaces.messages.reactions - Message reactions
  • spaces.messages.attachments - Message attachments
  • media - Upload media files
Use gws chat <resource> --help to see all available methods.

Gmail

Email communication

Calendar

Schedule meetings