app
Adom Google
Public Made by Adomby adom
Drive your whole Google Workspace from the terminal, run by your AI. Read Gmail, write Google Docs, build Google Sheets and Google Slides, search Google Drive, manage Google Calendar and Google Tasks, and post to Google Chat, plus any Google API and a zero-setup personal Gmail.
← Commit history
bin/adom-google+7−1@@ -951,6 +951,12 @@ def cmd_auth(a): # it locally with the org's own secret. (None/True → broker mode: gateway exchanges.) want_exchange = pr.get("broker") is not False auth_link = AUTH_URL + "?" + urllib.parse.urlencode(params)+ if getattr(a, "url_file", None):+ # Clean machine-readable copy of the consent URL (one bare line). Tools that open the+ # browser for the user should read THIS instead of scraping stdout — quote/JSON wrappers+ # in the human output have corrupted scraped URLs before (trailing "}' broke the state).+ with open(a.url_file, "w") as f:+ f.write(auth_link + "\n") print(f"OAuth Gateway flow — {mode.upper()} access" + (" (full Workspace: Gmail/Contacts/Drive/Sheets/Docs/Slides/Calendar/Tasks/Chat + delete)" if mode == "full" else " (safe: only files this app makes; no 'delete all')") + ".\n")@@ -1299,7 +1305,7 @@ def main(): p = argparse.ArgumentParser(add_help=False) sub = p.add_subparsers(dest="cmd") - s = sub.add_parser("auth"); s.add_argument("--manual", action="store_true"); s.add_argument("--safe", action="store_true", help="advanced: request the NARROW create-only scope set (no delete-all); default is FULL"); s.add_argument("--full", action="store_true", help="Connector: request the FULL set incl. Gmail-read + all Drive (works for whitelisted testers now, everyone once CASA clears). No-op for the work client (already full)."); s.set_defaults(fn=cmd_auth)+ s = sub.add_parser("auth"); s.add_argument("--manual", action="store_true"); s.add_argument("--safe", action="store_true", help="advanced: request the NARROW create-only scope set (no delete-all); default is FULL"); s.add_argument("--full", action="store_true", help="Connector: request the FULL set incl. Gmail-read + all Drive (works for whitelisted testers now, everyone once CASA clears). No-op for the work client (already full)."); s.add_argument("--url-file", dest="url_file", help="also write the consent URL to this file (one clean line, for tooling)"); s.set_defaults(fn=cmd_auth) s = sub.add_parser("auth-code"); s.add_argument("code"); s.set_defaults(fn=cmd_auth_code) s = sub.add_parser("init"); s.add_argument("client_id"); s.add_argument("client_secret"); s.set_defaults(fn=cmd_init) pv = sub.add_parser("provider"); pvs = pv.add_subparsers(dest="sub")
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-google",- "version": "0.8.2",+ "version": "0.8.3", "type": "app", "license": "MIT", "description": "Drive your whole Google Workspace from the terminal — Gmail, Contacts, Drive, Sheets, Docs, Slides, Calendar, Tasks, Google Chat, plus a generic `api` passthrough to hit ANY Google API. Connect a personal @gmail (or another org's Google account) with ZERO setup via Adom's hosted Connector (`adom-google connect-personal`), or bring your own token-broker gateway (`provider set`) — Adom staff use the private adom-google-adom provider. One-click OAuth, no client secret on your machine.",
page.json+1−1@@ -4,7 +4,7 @@ "slug": "adom-google", "title": "Adom Google", "brief": "Drive your whole Google Workspace from the terminal — Gmail, Drive, Sheets, Docs, Slides, Calendar, Tasks, Chat + any Google API.",- "version": "0.8.2",+ "version": "0.8.3", "visibility": "public", "install": { "binary_name": "adom-google"