From 6932e20eacc40d38c6715aa00e62dd16eb211be7 Mon Sep 17 00:00:00 2001 From: Bharath Elluru Date: Wed, 15 Apr 2026 17:06:49 -0700 Subject: [PATCH 1/5] Add codex-install.ps1 script for Windows installation --- codex-install.ps1 | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 codex-install.ps1 diff --git a/codex-install.ps1 b/codex-install.ps1 new file mode 100644 index 0000000..c4ec7dd --- /dev/null +++ b/codex-install.ps1 @@ -0,0 +1,75 @@ +# 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. + +$ErrorActionPreference = "Stop" + +$pluginName = "data-cloud-ai-dev-kit" +$repoUrl = "https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit" +$pluginsRoot = Join-Path $HOME ".agents\plugins" +$installDir = Join-Path $pluginsRoot $pluginName +$marketplaceFile = Join-Path $pluginsRoot "marketplace.json" + +Write-Host "--- $pluginName Installer for Codex ---" + +New-Item -ItemType Directory -Force -Path $pluginsRoot | Out-Null + +if (Test-Path $installDir) { + Write-Host "Updating existing plugin at $installDir..." + git -C $installDir pull +} else { + Write-Host "Cloning plugin to $installDir..." + git clone $repoUrl $installDir +} + +if (-not (Test-Path $marketplaceFile)) { + Write-Host "Creating new personal marketplace..." + '{"name":"personal","plugins":[]}' | Set-Content -LiteralPath $marketplaceFile -Encoding utf8 +} + +Write-Host "Registering plugin in $marketplaceFile..." +$pluginJson = @" +{ + "name": "$pluginName", + "interface": { + "displayName": "Google Data Cloud AI Dev Kit" + }, + "source": { + "source": "local", + "path": "./.agents/plugins/$pluginName" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Productivity" +} +"@ + +$marketplace = Get-Content -LiteralPath $marketplaceFile -Raw | ConvertFrom-Json +$newPlugin = $pluginJson | ConvertFrom-Json + +# Ensure plugins is an array and filter out existing entry for this plugin. +if ($null -eq $marketplace.plugins) { + $marketplace.plugins = @() +} else { + $marketplace.plugins = @($marketplace.plugins | Where-Object { $_.name -ne $pluginName }) +} + +# Add the new plugin entry. +$marketplace.plugins += $newPlugin + +# Save back to file with sufficient depth to preserve nested objects. +$marketplace | ConvertTo-Json -Depth 10 | Set-Content -LiteralPath $marketplaceFile -Encoding utf8 + +Write-Host "Done! Restart Codex to use the $pluginName plugin." From 8d1ee3262141ea9b95574f0106f634082ba10432 Mon Sep 17 00:00:00 2001 From: Bharath Elluru Date: Wed, 15 Apr 2026 18:58:03 -0700 Subject: [PATCH 2/5] Update codex-install.ps1 with latest changes from windows-codex-installer --- codex-install.ps1 | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/codex-install.ps1 b/codex-install.ps1 index c4ec7dd..0b972bb 100644 --- a/codex-install.ps1 +++ b/codex-install.ps1 @@ -20,16 +20,40 @@ $pluginsRoot = Join-Path $HOME ".agents\plugins" $installDir = Join-Path $pluginsRoot $pluginName $marketplaceFile = Join-Path $pluginsRoot "marketplace.json" +function Invoke-GitCommand { + param( + [Parameter(Mandatory = $true)] + [string[]] $Arguments + ) + + & git @Arguments + if ($LASTEXITCODE -ne 0) { + throw "git command failed: git $($Arguments -join ' ')" + } +} + Write-Host "--- $pluginName Installer for Codex ---" New-Item -ItemType Directory -Force -Path $pluginsRoot | Out-Null if (Test-Path $installDir) { - Write-Host "Updating existing plugin at $installDir..." - git -C $installDir pull + try { + & git -C $installDir rev-parse --is-inside-work-tree 2>$null | Out-Null + } catch { + } + + if ($LASTEXITCODE -eq 0) { + Write-Host "Updating existing plugin at $installDir..." + Invoke-GitCommand -Arguments @("-C", $installDir, "pull") + } else { + Write-Host "Existing directory at $installDir is not a valid git checkout. Reinstalling..." + Remove-Item -LiteralPath $installDir -Recurse -Force + Write-Host "Cloning plugin to $installDir..." + Invoke-GitCommand -Arguments @("clone", $repoUrl, $installDir) + } } else { Write-Host "Cloning plugin to $installDir..." - git clone $repoUrl $installDir + Invoke-GitCommand -Arguments @("clone", $repoUrl, $installDir) } if (-not (Test-Path $marketplaceFile)) { @@ -59,17 +83,13 @@ $pluginJson = @" $marketplace = Get-Content -LiteralPath $marketplaceFile -Raw | ConvertFrom-Json $newPlugin = $pluginJson | ConvertFrom-Json -# Ensure plugins is an array and filter out existing entry for this plugin. if ($null -eq $marketplace.plugins) { - $marketplace.plugins = @() + $marketplace | Add-Member -MemberType NoteProperty -Name plugins -Value @() } else { $marketplace.plugins = @($marketplace.plugins | Where-Object { $_.name -ne $pluginName }) } -# Add the new plugin entry. $marketplace.plugins += $newPlugin - -# Save back to file with sufficient depth to preserve nested objects. $marketplace | ConvertTo-Json -Depth 10 | Set-Content -LiteralPath $marketplaceFile -Encoding utf8 Write-Host "Done! Restart Codex to use the $pluginName plugin." From ff1026e6eda4b3b2642a6464de01fe15ee31b10c Mon Sep 17 00:00:00 2001 From: Bharath Elluru Date: Wed, 15 Apr 2026 21:34:48 -0700 Subject: [PATCH 3/5] Update codex-install.ps1 with BOM-less file writing and formatting --- codex-install.ps1 | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/codex-install.ps1 b/codex-install.ps1 index 0b972bb..160d03f 100644 --- a/codex-install.ps1 +++ b/codex-install.ps1 @@ -32,6 +32,25 @@ function Invoke-GitCommand { } } +function Write-TextFileNoBom { + param( + [Parameter(Mandatory = $true)] + [string] $Path, + + [Parameter(Mandatory = $true)] + [string] $Content + ) + + if ($PSVersionTable.PSVersion.Major -ge 6) { + $Content | Set-Content -LiteralPath $Path -Encoding utf8NoBOM + return + } + + # Windows PowerShell 5.1 lacks utf8NoBOM. For this file we only emit ASCII JSON, + # so ASCII preserves valid JSON bytes while avoiding a UTF-8 BOM. + $Content | Set-Content -LiteralPath $Path -Encoding ascii +} + Write-Host "--- $pluginName Installer for Codex ---" New-Item -ItemType Directory -Force -Path $pluginsRoot | Out-Null @@ -58,7 +77,7 @@ if (Test-Path $installDir) { if (-not (Test-Path $marketplaceFile)) { Write-Host "Creating new personal marketplace..." - '{"name":"personal","plugins":[]}' | Set-Content -LiteralPath $marketplaceFile -Encoding utf8 + Write-TextFileNoBom -Path $marketplaceFile -Content '{"name":"personal","plugins":[]}' } Write-Host "Registering plugin in $marketplaceFile..." @@ -90,6 +109,8 @@ if ($null -eq $marketplace.plugins) { } $marketplace.plugins += $newPlugin -$marketplace | ConvertTo-Json -Depth 10 | Set-Content -LiteralPath $marketplaceFile -Encoding utf8 +$marketplaceJson = $marketplace | ConvertTo-Json -Depth 10 +$marketplaceJson = $marketplaceJson -replace '":\s+', '": ' +Write-TextFileNoBom -Path $marketplaceFile -Content $marketplaceJson Write-Host "Done! Restart Codex to use the $pluginName plugin." From 43ea527bfa2fb1959ebcc0d0106400d221637568 Mon Sep 17 00:00:00 2001 From: Bharath Elluru Date: Wed, 15 Apr 2026 22:34:34 -0700 Subject: [PATCH 4/5] docs: update README with node prerequisites, codex installation and troubleshooting --- README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4342e6f..5ac7838 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,12 @@ This plugin provides a specialized suite of skills and MCP tools for data engine ## Prerequisites -Ensure you have one of the following coding agents installed: -* [Gemini CLI](https://github.com/google-gemini/gemini-cli) (v0.6.0+) -* [Claude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) -* Codex CLI +Ensure you have the following installed: +* **Node.js and npm** (Latest version recommended) +* One of the following coding agents: + * [Gemini CLI](https://github.com/google-gemini/gemini-cli) (v0.6.0+) + * [Claude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) + * Codex CLI ## Getting Started @@ -40,9 +42,15 @@ gemini extensions install https://github.com/gemini-cli-extensions/data-cloud-ai /plugin install data-cloud-ai-dev-kit@data-cloud-ai-dev-kit-marketplace ``` -#### Codex (One-Liner) +#### Codex +**macOS / Linux:** ```bash -curl -sSL https://raw.githubusercontent.com/gemini-cli-extensions/data-cloud-ai-dev-kit/main/codex-install.sh | bash +gh api repos/gemini-cli-extensions/data-cloud-ai-dev-kit/contents/codex-install.sh -H "Accept: application/vnd.github.raw" | bash +``` + +**Windows:** +```powershell +gh api repos/gemini-cli-extensions/data-cloud-extension/contents/codex-install.ps1 -H "Accept: application/vnd.github.raw" | powershell -ExecutionPolicy Bypass - ``` ## Usage Examples @@ -67,3 +75,4 @@ Interact with your coding agent using natural language prompts to perform comple * **Plugin Not Found:** Ensure you have restarted your agent (e.g., Gemini CLI or Codex) after installation. * **Authentication Errors:** Many GCP skills require an active authenticated session. Ensure you have run `gcloud auth login` and `gcloud auth application-default login` on your machine. +* **MCP Connection Issues:** Update the MCP server configurations such as project, region etc. needed by MCP toolboxes in order to connect successfully to them. From 78ca1eda94ebfb8f6035f8c1bd2440c5cd7984e4 Mon Sep 17 00:00:00 2001 From: Bharath Elluru Date: Thu, 16 Apr 2026 23:08:18 -0700 Subject: [PATCH 5/5] docs: rename repository to data-agent-kit-starter-pack and update codex installation commands --- .agents/plugins/marketplace.json | 6 +- .claude-plugin/marketplace.json | 4 +- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 6 +- .lycheeignore | 1 + .mcp.json | 20 +++--- DEVELOPER.md | 8 +-- README.md | 104 ++++++++++++++++++++++++------- codex-install.ps1 | 6 +- codex-install.sh | 6 +- gemini-extension.json | 22 +++---- package.json | 2 +- release-please-config.json | 2 +- 13 files changed, 124 insertions(+), 65 deletions(-) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 86234a7..6cd2fd0 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -1,11 +1,11 @@ { - "name": "data-cloud-ai-dev-kit-marketplace", + "name": "data-agent-kit-starter-pack-marketplace", "interface": { - "displayName": "data-cloud-ai-dev-kit Marketplace" + "displayName": "Data Agent Kit Starter Pack Marketplace" }, "plugins": [ { - "name": "data-cloud-ai-dev-kit", + "name": "data-agent-kit-starter-pack", "source": { "source": "local", "path": "./" diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 46216c1..fead7a4 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,11 +1,11 @@ { - "name": "data-cloud-ai-dev-kit-marketplace", + "name": "data-agent-kit-starter-pack-marketplace", "owner": { "name": "Google LLC" }, "plugins": [ { - "name": "data-cloud-ai-dev-kit", + "name": "data-agent-kit-starter-pack", "source": "./", "description": "This plugin provides a specialized suite of skills for data engineers and database practitioners working on Google Cloud. It acts as an expert assistant, allowing you to use natural language prompts in your preferred coding agent to architect complex data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across GCP's data ecosystem." } diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 2ee7169..d09bf8b 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,5 +1,5 @@ { - "name": "data-cloud-ai-dev-kit", + "name": "data-agent-kit-starter-pack", "version": "0.1.8", "description": "This plugin provides a specialized suite of skills for data engineers and database practitioners working on Google Cloud. It acts as an expert assistant, allowing you to use natural language prompts in your preferred coding agent to architect complex data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across GCP's data ecosystem.", "mcp": "./.mcp.json" diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 1100bfa..c6603ce 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,11 +1,11 @@ { - "name": "data-cloud-ai-dev-kit", + "name": "data-agent-kit-starter-pack", "version": "0.1.8", "description": "This plugin provides a specialized suite of skills for data engineers and database practitioners working on Google Cloud. It acts as an expert assistant, allowing you to use natural language prompts in your preferred coding agent to architect complex data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across GCP's data ecosystem.", "skills": "./skills/", "interface": { - "displayName": "Data Cloud AI Dev Kit", - "shortDescription": "Data Cloud AI Dev Kit", + "displayName": "Data Agent Kit Starter Pack", + "shortDescription": "Data Agent Kit Starter Pack", "category": "Productivity" }, "mcp": "./.mcp.json" diff --git a/.lycheeignore b/.lycheeignore index b9824b5..62a2a50 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -1,4 +1,5 @@ https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit/compare/ https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit https://raw.githubusercontent.com/gemini-cli-extensions/data-cloud-ai-dev-kit/main/codex-install.sh +https://docs.cloud.google.com/data-cloud-extension/vs-code/install data-cloud-ai-dev-kit@data-cloud-ai-dev-kit-marketplace \ No newline at end of file diff --git a/.mcp.json b/.mcp.json index d91a24b..8d37195 100644 --- a/.mcp.json +++ b/.mcp.json @@ -4,7 +4,7 @@ "command": "npx", "args": [ "-y", - "git+https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit.git" + "git+https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack.git" ], "env": {}, "env_vars": [ @@ -20,7 +20,7 @@ "bigquery", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "BIGQUERY_LOCATION": "", @@ -36,7 +36,7 @@ "spanner", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "SPANNER_DATABASE": "", @@ -54,7 +54,7 @@ "alloydb-postgres-admin", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": {} }, @@ -67,7 +67,7 @@ "alloydb-postgres", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "ALLOYDB_POSTGRES_CLUSTER": "", @@ -89,7 +89,7 @@ "cloud-sql-postgres-admin", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": {} }, @@ -102,7 +102,7 @@ "cloud-sql-postgres", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "CLOUD_SQL_POSTGRES_DATABASE": "", @@ -123,7 +123,7 @@ "dataplex", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "DATAPLEX_PROJECT": "" @@ -138,7 +138,7 @@ "dataproc", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "DATAPROC_PROJECT": "", @@ -154,7 +154,7 @@ "serverless-spark", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-claude-and-codex" + "datacloud.claude-and-codex" ], "env": { "SERVERLESS_SPARK_PROJECT": "", diff --git a/DEVELOPER.md b/DEVELOPER.md index 0435b5b..a19c1a6 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -1,7 +1,7 @@ # DEVELOPER.md This document provides instructions for setting up your development environment -and contributing to the Cloud SQL for PostgreSQL Gemini CLI Extension project. +and contributing to the Data Agent Kit Starter Pack project. ## Prerequisites @@ -22,8 +22,8 @@ The core logic for this extension is handled by a pre-built `toolbox` binary. Th 1. **Clone the Repository:** ```bash - git clone https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit.git - cd data-cloud-ai-dev-kit + git clone https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack.git + cd data-agent-kit-starter-pack ``` 2. **Download the Toolbox Binary:** The required version of the `toolbox` binary @@ -48,7 +48,7 @@ The core logic for this extension is handled by a pre-built `toolbox` binary. Th The CLI will prompt you to confirm the installation. Accept it to proceed. 4. **Testing Changes:** After installation, start the Gemini CLI (`gemini`). - You can now interact with the `data-cloud-ai-dev-kit` tools to manually test your changes + You can now interact with the `data-agent-kit-starter-pack` tools to manually test your changes against your connected database. ### Adding or Updating Skills diff --git a/README.md b/README.md index 96c3927..d0853e7 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ -# Data Cloud AI Dev Kit +# Data Agent Kit Starter Pack > [!NOTE] > This extension is currently in beta (pre-v1.0), and may see breaking changes until the first stable release (v1.0). -This plugin provides a specialized suite of skills and MCP tools for data engineers and database practitioners working on Google Cloud. It acts as an expert assistant, allowing you to use natural language prompts in your preferred coding agent to architect complex data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across GCP's data ecosystem (BigQuery, Spanner, BigLake, Dataproc, etc.). +This plugin provides a specialized suite of skills and MCP tools for data engineers and database practitioners working on Google Cloud. It acts as an expert assistant, allowing you to use natural language prompts in your preferred coding agent to architect complex data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across the Google Cloud data ecosystem (BigQuery, Spanner, BigLake, Dataproc, etc.). > [!IMPORTANT] > **We Want Your Feedback!** > Please share your thoughts with us by opening an issue on GitHub. Your input is invaluable and helps us improve the project for everyone. -## Why Use the Data Cloud AI Dev Kit? +## Why Use the Data Agent Kit Starter Pack? -* **Seamless Workflow:** Brings Google Cloud data engineering expertise directly into your terminal or IDE via Gemini CLI, Claude Code, or Codex. -* **End-to-End Data Pipelines:** Effortlessly generate code that reads raw data from GCS, processes it with Spark or BigQuery, transforms it through medallion architectures (bronze, silver, gold) using dbt, and exports it to serving layers like Cloud Spanner. -* **Ecosystem Integration:** Work across boundaries—generate BigLake Iceberg catalog tables, train BigQuery ML models (XGBoost, KMEANS), and create interactive Streamlit dashboards or LookML models all from natural language. +* **Seamless Workflow:** Bring Google Cloud data engineering expertise directly into your terminal or IDE via Gemini CLI, Claude Code, or Codex. +* **End-to-End Data Pipelines:** Effortlessly generate code that reads raw data from Cloud Storage, processes it with Spark or BigQuery, transform it through medallion architectures (bronze, silver, gold) using dbt, and export it to serving layers like Spanner. +* **Ecosystem Integration:** Work across boundaries—generate BigLake Iceberg catalog tables, train BigQuery ML models (XGBoost, KMEANS), and create interactive Streamlit dashboards or LookML models, all from natural language. * **Workflow Orchestration:** Automatically create and schedule orchestration pipelines that tie your notebooks and dbt models together into robust, scheduled jobs. ## Prerequisites @@ -24,34 +24,92 @@ Ensure you have the following installed: * [Gemini CLI](https://github.com/google-gemini/gemini-cli) (v0.6.0+) * [Claude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) * Codex CLI +* **(Optional) IDE Extension:** [Google Cloud Data Agent Kit](https://docs.cloud.google.com/data-cloud-extension/vs-code/install). ## Getting Started ### Installation -Choose the installation method for your preferred coding agent. +Choose the installation method for your preferred coding agent. Run the commands in terminal + +
+Gemini CLI and Gemini Code Assist -#### Gemini CLI ```bash -gemini extensions install https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit +gemini extensions install https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack ``` +
+ +
+Claude Code + +Run the `claude` command to start the agent, then run: -#### Claude Code ```bash -/plugin marketplace add https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit -/plugin install data-cloud-ai-dev-kit@data-cloud-ai-dev-kit-marketplace +/plugin marketplace add https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack +/plugin install data-agent-kit-starter-pack@data-agent-kit-starter-pack-marketplace ``` +
+ +
+Codex + +Run the following commands in your terminal: -#### Codex **macOS / Linux:** ```bash -gh api repos/gemini-cli-extensions/data-cloud-ai-dev-kit/contents/codex-install.sh -H "Accept: application/vnd.github.raw" | bash +curl -sSL https://raw.githubusercontent.com/gemini-cli-extensions/data-agent-kit-starter-pack/main/codex-install.sh | bash ``` **Windows:** ```powershell -gh api repos/gemini-cli-extensions/data-cloud-extension/contents/codex-install.ps1 -H "Accept: application/vnd.github.raw" | powershell -ExecutionPolicy Bypass - +irm https://raw.githubusercontent.com/gemini-cli-extensions/data-agent-kit-starter-pack/main/codex-install.ps1 | iex +``` + +After running the installation script, run the `codex` command to start the agent, then run: + +```bash +/plugins +``` + +Use the interactive options to install the extension with the name `Data Agent Kit Starter Pack`. +
+ +### Configuration + +MCP toolboxes are added to the respective agent configuration files. You must configure the MCP toolboxes in your agent's configuration files for them to start successfully. + +In all cases, you must restart the agent after updating the configuration files. + +
+Gemini CLI and Gemini Code Assist + +Edit the configuration file: +`~/.gemini/extensions/data-agent-kit-starter-pack/gemini-extension.json` +
+ +
+Claude Code + +1. Edit the configuration file: +`~/.claude/plugins/cache/data-agent-kit-starter-pack-marketplace/data-agent-kit-starter-pack//.mcp.json` + +2. Reinstall the plugin: +Run `/plugin` and use interactive options to uninstall `data-agent-kit-starter-pack`. Then run `/plugin install` to add it back. +
+ +
+Codex + +1. Edit the configuration file: +`~/.agents/plugins/data-agent-kit-starter-pack/.mcp.json` + +2. Use interactive options to uninstall and install the extension: +```bash +/plugins ``` +Install with name: `Data Agent Kit Starter Pack` +
## Usage Examples @@ -79,11 +137,11 @@ Interact with your coding agent using natural language prompts to perform comple ## Security Reminder: Agent Environment Hardening -Your agent has the power to -execute tools and commands on your behalf. Protect your GCP resources by -enforcing **Strict Least Privilege** across all CLIs, MCP servers and other -resources available to your agents. For example, use scoped Service Accounts -(read more -[here](https://docs.cloud.google.com/docs/authentication/use-service-account-impersonation)) -for tasks accessing your cloud resources and conducting regular permission and -agent settings audits to minimize your attack surface. +Your agent has the power to execute tools and commands on your behalf. Protect your GCP resources by enforcing **Strict Least Privilege** across all CLIs, MCP servers and other resources available to your agents. + +* Use [service accounts](https://docs.cloud.google.com/docs/authentication/use-service-account-impersonation) for accessing your cloud resources. +* Assign the service account a role with [limited permissions](https://docs.cloud.google.com/iam/docs/roles-overview). +* Prevent unwanted cross-org agent access by utilizing **Principal Access Boundaries** to scope your agent to [projects](https://docs.cloud.google.com/iam/docs/principal-access-boundary-policies#use-case-one-project) you intend the agent to access. + +> [!NOTE] +> The Principal Access Boundary condition should bind the policy to the service accounts you intend to restrict. diff --git a/codex-install.ps1 b/codex-install.ps1 index 160d03f..990fe55 100644 --- a/codex-install.ps1 +++ b/codex-install.ps1 @@ -14,8 +14,8 @@ $ErrorActionPreference = "Stop" -$pluginName = "data-cloud-ai-dev-kit" -$repoUrl = "https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit" +$pluginName = "data-agent-kit-starter-pack" +$repoUrl = "https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack" $pluginsRoot = Join-Path $HOME ".agents\plugins" $installDir = Join-Path $pluginsRoot $pluginName $marketplaceFile = Join-Path $pluginsRoot "marketplace.json" @@ -85,7 +85,7 @@ $pluginJson = @" { "name": "$pluginName", "interface": { - "displayName": "Google Data Cloud AI Dev Kit" + "displayName": "Data Agent Kit Starter Pack" }, "source": { "source": "local", diff --git a/codex-install.sh b/codex-install.sh index 7a25e39..761a036 100755 --- a/codex-install.sh +++ b/codex-install.sh @@ -15,8 +15,8 @@ set -e -PLUGIN_NAME="data-cloud-ai-dev-kit" -REPO_URL="https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit" +PLUGIN_NAME="data-agent-kit-starter-pack" +REPO_URL="https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack" INSTALL_DIR="$HOME/.agents/plugins/$PLUGIN_NAME" MARKETPLACE_FILE="$HOME/.agents/plugins/marketplace.json" @@ -53,7 +53,7 @@ data.plugins = data.plugins || []; data.plugins = data.plugins.filter(p => p.name !== '${PLUGIN_NAME}'); data.plugins.push({ name: '${PLUGIN_NAME}', - interface: { displayName: 'Google Data Cloud AI Dev Kit' }, + interface: { displayName: 'Data Agent Kit Starter Pack' }, source: { source: 'local', path: './.agents/plugins/${PLUGIN_NAME}' }, policy: { installation: 'AVAILABLE', authentication: 'ON_INSTALL' }, category: 'Productivity' diff --git a/gemini-extension.json b/gemini-extension.json index b8fc4b9..8d50c0c 100644 --- a/gemini-extension.json +++ b/gemini-extension.json @@ -1,5 +1,5 @@ { - "name": "data-cloud-ai-dev-kit", + "name": "data-agent-kit-starter-pack", "version": "0.1.8", "description": "This plugin provides a specialized suite of skills for data engineers and database practitioners working on Google Cloud. It acts as an expert assistant, allowing you to use natural language prompts in your preferred coding agent to architect complex data pipelines, transform data with dbt, write Spark and BigQuery SQL notebooks, and orchestrate end-to-end workflows across GCP's data ecosystem.", "mcpServers": { @@ -7,7 +7,7 @@ "command": "npx", "args": [ "-y", - "git+https://github.com/gemini-cli-extensions/data-cloud-ai-dev-kit.git" + "git+https://github.com/gemini-cli-extensions/data-agent-kit-starter-pack.git" ], "env": {} }, @@ -20,7 +20,7 @@ "bigquery", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "BIGQUERY_LOCATION": "", @@ -36,7 +36,7 @@ "spanner", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "SPANNER_DATABASE": "", @@ -54,7 +54,7 @@ "alloydb-postgres-admin", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": {} }, @@ -67,7 +67,7 @@ "alloydb-postgres", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "ALLOYDB_POSTGRES_CLUSTER": "", @@ -89,7 +89,7 @@ "cloud-sql-postgres-admin", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": {} }, @@ -102,7 +102,7 @@ "cloud-sql-postgres", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "CLOUD_SQL_POSTGRES_DATABASE": "", @@ -123,7 +123,7 @@ "dataplex", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "DATAPLEX_PROJECT": "" @@ -138,7 +138,7 @@ "dataproc", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "DATAPROC_PROJECT": "", @@ -154,7 +154,7 @@ "serverless-spark", "--stdio", "--user-agent-metadata", - "google-cloud-data-agent-kit-gemini-cli" + "datacloud.gemini-cli" ], "env": { "SERVERLESS_SPARK_PROJECT": "", diff --git a/package.json b/package.json index dc519b5..0374ee4 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "data-cloud-ai-dev-kit", + "name": "data-agent-kit-starter-pack", "version": "0.1.8", "description": "Developer toolkit for Data Cloud and AI integrations", "bin": { diff --git a/release-please-config.json b/release-please-config.json index eb40753..4941f53 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -26,7 +26,7 @@ "packages": { ".": { "release-type": "simple", - "package-name": "data-cloud-ai-dev-kit", + "package-name": "data-agent-kit-starter-pack", "extra-files": [ { "type": "json",