Read and edit Google Docs, Google Sheets, and Google Slides, and read/write plain text files, stored in the user's Google Drive. Nothing is stored on Imperal — content is fetched live and written s...
What this app can do
21 tools registered
Index FilesFree
Index the user's picked Drive files (extract text + build the search index) so they can be read and searched. Runs in the background and indexes files in parallel — you'll get a message when done. Call after picking new files, or if a file reports it's still being prepared.
Connect Google DocsFree
Start Google Drive OAuth — returns an authorisation URL to open in the browser. Connecting again adds another Google account (each keeps its own pool of picked files).
Open File PickerFree
Get a link to the Google Picker where the user selects which Drive files/folders Google Drive may access (for a specific connected account, default the active one). Picked items register automatically; call list_files afterwards.
Register Picked FilesFree
Manual fallback: register files from the JSON the Picker page showed, ONLY if it displayed a copy-paste box instead of confirming automatically (rare). Skips files already registered.
List FilesFree
List the Drive files AND folders the user connected — name, type, size and indexing status (pending/indexing/ready/failed/cold). Folders can be opened with open_folder. Automatically picks up items just selected in the Picker. Does not return file content.
Open FolderFree
List the contents of a connected Google Drive folder (files + subfolders) by its folder_id from list_files. Read a file inside it with read_file.
Disconnect FilesFree
Remove ONE OR MORE files from the connected list and delete their cached indexes (Postgres+Nextcloud), in parallel. Pass one file_id or several. The files in Google Drive itself are untouched.
List AccountsFree
List the Google accounts connected to Google Drive — each account's email, which one is active, and how many files are in its own pool. Use when the user asks which Google accounts are connected or which one is in use.
Switch AccountFree
Change the active Google account. Subsequent file listing, picking, reading and editing use this account's own pool of picked files until switched again.
Disconnect AccountFree
Disconnect a Google account from Google Drive and forget its pool of picked files. Nothing is deleted in Google Drive itself; the OAuth grant can be fully revoked by the user at myaccount.google.com/permissions.
Read FilesFree
Read the text of ONE OR MANY Drive files at once — pass a single file_id or several and they are read in PARALLEL. Works for any type (Doc/Sheet/Slides/PDF/PPTX/DOCX/XLSX/text). One file → full window; several → a preview of each. A file still indexing comes back marked 'preparing' (indexing is kicked automatically — ask again shortly). Use offset/limit to page a long single file.
File OverviewFree
Quick, cheap overview of ONE OR MANY files at once (type, size, indexing status, short preview) — pass one or several file_ids. Use to decide which files to actually read.
Search FilesFree
Search the user's Drive files. Omit file_ids to search ALL of them at once by MEANING (semantic — one pass over everything, token-cheap) — this is the way to 'study all my files'. Give file_ids to grep exact text across those specific files (in parallel). Prefer this over reading whole files when you just need to find something.
Edit DocumentFree
Edit a Google Doc OR Google Slides presentation (auto-detected from the file's type): op=replace (exact find-and-replace — fails if find_text has no match; ALSO fails if find_text matches more than once in the live document, since a wider match than intended silently corrupts unrelated text — pass replace_all=true only when every occurrence really should change), op=append (Docs only — add text to the end), or op=overwrite (Docs only — replace the whole document). Slides supports replace only (no single body to append to/overwrite). Changes the live document immediately.
Edit SpreadsheetFree
Write a 2D array of values into a Google Sheet range (A1 notation, e.g. 'Sheet1!A1:D10'). Overwrites only that range on the live sheet.
Get Spreadsheet InfoFree
List a Google Sheet's tab names and dimensions (rows/columns). Call this FIRST when you need to read a specific range or figure out where to write/append — there's no way to guess the sheet name or size otherwise.
Read Spreadsheet RangeFree
Read a range of cells from a Google Sheet (A1 notation, e.g. 'Sheet1!A1:D20', or a bare sheet name for the whole sheet). Returns the raw 2D values — structured access for understanding the layout before editing/appending.
Append Spreadsheet RowsFree
Append new rows AFTER the existing data in a Google Sheet — it auto-finds the table, so you DON'T need to compute the target range. Use this to ADD records/rows (e.g. new companies). Defaults to the first sheet; pass a sheet name to target another tab.
Spreadsheet ComputeFree
Compute an EXACT sum/count/average/min/max over a Google Sheet range (A1 notation), calculated in code — not estimated from a text dump. Use for totals instead of reading raw cells.
Write Text FileFree
Overwrite a genuinely text-based Drive file (text/JSON/XML/YAML) with new content. Binary formats (PDF/DOCX/XLSX/PPTX) are read-only and will be refused.
File Bulk ActionFree
Panel UI bulk dispatcher for the multi-selected files in the file list — called by the panel's bulk toolbar, not LLM chat. From chat use disconnect_files() or index_files() instead.