gws-chat — Claude Code command for Google Chat
Run Google Chat operations through gws, from managing spaces to handling messages. Use it when you want Claude Code to inspect a method before making the API call.
npx claude-code-templates@latest --command google-workspace/gws-chatWhat gws-chat does
gws-chat routes a requested Google Chat task through the Google Workspace CLI, gws. It covers spaces, messages, memberships, space events, media, and custom emojis. A separate helper, +send, is listed for sending a message to a space.
Before running a method, inspect its parameters with gws schema chat.<resource>.<method>, then build the call with the appropriate flags. You need gws installed and authentication configured; check the latter with gws auth status. The command also relies on ../gws-shared/SKILL.md for shared authentication, flags, and security guidance. If that file is missing, it directs the agent to create it with gws generate-skills.
Custom emojis require a Google Workspace account and must be enabled by the organization administrator. Deleting a space also removes its child resources, including messages and memberships, so that operation has a broad effect.
What it helps with
- create a space and add selected users
- find an existing direct message with a user
- inspect a Chat API method’s parameters before calling it
- upload an attachment or download media
- list spaces the caller belongs to
Example prompts for the agent
- Create a space and add these users with
/gws-chat. - Check the parameters for the space lookup method using
/gws-chat. - Send a message to this space with
/gws-chat.
How to install gws-chat
1claude-code-templates
npx claude-code-templates@latest --command google-workspace/gws-chat2Manually: put the files in place
.claude/commands/gws-chat.mdCall it with /gws-chat. For all projects use ~/.claude/commands/
Manually: put the files in place
~/.codex/prompts/gws-chat.mdCall it with /prompts:gws-chat. Codex marks this format deprecated in favour of skills
Manually: put the files in place
.github/prompts/gws-chat.prompt.mdManually: put the files in place
.gemini/commands/gws-chat.tomlGemini stores commands as TOML: the prompt text goes into the prompt field
Questions about gws-chat
How do I install gws-chat in Claude Code?
Run npx claude-code-templates@latest --command google-workspace/gws-chat. The command is installed at .claude/commands/gws-chat.md.
What does gws-chat do?
It lets Claude Code run Google Chat operations through gws, including work with spaces, messages, and media. It directs the agent to inspect a method’s schema before forming the call.
What do I need before using gws-chat?
Install gws, configure authentication, and make sure ../gws-shared/SKILL.md is available. Check authentication with gws auth status.
Source text
gws-chat.md · MIT
---
allowed-tools: Bash, Read, Write, Edit
argument-hint: "[resource] [method] [flags]"
description: "Google Chat: Manage Chat spaces and messages."
---
# Google Workspace Chat
Execute Google Workspace Chat operations: $ARGUMENTS
## Prerequisites
- Google Workspace CLI (`gws`) must be installed
- Authentication configured: Run `gws auth status` to verify
- Review `gws chat --help` for all available commands
## Available Resources and Methods
# chat (v1)
> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
```bash
gws chat <resource> <method> [flags]
```
## Helper Commands
| Command | Description |
|---------|-------------|
| [`+send`](../gws-chat-send/SKILL.md) | Send a message to a space |
## API Resources
### customEmojis
- `create` — Creates a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149) and [Manage custom emoji permissions](https://support.google.com/a/answer/12850085).
- `delete` — Deletes a custom emoji. By default, users can only delete custom emoji they created. [Emoji managers](https://support.google.com/a/answer/12850085) assigned by the administrator can delete any custom emoji in the organization. See [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149). Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization.
- `get` — Returns details about a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149) and [Manage custom emoji permissions](https://support.google.com/a/answer/12850085).
- `list` — Lists custom emojis visible to the authenticated user. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149) and [Manage custom emoji permissions](https://support.google.com/a/answer/12850085).
### media
- `download` — Downloads media. Download is supported on the URI `/v1/media/{+name}?alt=media`.
- `upload` — Uploads an attachment. For an example, see [Upload media as a file attachment](https://developers.google.com/workspace/chat/upload-media-attachments).
### spaces
- `completeImport` — Completes the [import process](https://developers.google.com/workspace/chat/import-data) for the specified space and makes it visible to users.
- `create` — Creates a space. Can be used to create a named space, or a group chat in `Import mode`. For an example, see [Create a space](https://developers.google.com/workspace/chat/create-spaces).
- `delete` — Deletes a named space. Always performs a cascading delete, which means that the space's child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see [Delete a space](https://developers.google.com/workspace/chat/delete-spaces).
- `findDirectMessage` — Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). With [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app), returns the direct message space between the specified user and the calling Chat app.
- `get` — Returns details about a space. For an example, see [Get details about a space](https://developers.google.com/workspace/chat/get-spaces).
- `list` — Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see [List spaces](https://developers.google.com/workspace/chat/list-spaces).
- `patch` — Updates a space. For an example, see [Update a space](https://developers.google.com/workspace/chat/update-spaces). If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name.
- `search` — Returns a list of spaces in a Google Workspace organization based on an administrator's search. In the request, set `use_admin_access` to `true`. For an example, see [Search for and manage spaces](https://developers.google.com/workspace/chat/search-manage-admin).
- `setup` — Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see [Set up a space with initial members](https://developers.google.com/workspace/chat/set-up-spaces). To specify the human members to add, add memberships with the appropriate `membership.member.name`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user.
- `members` — Operations on the 'members' resource
- `messages` — Operations on the 'messages' resource
- `spaceEvents` — Operations on the 'spaceEvents' resource
### users
- `spaces` — Operations on the 'spaces' resource
## Discovering Commands
Before calling any API method, inspect it:
```bash
# Browse resources and methods
gws chat --help
# Inspect a method's required params, types, and defaults
gws schema chat.<resource>.<method>
```
Use `gws schema` output to build your `--params` and `--json` flags.
## Usage
```bash
# List available resources and methods
gws chat --help
# Inspect method schema before calling
gws schema chat.<resource>.<method>
# Execute command with arguments
gws chat $ARGUMENTS
```
## Task
Execute the requested Chat operation: $ARGUMENTS
1. **Verify Prerequisites**
- Check `gws` is installed: `gws --version`
- Verify authentication: `gws auth status`
- Review available commands: `gws chat --help`
2. **Inspect Method Schema**
- Before calling any method, inspect its parameters
- Use `gws schema` to understand required fields
- Review parameter types and constraints
3. **Execute Operation**
- Build command with appropriate flags
- Use `--params` for query/path parameters
- Use `--json` for request body
- Handle pagination with `--max-results` or `--page-token`
4. **Error Handling**
- Check command output for errors
- Review API quotas and rate limits
- Handle authentication issues
- Retry transient failures
---
**License**: Apache License 2.0
**Source**: [Google Workspace CLI](https://github.com/googleworkspace/cli)
**Original Skill**: `gws-chat`
© davila7 · MIT · davila7/claude-code-templates