adk-python
* **`Agent`**: The core intelligent unit. Can be `LlmAgent` (LLM-driven) or `BaseAgent` (custom/workflow). * **`Tool`**: Callable function providing external…
An extension overrides or adds a built-in command. It's a directory containing an `agents-cli-extension.yaml`, so any git repo can serve as a registry.
$ npx -y skills add google/agents-cli --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
An extension overrides or adds a built-in command. It's a directory containing an `agents-cli-extension.yaml`, so any git repo can serve as a registry.
An extension overrides or adds a built-in command. It's a directory containing an `agents-cli-extension.yaml`, so any git repo can serve as a registry.
Two things you can do: **author** an extension (start ad-hoc in the current repo, publish it later), or **adopt** an existing one.
---
Drop a single file, `agents-cli-extension.yaml`, at the project root (next to `agents-cli-manifest.yaml`). It's auto-loaded at project scope, so no `extension add` is needed. Commit it and teammates and CI get the same overrides.
Only one, at that exact path, and always project scope. For a second one, or to install a local extension globally, move it into its own directory and `agents-cli extension add local@./path --global`; `#name` picks one out of a directory holding several.
**Publish it for other repos:** move the same file (and its scripts) into its own git repo and tag it — others then `agents-cli extension add <org>/<repo>#<name> --ref v1.0.0`. The file doesn't change; ad-hoc and shared are the same format.
Everything below is optional except `run` on a command (a non-empty list). Unknown keys are rejected, so a typo fails loudly instead of silently doing nothing.
Machine-readable equivalent: `schemas/agents-cli-extension-v1alpha1.schema.json` in the agents-cli repo, generated from the same models the loader uses. Point a `yaml-language-server` modeline at it for editor validation.
# yaml-language-server: $schema=https://raw.githubusercontent.com/google/agents-cli/main/schemas/agents-cli-extension-v1alpha1.schema.json
schema: agents-cli-extension/v1alpha1
name: my-extension
description: What this extension does.
requires:
agents_cli: ">=1.3,<2" # example - derive from `agents-cli --version`, see below
on_incompatible: warn # warn (install + warn) | error (refuse at add/update, block its commands if the CLI drifts out)
commands:
override: # replace a built-in; user argv passes through verbatim
deploy:
run: ["uv", "run", "scripts/custom_deploy.py"]
description: SBOM upload, then the built-in deploy.
eval.generate: # dotted name = a subcommand (group.sub)
run: ["uv", "run", "scripts/eval_generate.py"]
description: Framework-specific inference runner.
add: # a brand-new command that doesn't exist yet
compliance-report:
run: ["python", "scripts/compliance_report.py"]
description: Generate the quarterly compliance report.#!/usr/bin/env bash set -e "$AGENTS_CLI_EXTENSION_DIR/scripts/compliance_check.sh" # non-zero here aborts agents-cli deploy "$@" # hits the built-in (guard is set)
`["python", "scripts/x.py"]` or `["uv", "run", "python", "scripts/x.py"]` works everywhere, while a bare `["scripts/x.py"]` relies on a shebang and never runs on Windows (the CLI warns if you do it). Paths in the vector are resolved relative to the extension directory, so they work from any cwd.
---
agents-cli extension add <ref> [--global] [--ref <branch|tag|sha>] [--yes] agents-cli extension list # what's active, its scope, and its commands agents-cli extension update [<name>] # advance the pin (re-resolve the tracked ref) agents-cli extension remove <name> # drop it and delete its vendored copy agents-cli info # shows active extensions + sources + conflicts
| Form | Meaning | |------|---------| | `acme/acli-extensions` | any `org/repo` on github.com | | `acme/acli-extensions#soc2-deploy` | select one extension from a multi-extension repo | | `https://git.example.com/acme/acli-extensions` | any git host — `https://`, `http://` or `ssh://` | | `git@git.example.com:acme/acli-extensions` | the same host, in scp form | | `local@../my-extension` | a local path (for development) | | `<nam
The CLI and skills that turn any coding assistant into an expert at creating, evaluating, and deploying AI agents on Google Cloud.
Repo: google/agents-cli
* **`Agent`**: The core intelligent unit. Can be `LlmAgent` (LLM-driven) or `BaseAgent` (custom/workflow). * **`Tool`**: Callable function providing external…
Requires `google-adk >= 2.0.0`. Python only. Requires **Python >= 3.11**. The `Workflow` class itself does not support Live Streaming (`Runner.run_live`) — the…
Recipes live in [google/adk-samples](https://github.com/google/adk-samples). **`core/python/`** is the curated tier — canonical ADK patterns maintained by the…
**Assumes `/google-agents-cli-scaffold` scaffolding.** If your project isn't scaffolded yet, see `/google-agents-cli-scaffold` first.
Invoke your agent as a BigQuery Remote Function for batch inference over table rows. This requires a custom `POST /` endpoint since BQ cannot use URL paths.
**Best for:** Production applications, teams requiring staging → production promotion.