gws-chat — Claude Code skill: what it does, how to install
Manages Google Chat spaces and messages straight from your AI coding agent. Helpful for creating spaces, sharing files, and inspecting chat memberships.
npx skills add googleworkspace/cli --skill gws-chat -a claude-codeWhat gws-chat does
The skill exposes Google Chat API methods to your agent through the gws command-line utility. It handles space creation, searches for existing direct messages with findDirectMessage, and supports media uploads or downloads. It also manages custom emojis when permitted by the Google Workspace organization.
Prerequisites include the installed gws binary and security rules from ../gws-shared/SKILL.md. The agent checks parameters with gws schema. Missing documentation files can be recreated using gws generate-skills.
Install this if your workspace relies on Google Chat and needs automated space administration. Without the gws binary, the agent will have no CLI backend to execute these calls.
What it helps with
- create a new space and add team members automatically
- find an existing direct message space by user email
- upload media files as attachments to a space
- inspect required parameters using
gws schema
Example prompts for the agent
- Set up a new space called Incident Response and add [email protected]
- Find my direct message space with [email protected]
- Upload release-notes.txt to the engineering space
How to install gws-chat
1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-chat -a claude-code2Manually: put the files in place
~/.claude/skills/gws-chat/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gws-chat/
1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-chat -a codex2Manually: put the files in place
.agents/skills/gws-chat/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-chat -a cursor2Manually: put the files in place
.cursor/skills/gws-chat/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install googleworkspace/cli gws-chat2Manually: put the files in place
.github/skills/gws-chat/SKILL.md1Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-chat -a gemini-cli2Platform CLI
gemini skills install https://github.com/googleworkspace/cli --path skills/gws-chatManually: put the files in place
.devin/skills/gws-chat/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add googleworkspace/cli --skill gws-chat -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set95
The whole set →Similar
Questions about gws-chat
How to install gws-chat in Claude Code?
Run npx skills add googleworkspace/cli --skill gws-chat -a claude-code. You can also link the definition directly at ~/.claude/skills/gws-chat/SKILL.md.
What does gws-chat do?
It allows AI agents to inspect, create, and manage Google Chat spaces, attachments, members, and custom emojis using gws commands.
What is required before using gws-chat?
You need the gws binary and the ../gws-shared/SKILL.md file. Generate missing shared prerequisites with gws generate-skills.
Source text
SKILL.md · Apache-2.0
---
name: gws-chat
description: "Google Chat: Manage Chat spaces and messages."
metadata:
version: 0.22.5
openclaw:
category: "productivity"
requires:
bins:
- gws
cliHelp: "gws chat --help"
---
# 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
- `sections` — Operations on the 'sections' resource
- `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.
© googleworkspace · Apache-2.0 · googleworkspace/cli