Skip to content
Agentmart
Submit a tool

tinyhat-google-workspace

Connect, select, change permissions for, disconnect, or use one of this Tinyhat Computer's Google Workspace accounts through Tinyhat's managed gws bridge.

Skill by tinyhat-ai

IndexedMIT★ 1
Write a review

Chalk Labs

Need help deploying tinyhat-google-workspace?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tinyhat-ai-tinyhat-google-workspace

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Connect, select, change permissions for, disconnect, or use one of this Tinyhat Computer's Google Workspace accounts through Tinyhat's managed gws bridge. Use for "Connect my Google Workspace", personal or work Google accounts, Google sign-in, Gmail, Calendar, Drive, sending email, or other Google Workspace requests.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/tinyhat-google-workspace

What's inside

Skill name
tinyhat-google-workspace
Description
Connect, select, change permissions for, disconnect, or use one of this Tinyhat Computer's Google Workspace accounts through Tinyhat's managed gws bridge. Use for "Connect my Google Workspace", personal or work Google accounts, Google sign-in, Gmail, Calendar, Drive, sending email, or other Google Workspace requests.
License
MIT
Instructions
247 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Tinyhat Google Workspace

Use `tinyhat_google_workspace` for account and permission lifecycle. Use
`tinyhat_google_workspace_app` for Google API operations.

## Choose the account

Call `{"action": "status"}` when the intended account is not already known.
Status returns safe account metadata, including an opaque `account_id` for each
connected Google account. Match the user's wording to the returned email; never
guess between multiple accounts. If the user did not identify one, show the
safe account list and ask which account to use.

Pass the selected `account_id` to permission changes, disconnect, and every gws
operation when multiple accounts are connected. Do not expose or ask for raw
tokens.

## Connect and change permissions

If the current `tinyhat_google_workspace` schema is not already visible, call
`tool_describe` before the first invocation. Never discover the schema by
probing with `{"action": "connect"}`: that creates a real identity-only OAuth
attempt. For a message that names a Gmail action, make one correctly parameterized
call with the matching preset or exact Custom scopes.

`{"action": "connect"}` adds another account with identity only: `openid`,
`email`, and `profile`. Phrases such as "add my personal account" or "connect my
work Google account" mean add, not replace. Do not add Workspace data access
unless the user's request needs it.

When the user asks vaguely to connect Gmail or grant "reasonable", "normal",
or unspecified Google access, call `{"action": "choose_permissions"}`. The
tool sends a concise Telegram Mini App chooser. Do not guess a broad preset,
and do not ask the user to know OAuth scope names. If the user clearly states
the intended work, skip the chooser and request the narrowest matching preset:

- "send email", "email people", or "send messages" → `mail_sender`
- "draft", "prepare", "write", or "edit email drafts" → `mail_writer`
- "read", "search", "summarize", or "review email" → `mail_reader`
- "organize", "label", "archive", "mark read", or "manage my inbox" →
  `inbox_manager`

Normal wording is enough. Do not require phrases such as "send-only scope" or
an exact permission URL. A request to draft email must use `mail_writer`
because Google does not offer a draft-only scope: `gmail.compose` also permits
sending. A request only to send must use the narrower `mail_sender` preset and
must not use `mail_writer` or `inbox_manager`.

Use a preset only when its capabilities exactly cover what the user asked for.
Never translate an exact or Custom request to the "closest" preset, and never
silently broaden access because a broader preset is already implemented. If no
preset is an exact match, use an exact manifest-listed `scopes` subset or union
with a precise `reason`. If the requested access is ambiguous or cannot be
represented exactly by implemented scopes, ask the user to clarify or return
the tool's `review_required` result; do not retry with broader access.

Use the `presets` array for common access. Presets compose, so request the
smallest combination that supports the user's task:

| Preset | Id | Access |
| --- | --- | --- |
| Mail Reader | `mail_reader` | Read Gmail messages, threads, and settings without changing them. |
| Mail Sender | `mail_sender` | Send confirmed email without reading the inbox or managing drafts. |
| Workspace Reader | `workspace_reader` | Read Gmail messages, threads, and settings, Calendar events, and Drive files. |
| Mail Writer | `mail_writer` | Create and manage Gmail drafts and send email through `gmail.compose`. |
| Inbox Manager | `inbox_manager` | Read, compose, send, draft, label, archive, and change read state through `gmail.modify`; it cannot bypass Trash for immediate permanent deletion. |
| Calendar Coordinator | `calendar_coordinator` | Read, create, update, and delete Calendar events through `calendar.events`. |
| File Collaborator | `file_collaborator` | Work with Drive files Tinyhat creates or files you explicitly share with the app through `drive.file`; it does not grant access to other Drive files. |

Examples:

```json
{"action": "connect", "presets": ["mail_sender"]}
```

```json
{"action": "connect", "presets": ["workspace_reader"]}
```

```json
{"action": "set_permissions", "account_id": "...", "presets": ["mail_writer", "calendar_coordinator"]}
```

For Custom access, supply an exact subset or union of manifest-listed canonical
`scopes` and a short `reason`. Custom scopes may extend a `presets` selection.
An explicit Custom request stays Custom even when its scope set happens to
equal a preset. Do not replace it with a nearby preset or infer extra
capabilities from the user's reason.
Tinyhat always includes the identity baseline and normalizes redundant scopes
before it prepares consent:

- `gmail.modify` supersedes Gmail read, compose, send, and label-only scopes.
- `gmail.compose` supersedes `gmail.send`.
- `calendar.events` supersedes `calendar.events.readonly`.

The public manifest is the source of truth for which scopes are implemented and
which OAuth clients may request them. Its request state is separate from its
Google verification state. An implemented scope may start authorization while
verification is `preparing_submission`; Google may show an unverified-app
warning and the user decides whether to continue. Unknown, unimplemented, or
legacy-only scopes return a structured `review_required` result before creating
OAuth state, starting a worker, or sending a Google button. Explain that result
and do not retry with a broader permission.

The historical `profile` field and its values remain compatibility inputs for
older callers and saved grants. Do not choose a legacy profile for a new
request when `presets` or `scopes` can express the intent. `profile` is
mutually exclusive with `presets` and `scopes`.

`connect` with an explicit `account_id` is additive: it combines the selected
account's current scopes with the requested presets and Custom scopes.
`set_permissions` is exact replacement: it installs only the selected presets
and Custom scopes, plus identity. Use exact replacement when narrowing access.

Google consent is the permission decision. The native Google button opens the
exact request. The user may grant it or return and ask for narrower access. Do
not add a separate Tinyhat permission-upgrade confirmation or pass `confirmed`
or `confirmation_id` to the connection tool. OAuth consent does not authorize
an email send, draft or label mutation, Calendar change, file write, or other

From tinyhat-ai/tinyhat, MIT.

More from tinyhat-ai/tinyhat

Signals

Stars
1
Forks
0
Open issues
10
Last commit (this folder)
Jul 31, 2026 (3 months ago)
Last release
Sep 24, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tinyhat-ai

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get tinyhat-google-workspace running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying tinyhat-google-workspace?

CallGet help
Cite this page

tinyhat-google-workspace skill. Agent Mart. https://agentmart.dev/skills/tinyhat-ai-tinyhat-google-workspace (last updated 2026-10-24)