Guide · Agent skill
How to use the Google Chat Channel Setup agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The add-gchat skill teaches an agent to connect NanoClaw, a personal AI assistant framework, to Google Chat so it can answer in spaces and direct messages. This guide is for people who may be new to agent skills, and it covers what the skill does, how to install it, how to ask for it, what it needs, and what to watch for. By the end you will know which accounts and endpoints you need, and how the agent and you split the setup work.
Quick start
- 1Install the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder, or upload it under Settings → Capabilities → Skills.
- 2Check the prerequisites. Confirm you have a NanoClaw codebase with a channels branch, pnpm, Node.js, a Google Cloud project and a publicly reachable HTTPS endpoint.
- 3Let the agent apply the Apply steps. Ask the agent to add Google Chat as a channel. It copies the adapter, registers it, installs the pinned package, builds and runs the test.
- 4Complete the Google Cloud setup. Enable the Google Chat API, configure the app as a Workspace add-on with your endpoint URL, and create a service account with a JSON key.
- 5Provide the credentials and endpoint. Give the agent the service account JSON, the HTTP endpoint URL and your project number, so they are saved to .env.
- 6Expose the webhook port. Start a tunnel or reverse proxy to port 3000, then restart NanoClaw so it picks up the settings.
- 7Add the bot user id for spaces. DM the app, find its sender name in the messages list, and add GOOGLE_CHAT_BOT_USER_ID to .env so @mentions work in spaces.
What does the add-gchat skill make the agent do?
An agent skill is a folder of instructions that an AI agent can read and follow. This one adds Google Chat as a messaging channel for NanoClaw. NanoClaw does not include channels in its main code, so the skill copies a Google Chat adapter in from the project's channels branch.
The agent then registers the adapter, installs the adapter package at a pinned version, builds the project and runs one integration test. After that, it walks you through the Google Cloud Console setup and stores the service account key and endpoint settings in the local .env file.
- Copies src/channels/gchat.ts and src/channels/gchat-registration.test.ts from the channels branch
- Adds one import line to src/channels/index.ts
- Installs @chat-adapter/gchat at an exact pinned version
- Runs pnpm run build and one vitest test
- Guides you through Google Cloud setup and saves credentials to .env
How do you install the add-gchat skill?
Download the skill ZIP from this page and unzip it. Put the resulting folder in ~/.claude/skills/ to make it available across your projects, or in the .claude/skills/ folder of a single project to limit it to that project.
If you use the Claude apps instead, open Settings, go to Capabilities, then Skills, and upload the ZIP there.
- Personal install: ~/.claude/skills/
- Project install: .claude/skills/ inside your project
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
What do you need before you start?
The skill assumes a NanoClaw codebase with a git channels branch, plus pnpm and Node.js. The build and test steps run through pnpm scripts and vitest. You also need a Google Cloud project with the Google Chat API enabled and a service account JSON key, and a Google Workspace domain, because the app's visibility settings depend on it.
You also need a publicly reachable HTTPS endpoint. The source gives ngrok, a Cloudflare Tunnel or a reverse proxy on a VPS as examples.
- NanoClaw codebase with a git channels branch, and pnpm
- Node.js with pnpm and vitest, used through the build and test scripts
- Google Cloud project with the Google Chat API enabled and a service account JSON key
- Google Workspace domain for the app's visibility settings
- A publicly reachable HTTPS endpoint such as ngrok, a Cloudflare Tunnel or a reverse proxy
How do you trigger the skill with a natural request?
The skill's description is 'Add Google Chat channel integration via Chat SDK'. Ask your agent in plain words to add Google Chat as a channel, and name the skill add-gchat if you want to be explicit. The agent should then read SKILL.md and begin the Apply steps.
Expect the agent to stop and ask you for values when it reaches the credential and endpoint steps. Have your Google Cloud project number and service account key ready before you start those steps.
- Example: Add Google Chat as a channel to my NanoClaw setup using the add-gchat skill.
- Example: Set up the Google Chat channel for NanoClaw and walk me through the Google Cloud steps.
What happens during the Apply steps?
The mechanical steps are written as directives, so an agent can apply them directly, and a parser could apply them the same way. Every directive is idempotent, so you can re-run the whole skill safely. Where a parser cannot apply a step, the prose beside it explains what to do.
The build step matters because it checks the typed core call and confirms the dependency is installed. The test imports the real channel barrel and checks that the registry contains gchat. It fails if the import line is removed, if the barrel does not load, or if the package is missing.
- Step 1: copy the adapter and its registration test, overwriting the branch copies
- Step 2: append import './gchat.js'; to src/channels/index.ts if it is not already there
- Step 3: install the pinned @chat-adapter/gchat package
- Step 4: run pnpm run build, then pnpm exec vitest run src/channels/gchat-registration.test.ts
pnpm run build
pnpm exec vitest run src/channels/gchat-registration.test.tsHow do you set up the Google Cloud app and credentials?
The Google Cloud steps are manual. No script can click through the console, so the skill gives them as instructions. A rebuild gives you a compiling, registered adapter, but it cannot receive messages until these steps are done.
In the Chat API Configuration page, the app must be built as a Google Workspace add-on, with an HTTP endpoint URL ending in /webhook/gchat. Visibility can be limited to specific people and groups in your domain, up to five. Then create a service account with no roles, open it, and add a JSON key. The key file downloads to your machine.
The agent stores the service account JSON as GCHAT_CREDENTIALS, the endpoint as GOOGLE_CHAT_ENDPOINT_URL and your project number as GOOGLE_CHAT_PROJECT_NUMBER, all in .env. Existing values are kept, so change them by hand and restart after a URL change.
- Enable the Google Chat API in your Google Cloud project
- Check Build this Chat app as a Google Workspace add-on, then Save
- Set App name (up to 25 alphanumeric characters), Avatar URL and Description (max 40 characters)
- Turn on Enable interactive features, and Join spaces and group conversations if you want spaces
- Limit visibility to specific people or groups in your domain
- Create a service account with no roles, then add a JSON key
How do the webhook and bot user id work?
NanoClaw's Chat SDK bridge starts a shared webhook server on port 3000, which you can change with WEBHOOK_PORT. It handles /webhook/gchat. Google signs every webhook, and NanoClaw must be able to check that signature. The skill asks for the project number, which you can find in the Service Account Email on the Configuration page, and stores both values in .env.
Direct messages work without the bot user id. In a space, though, an @mention only counts once NanoClaw knows the app's user id. The easiest time to find it is after the app has replied to you. You can add GOOGLE_CHAT_BOT_USER_ID to .env later and restart.
- Expose port 3000 with ngrok http 3000, a Cloudflare Tunnel or a reverse proxy
- If the tunnel runs on another machine or in Docker on Linux, add WEBHOOK_HOST=0.0.0.0 to .env
- The webhook server listens on 127.0.0.1 only by default
What people use it for
- Let staff in a Google Workspace domain ask your NanoClaw assistant questions in a Chat space.
- Use a direct message with the assistant for private questions, without adding it to a space.
- Limit a Chat app to a small group of named people or Google Groups in your own domain.
- Keep one NanoClaw setup that answers in Google Chat alongside other channels the project supports.
Frequently asked questions
Is the add-gchat skill free to use?
The skill is published under the MIT licence, as stated on this page. The source does not cover Google Cloud pricing, so check Google's own terms for the Chat API and service accounts before you rely on it.
What do I need to install the add-gchat skill?
You need the skill ZIP from this page, unzipped into ~/.claude/skills/ or a project's .claude/skills/ folder, or uploaded under Settings → Capabilities → Skills. The skill itself assumes a NanoClaw codebase with a channels branch, pnpm and Node.js.
Does the add-gchat skill work without NanoClaw?
No. The skill is written for NanoClaw's build, test and .env conventions, and it copies files from NanoClaw's channels branch. Users who do not run NanoClaw or a compatible setup are not the intended audience.
Why does Google Chat not receive messages after setup?
The Google Cloud steps are required before messages can arrive. Check that the app is built as a Workspace add-on, that the HTTP endpoint URL matches GOOGLE_CHAT_ENDPOINT_URL exactly and ends in /webhook/gchat, and that port 3000 is reachable through your tunnel or proxy.
Why is my bot not responding to @mentions in a space?
In a space, an @mention only counts once NanoClaw knows the app's user id. Find the sender name of a bot message in the messages list and add it as GOOGLE_CHAT_BOT_USER_ID in .env, then restart. Direct messages work without it.
How do I remove the Google Chat channel later?
Use the REMOVE.md file included with the skill. It deletes the import line, the copied adapter and its test, removes the four Google Chat values from .env, uninstalls the package, and rebuilds and restarts the service.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use add-gchat if you run NanoClaw, want it to answer in Google Chat, and have a Google Workspace domain and the ability to create a Google Cloud project and service account key. Pick something else if you do not run NanoClaw, cannot create those Google Cloud resources, or work on a shared machine, because the service account JSON is stored in plain text in .env.
Download the skill