app
adom-gchat — Google Chat CLI
Public Made by Adomby adom
Post to Google Chat from any Adom container. Webhook-based, org-customizable.
← Commit history
Clarify org-sharing: who-does-what table + secure vs turnkey modes
2 files changed
+59−46
README.md+35−16@@ -60,28 +60,47 @@ text (with Google Chat markdown) to Google's incoming-webhook API. No server, no OAuth, no open ports — the webhook URL is the only credential. Every message is attributed: `*OrgName (on behalf of username)* message`. -## Bring it to your whole org+## Sharing across your org — who does what -adom-gchat is built for any org — NTX Embedded, Teaazers, Cosmiic, you. One-person configures the spaces, then publishes the config so **every teammate-auto-imports it** with no repeat setup:+adom-gchat is per-org (NTX Embedded, Teaazers, Cosmiic, you). **One person sets+it up; everyone else does far less.** No employee starts from scratch.++**The first person** at your org (someone with access to your Google Chat spaces):++```bash+adom-gchat setup # 1. create webhooks in your spaces, then+ # name the spaces + set org/attribution+adom-gchat publish --org acme # 2. publish the org config to ONE private+ # wiki page: adom-gchat-acme+```++**Every other employee** just runs: ```bash-adom-gchat setup # configure spaces (first person)-adom-gchat publish --org acme # publish config to a PRIVATE org page-# teammates:-adom-gchat install # auto-imports the org's spaces+adom-gchat install # auto-pulls your org's spaces from that page ``` -`publish` writes your **spaces, descriptions, and attribution** to a private-wiki page `adom-gchat-<org>` (visible only to your org). Teammates whose-container identity is in that org pull it automatically on `install`.+`install` finds the page by a **direct lookup** of `adom-gchat-<your-org>` using+your container's org identity — there's **no AI discovery and no searching**.+The page is **private to your org**, so only your people can read it.++### The one catch: webhook URLs are secrets++A Google Chat webhook URL is a secret (anyone with it can post). The wiki page+is a git repo, so URLs aren't auto-shared by default. Pick your model:++| Mode | First person runs | Every teammate then does |+|---|---|---|+| **Secure (default)** | `publish --org acme` | `install` (gets the spaces) **+ `setup` once** to paste the shared webhook URL |+| **Turnkey** | `publish --org acme --include-webhook-urls` | `install` — **done, zero config** (URLs come down too) |++Turnkey is the least work for teammates, but it stores the shared URLs in the+(private) page's git repo — only do it for a page you trust to stay private. -**Webhook URLs are secrets and are NOT published by default** — the wiki page is-a git repo. After `install`, each teammate runs `adom-gchat setup` once to paste-the shared webhook URL. (Prefer convenience? `publish --org <org>-a page you trust to stay private.)+> **Does the org need its own wiki page?** Yes — exactly one, created by+> `publish --org`. **Does the AI find it?** No — `install` fetches it directly by+> org identity. The AI only reacts to "post to gchat" (via the installed skill)+> and posts using whatever's already in your local config. **AI auto-discovery:** the installed `adom-gchat` skill triggers on "post to gchat" / "notify the team" for every org identically — the org's specific spaces
skills/adom-gchat/SKILL.md+24−30@@ -53,36 +53,30 @@ adom-gchat setup Your webhook URLs stay private to your org in `~/.config/gchat-webhooks.json`. -## Bring it to your whole org (zero re-setup for teammates)--Once one person has configured the spaces, publish the org's config so every-teammate auto-imports it — they never repeat the setup:--```bash-adom-gchat publish --org <your-org> # e.g. acme-robotics-```--This writes the org's **spaces, descriptions, and attribution** to a *private*-wiki page (`adom-gchat-<org>`, visible only to your org). Then any teammate-whose container identity is in that org just runs:--```bash-adom-gchat install # auto-imports the org's spaces-```--**Secret webhook URLs are NOT published by default** — the wiki page is a git-repo, and webhook URLs are secrets. So after `install`, each teammate runs-`adom-gchat setup` once to paste the shared webhook URL for each space.--> Prefer convenience over the secret-in-git tradeoff? `adom-gchat publish --org-> <org> --include-webhook-urls` stores the shared URLs on the (private) page too,-> and teammates get a fully-configured setup from `install` alone. Only do this-> for a page you're confident stays private.--**How the AI finds it:** the installed `adom-gchat` skill triggers on "post to-gchat" / "notify the team" etc. for every org identically; the org's specific-spaces come from the auto-imported local config. Nothing org-specific is-hard-coded into the tool.+## Sharing across an org — who does what++adom-gchat is per-org. **One person sets it up; everyone else does far less.**++- **First person** (has access to the Google Chat spaces): creates the webhooks,+ runs `adom-gchat setup`, then `adom-gchat publish --org <org>` to publish the+ org's spaces + attribution to ONE private page `adom-gchat-<org>`.+- **Every other employee**: runs `adom-gchat install`, which auto-pulls the org's+ spaces. `install` finds the page by a **direct lookup** of+ `adom-gchat-<their-org>` via their container's org identity — the AI does NOT+ search for or discover the page.++**Webhook URLs are secrets**, and the wiki page is a git repo, so by default they+are NOT shared:++- **Secure (default):** teammates `install` (get the spaces) then run+ `adom-gchat setup` once to paste the shared webhook URL.+- **Turnkey:** `adom-gchat publish --org <org> --include-webhook-urls` shares the+ URLs too → teammates get everything from `install` alone (zero config), at the+ cost of storing the secret URLs in the private page's git repo.++When a user says "post to gchat", the installed `adom-gchat` skill triggers (same+for every org) and you post using whatever is already in their local config.+Nothing org-specific is baked into the tool. ## Attribution