Dataproc Skills
ClineOfficialPublished by Cline
- Skill
- Tool integration
- Cloud and DevOps
- Apache-2.0
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The dataproc-skills package provides a set of Node.js scripts designed to facilitate the management and monitoring of Google Cloud Dataproc resources. It allows users to programmatically retrieve details about specific clusters and jobs, as well as list and filter them based on various criteria such as status, labels, or names. The tools are designed to work with environment variables for configuration, streamlining the integration of Dataproc operations into automated workflows.
What it does
- Retrieves detailed information for a specific Dataproc cluster.
- Fetches metadata and status for a specific Dataproc job.
- Lists Dataproc clusters with support for filtering by state, name, or labels.
- Lists Dataproc jobs with support for filtering and state matching.
- Supports pagination for listing operations to handle large resource sets.
When to use it
- When you need to monitor the health or status of your Dataproc clusters.
- When you need to audit or track the progress of specific data processing jobs.
- When building automated pipelines that require querying cloud infrastructure state.
- When you need to filter large lists of clusters or jobs based on specific labels or states.
Advantages
- Simplifies interaction with Dataproc via standardized Node.js scripts.
- Supports complex filtering to quickly isolate relevant resources.
- Reduces manual overhead by automating resource lookup and status checks.
- Easily integrates into existing Node.js-based automation environments.
Usage examples
- “Get details for the cluster named my-data-cluster.”
- The agent executes the get_cluster script with the clusterName parameter, returning the configuration and status of the specified cluster.
- “List all running Dataproc jobs.”
- The agent executes the list_jobs script with a filter for status.state = RUNNING, providing a list of currently active jobs.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/cline/dataproc-skills/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip dataproc-skills.zip -d .agents/skills
Documentation by Cline
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 |
Files
- ATTRIBUTION.mdAdded by AutoGineer836 B
- LICENSELicence file added by AutoGineer10.5 KiB
- SKILL.md9.4 KiB
- scripts/get_cluster.jsScript2.8 KiB
- scripts/get_job.jsScript2.8 KiB
- scripts/list_clusters.jsScript2.8 KiB
- scripts/list_jobs.jsScript2.8 KiB
scripts/get_job.js
#!/usr/bin/env node
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
const { spawn, execSync } = require('child_process');
const path = require('path');
const fs = require('fs');
const os = require('os');
const toolName = "get_job";
const configArgs = ["--prebuilt", "dataproc"];
function mergeEnvVars(env) {
if (process.env.GEMINI_CLI === '1') {
const envPath = path.resolve(__dirname, '../../../.env');
if (fs.existsSync(envPath)) {
const envContent = fs.readFileSync(envPath, 'utf-8');
envContent.split('\n').forEach(line => {
const trimmed = line.trim();
if (trimmed && !trimmed.startsWith('#')) {
const splitIdx = trimmed.indexOf('=');
if (splitIdx !== -1) {
const key = trimmed.slice(0, splitIdx).trim();
let value = trimmed.slice(splitIdx + 1).trim();
value = value.replace(/(^['"]|['"]$)/g, '');
if (env[key] === undefined) {
env[key] = value;
}
}
}
});
}
} else if (process.env.CLAUDECODE === '1') {
const prefix = 'CLAUDE_PLUGIN_OPTION_';
for (const key in process.env) {
if (key.startsWith(prefix)) {
env[key.substring(prefix.length)] = process.env[key];
}
}
}
}
function prepareEnvironment() {
let env = { ...process.env };
let userAgent = "skills";
if (process.env.GEMINI_CLI === '1') {
userAgent = "skills-geminicli";
} else if (process.env.CLAUDECODE === '1') {
userAgent = "skills-claudecode";
} else if (process.env.CODEX_CI === '1') {
userAgent = "skills-codex";
}
mergeEnvVars(env);
return { env, userAgent };
}
function main() {
const { env, userAgent } = prepareEnvironment();
const args = process.argv.slice(2);
const command = os.platform() === 'win32' ? 'npx.cmd' : 'npx';
const processedArgs = os.platform() === 'win32' ? args.map(arg => arg.includes('"') ? '"' + arg.replace(/"/g, '""') + '"' : arg) : args;
const npxArgs = ["--yes", "@toolbox-sdk/[email protected]", "--log-level", "error", ...configArgs, "invoke", toolName, "--user-agent-metadata", userAgent, ...processedArgs];
const child = spawn(command, npxArgs, { shell: os.platform() === 'win32', stdio: 'inherit', env });
child.on('close', (code) => {
process.exit(code);
});
child.on('error', (err) => {
console.error("Error executing toolbox:", err);
process.exit(1);
});
}
main();
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
Security
What our scanner noticed· Low risk
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Cline
- Publisher
- Cline (Official)
- Source
- cline/skills · skills/dataproc-skills · commit 2637846
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Cline or Cline.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download dataproc-skills.zip