dataproc-skills: a skill for Dataproc clusters and jobs
The dataproc-skills skill gives your agent ready Node.js scripts for Dataproc clusters and jobs.
npx skills add cline/skills --skill dataproc-skills -a claude-codeWhat dataproc-skills does
## What it does
dataproc-skills adds a set of scripts for working with Dataproc. They run through Node.js and take parameters as JSON.
Four scripts ship inside:
- get_cluster — fetch a cluster by its short name;
- get_job — fetch a job by its ID;
- list_clusters — list clusters with a filter;
- list_jobs — list jobs with a filter.
For get_cluster and get_job a short name is enough: the project and region are inherited from the source. list_clusters supports a filter over status.state, clusterName and labels, plus paging with pageSize (default 20) and pageToken.
## Running the scripts
Call them like this:
node <skill_dir>/scripts/<script_name>.js '{"<param_name>": "<param_value>"}'
PowerShell needs different escaping:
node <skill_dir>/scripts/<script_name>.js '{\"<param_name>\": \"<param_value>\"}'
The scripts load environment variables from .env files on their own. Only ask the user to set them if a run fails because a variable is missing.
## Who it fits
If you run jobs in Dataproc and want the agent to check cluster and job states itself, this skill covers that. It does not replace gcloud; it hands the agent a clear interface to the same data.
What it helps with
- Check a Dataproc cluster state without leaving the terminal
- Find a job by ID and see where it stands
- Filter clusters by status or label
- Page through a long job list
Example prompts for the agent
- Show the status of cluster my-cluster
- Find job my-job and tell me if it finished
- List all active clusters with the label team=analytics
How to install dataproc-skills
1Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a claude-code2Manually: put the files in place
~/.claude/skills/dataproc-skills/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/dataproc-skills/
1Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a codex2Manually: put the files in place
.agents/skills/dataproc-skills/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a cursor2Manually: put the files in place
.cursor/skills/dataproc-skills/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install cline/skills dataproc-skills2Manually: put the files in place
.github/skills/dataproc-skills/SKILL.md1Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a gemini-cli2Platform CLI
gemini skills install https://github.com/cline/skills --path skills/dataproc-skillsManually: put the files in place
.devin/skills/dataproc-skills/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about dataproc-skills
How do I install dataproc-skills in Claude Code?
Run npx skills add cline/skills --skill dataproc-skills -a claude-code. The skill file lands at ~/.claude/skills/dataproc-skills/SKILL.md.
What does dataproc-skills do?
It gives the agent scripts for Dataproc clusters and jobs: fetch a cluster or a job, list either with a filter.
Do I need to set environment variables by hand?
No. The scripts load variables from .env files themselves. Ask the user to set them only if a run fails because a variable is missing.
Source text
SKILL.md · Apache-2.0
---
name: dataproc-skills
description: Skills to interact with your Dataproc clusters and jobs.
---
## Usage
All scripts can be executed using Node.js. Replace `<param_name>` and `<param_value>` with actual values.
**Bash:**
`node <skill_dir>/scripts/<script_name>.js '{"<param_name>": "<param_value>"}'`
**PowerShell:**
`node <skill_dir>/scripts/<script_name>.js '{\"<param_name>\": \"<param_value>\"}'`
Note: The scripts automatically load the environment variables from various .env files. Do not ask the user to set vars unless skill executions fails due to env var absence.
## Scripts
### get_cluster
Gets a Dataproc cluster
#### Parameters
| Name | Type | Description | Required | Default |
| :---------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------- | :------ |
| clusterName | string | The short name of the cluster, e.g. for "projects/my-project/regions/us-central1/clusters/my-cluster", pass "my-cluster" (the project and region are inherited from the source) | No | |
---
### get_job
Gets a Dataproc job
#### Parameters
| Name | Type | Description | Required | Default |
| :---- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| jobId | string | The job ID, e.g. for "projects/my-project/regions/us-central1/jobs/my-job", pass "my-job" (the project and region are inherited from the source) | No | |
---
### list_clusters
Lists and filters Dataproc clusters
#### Parameters
| Name | Type | Description | Required | Default |
| :-------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| filter | string | A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax: field = value [AND [field = value]] ... where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be \* to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, UPDATING, STOPPING, or STOPPED. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING, ERROR, STOPPING, and STOPPED states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator. | No | |
| pageSize | integer | The maximum number of clusters to return in a single page (default 20) | No | `20` |
| pageToken | string | A page token, received from a previous `ListClusters` call | No | |
---
### list_jobs
Lists and filters Dataproc jobs
#### Parameters
| Name | Type | Description | Required | Default |
| :-------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| filter | string | A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax: field = value [AND [field = value]] ... where field is clusterName, status.state, or labels.[KEY], and [KEY] is a label key. value can be \* to match all values. status.state can be one of the following: PENDING, RUNNING, CANCEL_PENDING, JOB_STATE_CANCELLED, DONE, ERROR, or ATTEMPT_FAILURE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator. Filtering by clusterName is recommended to improve query performance. | No | |
| jobStateMatcher | string | Specifies if the job state matcher should match ALL jobs, only ACTIVE jobs, or only NON_ACTIVE jobs. Defaults to ALL. Supported values: ALL, ACTIVE, NON_ACTIVE. | No | |
| pageSize | integer | The maximum number of jobs to return in a single page (default 20) | No | `20` |
| pageToken | string | A page token, received from a previous `ListJobs` call | No | |
---
© cline · Apache-2.0 · cline/skills