/gslides/.
For Google OAuth setup, see Google Workspace Setup.
Config
Fields marked secret are redacted in snapshots.
VFS.md
The VFS.md an agent reads with Google Slides mounted at/<path>.
- Rendered
- Raw
owned (presentations you created)
and shared (presentations shared with you). The filename shape is:
Shared Drives
The listing covers every corpus the account can reach, so a presentation that lives in a Shared Drive appears here too. A Shared Drive presentation has no owner (the drive owns it), so it lands undershared, which is what that
directory means. This matches the gdrive mount, where Shared Drives are
top-level directories: without it the same account would see a presentation
under one Google mount and not the other, with no error explaining the
difference.
Drive answers an all-corpora search best-effort. When it reports that it
skipped a corpus, the short listing is still returned but is not cached as
the directory, so the next ls re-lists instead of serving the gap until
the cache expires.
Cache
The Google Slides VFS usesIndexCacheStore. Index entries
store presentation IDs and metadata. File bytes go through the workspace
file cache; a rendered read through FUSE, ws.vfs, a
< file redirect or a cross-mount cp, sed or diff is not cached.
Example
examples/python/vfs/gslides/gslides.py for the full working example.
Shell Commands
Standard commands available on the mounted Google Slides tree:Integration
What Google Slides answers through its own API, so fewer files are read. Integration explains each command.grep -rw and
rg -w read only the presentations Drive full-text search names; every one is
read when the search fails or finds nothing. A word the rendered JSON may hold
whatever the text says is never asked: one with a digit, a property name or
enum value of the Slides API (pageElements, SLIDE), or a word every
rendering carries (https, arial). walk_limit: -1 in the mount’s "@all" command limit reads every file instead, since Drive indexes a
write some time after it lands and searches the file’s text, so one whose JSON
holds the word only in another value (a font, a link or image address, a layout
name or an id), or only as part of a word styling splits into text runs
(snow bold in snowman), can be left out.
Acting on presentations (create, batchUpdate, raw API calls) goes
through the gws CLI when installed.