Agent skill

Google Chat Channel for NanoClaw

by nanocoai in nanocoai/nanoclaw

Connects NanoClaw to Google Chat through the Chat SDK bridge, with Google Cloud Console setup steps for the app credentials.

MITAuto-check: notesProductivity & Automation

Install Google Chat Channel for NanoClaw

skills CLI
$ npx skills add nanocoai/nanoclaw --skill add-gchat -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nanocoai/nanoclaw add-gchat --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-gchat .claude/skills/add-gchat && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-gchat
GitHub stars
31k
Token cost
~1.5k tokens
SKILL.md length
807 words
Files
3
Skills in repo
59
Repo updated
First seen
Licence
MIT

At a glance

Connects NanoClaw to Google Chat through the Chat SDK bridge, with Google Cloud Console setup steps for the app credentials.

  • Works in 4 steps: Copy the adapter and its registration test → Register the adapter → Install the adapter package → …
  • Letting a NanoClaw agent respond in a Google Chat space
  • SKILL.md covers Apply, Credentials, Next Steps and Channel Info, plus 1 more section
  • Calls ngrok and pnpm; needs GCHAT_CREDENTIALS

What it does

Google Chat joins NanoClaw through the Chat SDK bridge, using an adapter copied from the `channels` branch. The mechanical part is four repeatable steps: copy the adapter and test into `src/channels/`, append the import to the channel barrel, install `@chat-adapter/gchat` at a pinned version, then build and run the registration test, which asserts that `gchat` appears in the registry.

Credentials are a human step in the Google Cloud Console: create or choose a project, enable the Google Chat API and fill in the API's Configuration page, starting with an app name and description, plus further settings listed in the skill. Until that is done the adapter compiles and registers but cannot receive a message. Delivery to a real Google Chat space is verified by hand.

When your agent uses it

  • Letting a NanoClaw agent respond in a Google Chat space
  • Setting up a Google Chat app in Google Cloud for an agent
  • Re-running the adapter install after a NanoClaw update

Example prompts

  • “Add Google Chat to NanoClaw and list the Cloud Console steps I need to do.”
  • “Install the gchat adapter and run its registration test.”
  • “Walk me through enabling the Google Chat API for the project my agent uses.”

Requirements

  • A NanoClaw installation with pnpm
  • A Google Cloud project with the Google Chat API enabled

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Copy the adapter and its registration test
  2. Register the adapter
  3. Install the adapter package
  4. Build and validate

