How to connect Google Sheets to Hermes Agent
Connect Google Sheets to Hermes Agent with no Google Cloud project, no OAuth client, and no credentials JSON. Hosted OAuth, 40 Sheets tools, and fixes for the Sheets API errors agents actually hit.


Read and write spreadsheet data. Once connected, Hermes Agent can read and act on Google Sheets from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Google Sheets access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Google Sheets setup: pair once in the browser and your always-on Hermes agent can act on Google Sheets for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to Google Sheets.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect Google Sheets
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Google Sheets?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect Google Sheets in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking Hermes:
Find the spreadsheet named Q3 budget in my Google Sheets, list its sheet names, then read the first 50 rows of the main sheet and summarize what is in it.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Google Sheets is connected in the dashboard, that agent calls the same 40 Google Sheets tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Google Sheets MCP for Hermes
Looking for a Google Sheets MCP server for Hermes Agent? ClawLink connects Google Sheets to Hermes Agent and exposes 40 Google Sheets tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Google Sheets integration runs on the same hosted Google provider and the same 40 tools; OpenClaw installs ClawLink through a ClawHub skill instead of the Hermes pairing commands.
Asked how to do this, the current answers hand Hermes users a Google Cloud shopping list: a project, the Sheets and Drive APIs enabled by hand, a Desktop-type OAuth client, a client-secret JSON downloaded to the machine running Hermes. ClawLink's route has none of those parts. Pair Hermes once, click Connect next to Google Sheets in the dashboard, approve the two permissions on Google's own consent screen, and the 40 tools below answer from your next message. No service account exists in this flow, so no sheet ever needs sharing with a robot email.
What the Hermes Agent Google Sheets integration can do
40 Google Sheets tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 40.
30 of 40 Google Sheets tools for Hermes
| Tool | What it does |
|---|---|
Add sheet googlesheets_add_sheet | Add a new sheet to a spreadsheet |
Aggregate column data googlesheets_aggregate_column_data | Aggregate column data by matching and computing |
Batch get googlesheets_batch_get | Retrieve data from multiple cell ranges |
Clear values googlesheets_clear_values | Clear cell content from a range |
Create chart googlesheets_create_chart | Create a chart in a Google Sheet |
Create google sheet1 googlesheets_create_google_sheet1 | Create a new Google Spreadsheet |
Create spreadsheet column googlesheets_create_spreadsheet_column | Create a new column in a Google Sheet |
Create spreadsheet row googlesheets_create_spreadsheet_row | Insert a new row into a Google Sheet |
Find replace googlesheets_find_replace | Find and replace text across cells |
Format cell googlesheets_format_cell | Apply text and background formatting to cells |
Get data validation rules googlesheets_get_data_validation_rules | Get data validation rules from a spreadsheet |
Get sheet names googlesheets_get_sheet_names | List all worksheet names in a spreadsheet |
Get spreadsheet info googlesheets_get_spreadsheet_info | Get metadata for a Google Spreadsheet |
Lookup spreadsheet row googlesheets_lookup_spreadsheet_row | Find a row by exact cell content match |
Search spreadsheets googlesheets_search_spreadsheets | Search for Google Spreadsheets by name or content |
Set data validation rule googlesheets_set_data_validation_rule | Set data validation rules or dropdowns on a range |
Spreadsheets sheets copy to googlesheets_spreadsheets_sheets_copy_to | Copy a sheet to another spreadsheet |
Spreadsheets values append googlesheets_spreadsheets_values_append | Append values to the end of a Google Sheet |
Spreadsheets values batch clear googlesheets_spreadsheets_values_batch_clear | Clear values from multiple ranges at once |
Update sheet properties googlesheets_update_sheet_properties | Update sheet tab properties like name or color |
Update spreadsheet properties googlesheets_update_spreadsheet_properties | Update spreadsheet-level properties like title or locale |
Update values batch googlesheets_update_values_batch | Update values in multiple ranges at once |
Upsert rows googlesheets_upsert_rows | Upsert rows by key column, appending or updating |
Values get googlesheets_values_get | Read values from a range in a Google Sheet |
Values update googlesheets_values_update | Update values in a range of a Google Sheet |
Get conditional format rules googlesheets_get_conditional_format_rules | List conditional formatting rules for each sheet (or a selected sheet) in a normalized |
Get spreadsheet by data filter googlesheets_get_spreadsheet_by_data_filter | Returns the spreadsheet at the given ID, filtered by the specified data filters |
Search developer metadata googlesheets_search_developer_metadata | Search for developer metadata in a spreadsheet |
Spreadsheets values batch get by data filter googlesheets_spreadsheets_values_batch_get_by_data_filter | Return one or more ranges of values from a spreadsheet that match the specified data filters |
Append dimension googlesheets_append_dimension | Append new rows or columns to a sheet, increasing its size |
Try it: find the Google Sheets tool you need
Browse the 30 Google Sheets tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Find the spreadsheet named Q3 budget in my Google Sheets, list its sheet names, then read the first 50 rows of the main sheet and summarize what is in it.
Append these rows to the end of the Expenses sheet in that spreadsheet, using USER_ENTERED so the dates and amounts arrive as typed values rather than text.
Every value in column A of my Tracker sheet is a project name. Read the sheet, group the rows by status, and give me a short digest of what moved this week.
If a Sheets call fails saying spreadsheet_id is required, search my spreadsheets by name first and retry the same call with the real id from the search results instead of asking me.
What the Google Sheets tools actually expect
The argument rules behind most of the Sheets failures we log, from the live schemas and our own error rows.
- Tools take the spreadsheet ID, never the name. It is the long string between
/d/and/editin the sheet's URL, and the missing id is the most common real Sheets failure in ClawLink logs. Paste the URL into chat or have the agent callgooglesheets_search_spreadsheetsfirst. - The id argument's casing changes between tools.
values_get,values_updateandbatch_gettakespreadsheet_id;spreadsheets_values_appendandupdate_sheet_propertiestakespreadsheetId. An agent reusing arguments across calls seesarguments.spreadsheetId is requiredwith no hint that only the casing moved. value_input_optionis required on writes:USER_ENTEREDparses like typing (dates, numbers, live formulas),RAWstores exact strings. 107 logged calls failed just by omitting it. Appends additionally takeinsertDataOption, eitherOVERWRITEorINSERT_ROWS.- Ranges are A1 notation with the exact sheet title in front, single-quoted when it contains spaces (
'Monthly budget'!A1:C10). Wrong titles fail with the literalInvalid sheet identifier or cell reference provided.;googlesheets_get_sheet_namesreturns the real ones. valuesis an array of arrays, one inner array per row. Flat arrays fail validation before the request reaches Google.- The read tool is
googlesheets_values_get, and invented names likegooglesheets_get_valuesfail with a not-found error that lists the closest real tools; the suggestion is almost always right. googlesheets_search_spreadsheetsis a Drive API call with Drive query syntax (name contains 'budget',fullText contains 'sales'), and it is the first tool to break if the Drive permission was unticked on the consent screen.- Google's documented Sheets read quota is 60 requests per minute per user. Per-cell loops hit 429 (
Too many requests. Try again shortly.);googlesheets_batch_getandgooglesheets_update_values_batchdo the same work in one call. Wait and retry on a 429; do not reconnect.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Sheets working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Google Sheets app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Google Sheets through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Google Sheets. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Google Sheets actions to the runtime in a format your agent can reliably use. | 40 tools for Google Sheets are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Google Sheets to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Google Sheets in the browser, and the 40 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use Google Sheets
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect Google Sheets from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Google Sheets tools
Google Sheets tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Google Sheets call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Google Sheets returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
"arguments.spreadsheet_id is required" (or "arguments.spreadsheetId is required") from Google Sheets
The agent used the sheet's name where a tool needed its id, and both spellings of the message are real because the casing differs per tool. Paste the sheet's URL into the chat, or have the agent run googlesheets_search_spreadsheets with a name query and retry with the id it returns. This is the most common real Sheets failure we log, well ahead of anything Google-side.
"arguments.value_input_option is required" when updating a Google Sheet
The update tool refuses to guess between its two modes. USER_ENTERED parses input like typing, so dates and formulas come alive; RAW stores literal strings. Say which one you want in the prompt; USER_ENTERED is right for most real data. This omission accounts for 107 logged failures on its own.
"Invalid sheet identifier or cell reference provided" from Google Sheets
The sheet title in the range does not exist in that spreadsheet, or the A1 reference is malformed. Titles are matched exactly and need single quotes when they contain spaces. Have Hermes call googlesheets_get_sheet_names and build the range from a returned title rather than assuming Sheet1.
"Tool 'googlesheets_get_values' not found" and other missing Google Sheets tools
If the error suggests alternatives, the agent invented a tool name and the suggestion (googlesheets_values_get for reads) is the fix. If Sheets tools are missing wholesale, the runtime's catalog is stale: reconnect from the dashboard and start a fresh chat. Ignore advice about deleting token.json or restarting a server process; a hosted connection has neither.
"Request had insufficient authentication scopes" (403) when searching Sheets while reads still work
The Google grant behind the connection is missing its Drive permission. ClawLink asks for spreadsheets and Drive, each with its own checkbox on Google's consent screen, and a connection approved without the Drive box behaves exactly like this: reads by id succeed, search by name fails. Reconnect from the dashboard and leave every checkbox ticked.
"Connected account is not in an ACTIVE state. Current status is REVOKED" from Google Sheets
Access was withdrawn on the Google side, by you under Third-party apps and services or by a workspace admin. Reconnect Google Sheets from the ClawLink dashboard and approve the consent screen again, then start a fresh chat so Hermes picks the connection up.
OAuth finished in the browser but the account is still missing
Try reconnecting Google Sheets and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a Hermes Agent Google Sheets integration?
Yes. ClawLink is the fastest way to connect Hermes to Google Sheets: link your Google Sheets account once in the browser and Hermes Agent can call the Google Sheets API through 40 ready-made tools — no custom code or token handling.
How do I connect Google Sheets to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Google Sheets in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.
How long does it take to connect Google Sheets to Hermes Agent?
About two minutes. Sign in, click Connect next to Google Sheets in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Google Sheets up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Sheets working from chat.
Do I need a Google Cloud project or my own OAuth app to connect Google Sheets to Hermes?
No. The Cloud project, the two APIs you enable by hand, the Desktop OAuth client, the client-secret JSON: all of that is the price of the self-hosted route, and it is what most guides walk you through because they assume no one else can own the OAuth app. ClawLink owns a verified one. Pairing Hermes and clicking Connect is the entire setup, and no credential file ever lands on the machine running Hermes.
Do I need to share my sheet with a service account email?
No. Sharing a sheet with a client_email is service-account advice, and there is no service account anywhere in this flow. The connection signs in as your Google account and sees what you see. When a call fails with a 403 despite a healthy connection, check the spreadsheet id the agent sent before touching any sharing settings; an invented or copied-from-an-example id is the usual culprit.
Which Google permissions does the Sheets connection request?
https://www.googleapis.com/auth/spreadsheets and https://www.googleapis.com/auth/drive, plus your email to label the connection, verified against a live connection rather than quoted from a catalog. Drive is in the list because searching spreadsheets by name or content is a Drive API operation. Each permission gets its own checkbox on Google's consent screen, and both need to stay ticked for every tool to work. Revoking is one click in your Google account's Third-party apps and services page or in the ClawLink dashboard.
Is it safe to connect Google Sheets to an AI agent?
Judge it by the mechanics rather than assurances. Google's consent screen lists exactly what is granted; the tool table on this page is the complete set of operations an agent can invoke; there is no API key or JSON file to leak because none exists. Revocation works instantly from your Google account or the dashboard, and ClawLink deletes tool execution logs after 90 days. The lever that matters most is yours: connect an account that only sees what the agent should, and lean on Sheets version history for anything write-heavy.
Hermes paired but still can't use Google Sheets
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.