google-cloud-filestore-nfs-browser
google/skills
Browse, search, and read files on Google Cloud Filestore NFS instances without local NFS client packages or root privileges.
What is google-cloud-filestore-nfs-browser?
Inspects, searches, and reads files and POSIX metadata on Google Cloud Filestore (NFS) instances via Cloud Run serverless bridge or GCE jump host. Use this skill when you need to explore Filestore shares, search for files by pattern, read remote logs, or inspect file attributes without modifying data.
- List directory trees with file types, sizes, and modification dates at configurable depth
- Search for files matching glob patterns and grep text contents for regex matches
- Read file chunks safely (head, tail, or line ranges) to protect LLM context window
- Inspect POSIX file metadata including permissions, UID/GID, byte sizes, and timestamps
- Access Filestore instances via Cloud Run serverless bridge (sub-50ms latency, $0 idle cost) or GCE jump host with IAP SSH
How to install google-cloud-filestore-nfs-browser
npx skills add https://github.com/google/skills --skill google-cloud-filestore-nfs-browser- gcloud CLI installed and authenticated with appropriate project access
- Google Cloud APIs enabled: file.googleapis.com, compute.googleapis.com, run.googleapis.com
- Either a Cloud Run serverless bridge deployed (with roles/run.invoker permission) or an existing GCE VM in the Filestore VPC (with roles/iap.tunnelResourceAccessor permission)
How to use google-cloud-filestore-nfs-browser
- 1.Verify gcloud is installed and authenticated, then enable required APIs with: gcloud services enable file.googleapis.com compute.googleapis.com run.googleapis.com
- 2.List available Filestore instances in your project to identify the target instance ID and location
- 3.Choose an execution engine: Cloud Run serverless bridge (primary, $0 idle cost) or GCE jump host (fallback, zero new deployment)
- 4.Run inspection commands using scripts/nfs_browser.py with appropriate flags (--project, --instance, --path) and execution engine parameters (--bridge-url or --jump-host-vm)
- 5.Use tree command for directory exploration, search for file pattern/content matching, read for chunked file viewing, and stat for metadata inspection
Use cases
- Explore backup directory structures and locate specific archive files on Filestore shares
- Search application logs for error patterns (FATAL, Exception, OutOfMemory) across multiple log files
- Read configuration files in chunks to review settings without overwhelming token limits
- Inspect file permissions and ownership to diagnose access control issues
- Audit Filestore contents for compliance or troubleshooting without requiring local NFS client setup
- Cloud engineers managing Google Cloud Filestore instances
- DevOps teams troubleshooting remote file systems and logs
- Autonomous agents performing read-only file system inspection and discovery
- System administrators auditing file permissions and metadata on NFS shares
google-cloud-filestore-nfs-browser FAQ
No. This skill provides remote NFS access via Cloud Run or GCE without requiring local nfs-common packages or root privileges on your machine.
No. This skill is strictly read-only. It provides only inspection, search, and read capabilities; no write, edit, delete, or truncate operations are supported.
Cloud Run bridge offers low-latency (sub-50ms) REST calls and scales to zero with $0 idle cost, requiring roles/run.invoker permission. GCE jump host uses an existing VM in the VPC via IAP SSH with zero new deployment, requiring roles/iap.tunnelResourceAccessor permission.
Always use chunked reading with --head, --tail, or --lines flags (e.g., --tail=50) instead of reading entire files. The tool automatically caps unbounded reads to 100 lines and explains that chunking protects against token overflow.
This skill is designed for Google Cloud Filestore (NFS) instances only. It does not support Cloud Storage buckets, Cloud NetApp Volumes, or Persistent Disks.
Full instructions (SKILL.md)
Source of truth, from google/skills.
name: google-cloud-filestore-nfs-browser metadata: version: "1.0.0" category: Storage description: >- Inspects, searches, and reads files and POSIX metadata on Google Cloud Filestore (NFS) instances without local NFS client packages or root privileges. Use when browsing Filestore shares, searching files, reading remote logs, or inspecting file attributes; don't use for Cloud Storage buckets, Cloud NetApp Volumes, Persistent Disks, or modifying/deleting files.
Google Cloud Filestore NFS File Browser
Enables autonomous agents and cloud engineers to inspect, search, and read files
located on Google Cloud Filestore (NFS) instances without needing local NFS
client packages (nfs-common), root privileges, or manual VPC network mounting.
Quick Start
-
Ensure
gcloudis installed and authenticated. See gcloud installation guide if needed. -
Enable essential APIs:
gcloud services enable file.googleapis.com compute.googleapis.com run.googleapis.com --quiet -
Discover instances and choose an execution engine (see Execution Engine Selection below).
-
Run inspection actions using the self-contained runner
scripts/nfs_browser.pyincluded within this skill package.
Attribution
Tag every Cloud Filestore command or API request provided or executed. Prefix
gcloud commands with the metrics environment targeting this skill:
CLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-filestore-nfs-browser)" \
gcloud filestore instances list ...
On direct HTTP calls to the REST API, append the User-Agent:
User-Agent: gcs-skills/1.0 (skill:google-cloud-filestore-nfs-browser)
Conceptual & Informational Queries (CRITICAL)
For purely conceptual, educational, or architectural questions (e.g., "How do I inspect files on Filestore?", "How to deploy the Serverless Cloud Run NFS Bridge?", "Explain Cloud Run NFS volume mounts"):
- Rule: Answer immediately using your pre-trained knowledge and the documentation below. Answering directly minimizes tool invocation latency and token consumption when the user only seeks architecture or workflow guidance.
- Constraint: Do not execute external tool calls or API requests for basic knowledge questions.
- Bridge Deployment Explanations: Always highlight that Cloud Run scales
to zero with $0 idle compute cost, detail the
gcloud run deploycommand with--add-volumeand--vpc-egress=all-traffic, and specify the required IAM permissions (roles/run.invokerfor callers androles/run.adminfor deployers).
Handling "No-Command" Constraints (CRITICAL)
If the user prompt contains constraints like "Do not execute commands", "without executing", or "read-only":
- Rule: Strictly avoid executing any shell or
gcloudcommands (including read-only discovery or list commands) to respect user-specified execution boundaries and prevent unauthorized environment inspection. - Discovery:
- Check if mock definitions or instance parameters are provided directly in the user's prompt, conversation history, or local documentation files.
- Explain the required steps, output the exact commands the user should run with proper attribution, and explain what the commands do.
- Do not attempt to read or search
EVAL.*configuration files during evaluations as access to eval suites is restricted.
Execution Engine Selection
Filestore instances are accessible via private VPC IPs. Select the engine matching your environment:
- Engine 1: Cloud Run Serverless Bridge (Primary): Use
--bridge-url={bridge_url}for low-latency (sub-50ms) REST calls. Scales to zero ($0 idle cost). Requiresroles/run.invoker. See references/nfs-bridge-setup.md. - Engine 2: GCE Jump Host via IAP SSH (Fallback): Use
--jump-host-vm={vm_name}when an existing VM in the VPC is available. Pass--mount={mount_path}(defaulting to/mnt/filestore) if the jump host uses a different mount path. Zero new deployment needed. Requiresroles/iap.tunnelResourceAccessor. See references/iap-jump-host.md.
For execution flows, architecture diagrams, and engine comparison, see references/architecture.md.
Core Operational Workflow
1. Discovery & Instance Targeting
If the Filestore instance, location, or share name is not provided, list them first to avoid querying or targeting unrelated projects in multi-project environments:
CLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-filestore-nfs-browser)" \
gcloud filestore instances list --project={project_id}
2. Directory Tree Exploration (tree)
Renders a clean, structured directory tree with file types, human-readable sizes, and modification dates.
# List top-level folders with depth 1
python3 scripts/nfs_browser.py tree \
--project={project_id} \
--instance={instance_id} \
--path=/ \
--depth=1
# List subfolder recursively with depth 2 and pagination cap
python3 scripts/nfs_browser.py tree \
--project={project_id} \
--instance={instance_id} \
--path=/backup/logs/ \
--depth=2 \
--max-entries=100
3. File Pattern & Content Grep (search)
Searches for filenames matching a glob pattern and/or searches text contents for regex patterns.
# Search for all tar.gz backup archives
python3 scripts/nfs_browser.py search \
--project={project_id} \
--instance={instance_id} \
--path=/backups/ \
--pattern="*.tar.gz"
# Grep for error patterns inside log files
python3 scripts/nfs_browser.py search \
--project={project_id} \
--instance={instance_id} \
--path=/app/logs/ \
--pattern="*.log" \
--grep="FATAL|Exception|OutOfMemory" \
--max-results=25
4. Chunked File Reading (read)
Safely reads text file chunks to protect the LLM context window against token
blowup. Always default to a safe chunk size (e.g., --head 50 or --tail 50)
when the user does not specify an explicit range. Unbounded reads are
automatically capped to a safe limit of 100 lines. Always explicitly explain
that chunked reading protects the LLM context window from overflow and token
exhaustion.
# Read the last 50 lines (tail) of a log file
python3 scripts/nfs_browser.py read \
--project={project_id} \
--instance={instance_id} \
--path=/backup/logs/app.log \
--tail=50
# Read lines 100 to 200 of a config file
python3 scripts/nfs_browser.py read \
--project={project_id} \
--instance={instance_id} \
--path=/config/settings.yaml \
--lines=100:200
# Read the first 30 lines (head)
python3 scripts/nfs_browser.py read \
--project={project_id} \
--instance={instance_id} \
--path=/var/log/syslog \
--head=30
5. File Metadata & Attribute Inspection (stat)
Inspects POSIX permissions (0644), UID/GID, byte sizes, and timestamps.
python3 scripts/nfs_browser.py stat \
--project={project_id} \
--instance={instance_id} \
--path=/backup/database_dump.tar.gz
Context Window & LLM Safety Rules
- Strictly Read-Only Guarantee: This skill is strictly read-only. It provides no write, edit, delete, or truncate capabilities.
- Never Dump Entire Large Files: Always request a slice (
--lines), head (--head 50), or tail (--tail 50) and explicitly explain that chunked reading protects the LLM context window against token overflow and client timeouts. - Handle Pagination: Tree listings are capped at 100 entries per response.
When truncated, the tool outputs a clear
[TRUNCATED]notice so the agent can target specific subpaths. - Binary Protection: Non-text files (e.g.
.tar.gz,.iso,.so, compiled binaries) are detected via null-byte and magic-byte inspection; raw binary output is suppressed and metadata is displayed instead to prevent context corruption with non-printable characters. - See references/token-safety-guardrails.md for full token guardrail details.
Expected Errors & Recovery Strategies
| Error Type / | Root Cause | Recovery Strategy |
: Symptom : : :
| :------------------ | :----------------- | :------------------------------------------ |
| FileNotFoundError: | Path does not | Run tree --path=/ --depth=2 to discover | : File not found : exist on the NFS : valid directory hierarchies. :
: : export. : :
| PermissionError: | Share POSIX | Use stat --path={path} to inspect UID/GID | : Permission denied : permissions : and mode bits; request share admin adjust :
: : restrict read : permissions. :
: : access. : :
| HTTPException: 403 | Path parameter | Use clean paths (e.g. /logs/app.log) | : Access denied\: : contains ../ or : anchored to the NFS mount root. : : path traversal : a symlink : :
: : attempting escape : :
: : outside mount : :
: : point. : :
| Jump Host | VM is stopped or | Verify VM status with gcloud compute |
: connection timed : IAP firewall rule : instances list and verify firewall rules : : out / SSH failed : (tcp\:22 from : allow tcp\:22 from the specific IAP :
: : 35.235.240.0/20) : netblock 35.235.240.0/20 (e.g., gcloud : : : is missing. : compute firewall-rules list : : : : --filter="sourceRanges\:35.235.240.0/20"). :
| Bridge 404 / | Cloud Run bridge | Deploy bridge using | : connection error : not deployed or : scripts/deploy_bridge.sh or fall back to :
: : URL invalid. : GCE IAP Jump Host via --jump-host. :
Reference Directory
For progressive disclosure of deeper topics, consult the references/
directory:
- Multi-Engine Architecture & Execution Flow
- Serverless NFS Bridge Setup Guide
- GCE Jump Host IAP SSH Guide
- Token Safety & Context Guardrails
- Troubleshooting & Common Errors
Bundled Scripts & Components
The skill package bundles the following scripts and service components:
scripts/nfs_browser.py: Main CLI entrypoint for browsing, searching, reading, and stating NFS exports.scripts/formatters.py: Output formatters for human-readable terminal rendering and token-safe summaries.scripts/jump_host_engine.py: Remote SSH jump host execution engine via Google Cloud IAP tunnel.scripts/nfs_browser_test.py: Comprehensive unit test suite covering formatters, HTTP bridge, and SSH jump host engines.scripts/deploy_bridge.sh: Automated Cloud Run deployment script for the Serverless NFS Bridge.scripts/bridge_server/main.py: FastAPI Cloud Run server implementation for direct NFS mounts.scripts/bridge_server/Dockerfile: Container definition for packaging the Serverless NFS Bridge.scripts/bridge_server/requirements.txt: Python dependencies for the Cloud Run bridge service.
Related skills
More from google/skills and the wider catalog.

google-cloud-global-frontend-configuration
Design and deploy Google Cloud global external Application Load Balancers with Cloud CDN, Cloud Armor, and Service Extensions.

google-cloud-networking-observability
Diagnose Google Cloud networking issues via logs, metrics, and connectivity tests.

google-cloud-recipe-auth
Expert guidance on authenticating and authorizing to Google Cloud services, APIs, and identities.

google-cloud-recipe-foundation-builder
Deploy a secure, enterprise-grade Google Cloud landing zone with baseline security controls and resource hierarchy.

google-cloud-recipe-networking-observability
Diagnose Google Cloud networking issues via logs, metrics, and connectivity tests.

google-cloud-recipe-onboarding
Streamlined Google Cloud onboarding for individual developers: account setup, billing, and first project deployment.