What it can do on your machine

Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • ngrok
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • console.cloud.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GCHAT_CREDENTIALS

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Google Chat Channel for NanoClaw loads about 1.5k tokens when it runs. Until then it costs about 15 tokens; SKILL.md has 807 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~15
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:87
    ed `ncl` or the OneCLI vault instead of `.env` by swapping only the
  • NoteMentions a .env fileSKILL.md:88
    consumer. Here it goes to `.env` (set-if-absent — a value you've already filled
  • NoteMentions a .env fileSKILL.md:121
    nt JSON collapsed to one line — inspect `.env` and confirm it still contains `"type":"service_account"`, `"private_key"`
  • NoteMentions a .env fileSKILL.md:127
    service so it picks up the adapter and `.env`, then watch `logs/nanoclaw.log` for the inbound webhook hit.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 807 words, ~1,525 tokens.

Download SKILL.mdSave it as .claude/skills/add-gchat/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
add-gchat
description
Add Google Chat channel integration via Chat SDK.

Add Google Chat Channel

Adds Google Chat support via the Chat SDK bridge. NanoClaw doesn't ship channels in trunk — this skill copies the Google Chat adapter in from the channels branch.

The mechanical steps under Apply carry nc: directive fences: an agent reads the prose and applies them, and a parser can apply them deterministically from the same document. Every directive is idempotent, so the whole skill is safe to re-run; anything a parser can't apply falls back to the prose beside it.

Apply

1. Copy the adapter and its registration test

Fetch the channels branch and copy the Google Chat adapter and its registration test into src/channels/ (overwrite — the branch is canonical):

nccopy
src/channels/gchat.ts
src/channels/gchat-registration.test.ts
2. Register the adapter

Append the self-registration import to the channel barrel (skipped if the line is already present). This one line is the skill's only reach-in into core:

ncappend
import './gchat.js';
3. Install the adapter package

Pinned to an exact version — the supply-chain policy rejects ranges and latest:

ncdep
@chat-adapter/gchat@4.29.0
4. Build and validate

Build first: it guards the typed createChatSdkBridge(...) core call and proves the dependency is installed. Then run the one integration test.

ncrun
pnpm run build
ncrun
pnpm exec vitest run src/channels/gchat-registration.test.ts

gchat-registration.test.ts imports the real channel barrel and asserts the registry contains gchat. It goes red if the import line is deleted or drifts, if the barrel fails to evaluate, or if @chat-adapter/gchat isn't installed (the import throws) — so it also covers the dependency from step 3. End-to-end delivery against a real Google Chat space is verified manually once the service runs — see Credentials and Next Steps.

Credentials

Google Cloud setup is human and interactive — these steps are prose, not directives (no parser can click through the Google Cloud Console). A recipe rebuild produces a compiling, registered adapter that cannot receive a message until they're done.

  1. Go to Google Cloud Console
  2. Create or select a project
  3. Enable the Google Chat API
  4. Go to Google Chat API > Configuration:
    • App name and description
    • Connection settings: select HTTP endpoint URL and set to https://your-domain/webhook/gchat
  5. Create a Service Account:
    • Go to IAM & Admin > Service Accounts > Create Service Account
    • Grant the Chat Bot role
    • Create a JSON key and download it
Store the credentials

Capture the service account JSON, then write it. prompt only asks and binds the answer to a name; a separate directive consumes it — so the same prompt could feed ncl or the OneCLI vault instead of .env by swapping only the consumer. Here it goes to .env (set-if-absent — a value you've already filled in is never overwritten) as a single-line string:

ncprompt
Paste the service account JSON as a single line — the key file you downloaded, e.g. `{"type":"service_account","project_id":"...","private_key":"...","client_email":"..."}`.
ncenv-set
GCHAT_CREDENTIALS={{gchat_credentials}}
Webhook server

The Chat SDK bridge automatically starts a shared webhook server on port 3000 (WEBHOOK_PORT to change it), handling /webhook/gchat. This port must be publicly reachable for Google Chat to deliver events — it's the HTTP endpoint URL you set in the Connection settings above. Running locally, expose it with ngrok (ngrok http 3000), a Cloudflare Tunnel, or a reverse proxy on a VPS.

Show full SKILL.md (325 more words)Show less

Next Steps

If you're in the middle of /setup, return to the setup flow now. Otherwise run /manage-channels to wire this channel to an agent group.

Channel Info

  • type: gchat
  • terminology: Google Chat has "spaces." A space can be a group conversation or a direct message with the bot.
  • how-to-find-id: Open the space in Google Chat, look at the URL — the space ID is the segment after /space/ (e.g. spaces/AAAA...). Or use the Google Chat API to list spaces.
  • supports-threads: yes
  • typical-use: Interactive chat — team spaces or direct messages
  • default-isolation: Same agent group for spaces where you're the primary user. Separate agent group for spaces with different teams or sensitive contexts.

Troubleshooting

The adapter starts, then errors about credentials. GCHAT_CREDENTIALS must be the entire service account JSON collapsed to one line — inspect .env and confirm it still contains "type":"service_account", "private_key", and "client_email". A truncated paste (shells often mangle the multi-line private key) is the usual cause; download a fresh JSON key under IAM & Admin → Service Accounts → Keys and re-paste it as a single line.

Messages sent in the space never reach the agent. Google Chat delivers only to the HTTP endpoint URL set under Google Chat API → Configuration, and that URL must be publicly reachable at /webhook/gchat (shared webhook server, port 3000). Tunnel hostnames (ngrok free tier) change on restart — make sure the Configuration URL matches the tunnel that's actually up.

The app doesn't appear when adding it to a space. Check the Chat API Configuration page: the app status must be live and its visibility must include your domain or user, and you must be adding it from the same Google Workspace the Cloud project belongs to.

Everything configured but still silent. Run pnpm exec vitest run src/channels/gchat-registration.test.ts — red means the barrel import or the @chat-adapter/gchat install drifted, so re-run the Apply steps. If green, restart the service so it picks up the adapter and .env, then watch logs/nanoclaw.log for the inbound webhook hit.

© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .claude/skills/add-gchat of nanocoai/nanoclaw.

  • SKILL.md
  • REMOVE.md
  • apply-fixtures.json

Open the folder on GitHubat commit 66f0823

Compare with similar skills

Google Chat Channel for NanoClaw next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Google Chat Channel for NanoClaw compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Google Chat Channel for NanoClaw this skillnanocoai/nanoclaw31k—~1.5kAutomated safety check: NotesMIT
Slack Browser Automationvercel-labs/agent-browser44k1 repos~2.1kAutomated safety check: PassApache-2.0
Feishu Docopenclaw/openclaw392k—~516Automated safety check: PassMIT
Gmail Inbox Watchergoogleworkspace/cli31k1 repos~476Automated safety check: PassApache-2.0
She Love Me863401402/she-love-me9251 repos~1.3kAutomated safety check: PassMIT
Claude To Imop7418/Claude-to-IM-skill2.9k—~3.4kAutomated safety check: NotesMIT

Similar skills

  • Slack Browser Automation

    vercel-labs/agent-browser

    Official

    Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.

    44k GitHub starsUsed in 1 repo~2.1k tokens
    Productivity & AutomationAuto-check passed
  • Feishu Doc

    openclaw/openclaw

    Feishu document read/write workflows. An agent skill from openclaw/openclaw.

    392k GitHub stars~516 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Gmail Inbox Watcher

    googleworkspace/cli

    Streams new Gmail messages as NDJSON from the gws command line tool using Google Pub/Sub, with label filters, batch settings and optional per-message files.

    31k GitHub starsUsed in 1 repo~476 tokens
    Productivity & AutomationAuto-check passed
  • She Love Me

    863401402/she-love-me

    Acquire, import, and analyze WeChat or QQ chat histories, including installing supported exporters, guiding required login or contact selection, converting exports, assessing relationship dynamics…

    925 GitHub starsUsed in 1 repo~1.3k tokens
    Productivity & AutomationAuto-check passed
  • Claude To Im

    op7418/Claude-to-IM-skill

    Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.

    2.9k GitHub stars~3.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check: notes
  • Last30days Cn

    Jesseovo/last30days-skill-cn

    Research what Chinese internet users actually said in the last 30 days across Weibo, Xiaohongshu (RED), Bilibili, Zhihu, Douyin, WeChat public accounts, Baidu and Toutiao: engagement-weighted…

    1.9k GitHub stars~2.4k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check: notes

More from nanocoai/nanoclaw

All 59 skills in this repo
  • Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.

    31k GitHub stars~4.6k tokensUpdated 3 days ago
    Auto-check: notes
  • Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.

    31k GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check: notes
  • Agent Browser

    nanocoai/nanoclaw

    Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.

    31k GitHub starsUsed in 2 repos~1.6k tokens
    Auto-check passed
  • Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.

    31k GitHub stars~6k tokensUpdated 3 days ago
    Auto-check: notes
  • Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.

    31k GitHub stars~1.5k tokensUpdated 3 days ago
    Auto-check passed
  • Add Dial Tool

    nanocoai/nanoclaw

    Installs the `dial` CLI and a credential in NanoClaw agent containers so chosen agents can send SMS, place AI voice calls and receive verification codes.

    31k GitHub stars~4.4k tokensUpdated 3 days ago
    Auto-check passed

Works with

Questions about Google Chat Channel for NanoClaw

What does Google Chat Channel for NanoClaw do?

Connects NanoClaw to Google Chat through the Chat SDK bridge, with Google Cloud Console setup steps for the app credentials. Google Chat joins NanoClaw through the Chat SDK bridge, using an adapter copied from the `channels` branch. The mechanical part is four repeatable steps: copy the adapter and test into `src/channels/`, append the import to the channel barrel, install `@chat-adapter/gchat` at a pinned version, then build and run the registration test, which asserts that `gchat` appears in the registry.

When should I use Google Chat Channel for NanoClaw?

Google Chat Channel for NanoClaw fits situations like: letting a NanoClaw agent respond in a Google Chat space; setting up a Google Chat app in Google Cloud for an agent; re-running the adapter install after a NanoClaw update.

How do I install Google Chat Channel for NanoClaw in Claude Code?

Run `npx skills add nanocoai/nanoclaw --skill add-gchat -a claude-code`. Or copy the skill folder (.claude/skills/add-gchat in nanocoai/nanoclaw) into .claude/skills/add-gchat in your project. Claude Code loads it when a task matches its description.

How do I install Google Chat Channel for NanoClaw in Codex?

Run `npx skills add nanocoai/nanoclaw --skill add-gchat -a codex`. Or copy the skill folder (.claude/skills/add-gchat in nanocoai/nanoclaw) into .agents/skills/add-gchat in your project. Codex loads it when a task matches its description.

Can I use Google Chat Channel for NanoClaw in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --skill add-gchat -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-gchat, .gemini/skills/add-gchat, .github/skills/add-gchat and .opencode/skills/add-gchat in your project.

What does Google Chat Channel for NanoClaw need to run?

Going by SKILL.md and its folder, Google Chat Channel for NanoClaw needs the command-line tools its instructions call (ngrok and pnpm) and credentials named GCHAT_CREDENTIALS. Our summary lists: A NanoClaw installation with pnpm; A Google Cloud project with the Google Chat API enabled.

Does Google Chat Channel for NanoClaw access the network?

SKILL.md names 1 domain. As links in the text: console.cloud.google.com. This is read from the text; nothing was executed.

Is Google Chat Channel for NanoClaw safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Google Chat Channel for NanoClaw use?

Google Chat Channel for NanoClaw is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Google Chat Channel for NanoClaw use?

About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Google Chat Channel for NanoClaw?

Skills that share tags, products or a category with Google Chat Channel for NanoClaw: Slack Browser Automation (vercel-labs/agent-browser, 44k stars), Feishu Doc (openclaw/openclaw, 392k stars), Gmail Inbox Watcher (googleworkspace/cli, 31k stars) and She Love Me (863401402/she-love-me, 925 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Google Chat Channel for NanoClaw?

nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,902 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 6, 2026.

Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.