Skip to main content

create-subcommand

Add a new CLI subcommand to an agent binary (agent, cluster-agent, etc.)

Ir para a instalação

Informações da origem

Repositório
DataDog/datadog-agent
Última atividade na origem
16 de julho de 2026 às 18:42
Idioma detectado do SKILL.md
inglês
Estrelas
3.734
Forks
1.495

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
create-subcommand
description
Add a new CLI subcommand to an agent binary (agent, cluster-agent, etc.)
allowed-tools
Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
argument-hint
[agent] [subcommand-name]
model
sonnet
Add a new CLI subcommand to a Datadog Agent binary. Each agent binary uses Cobra commands registered via a central `subcommands.go` file. ## Agent Binaries | Agent | Subcommands dir | Registration file | |---|---|---| | Core Agent | `cmd/agent/subcommands/` | `cmd/agent/subcommands/subcommands.go` | | Cluster Agent | `cmd/cluster-agent/subcommands/` | `cmd/cluster-agent/subcommands/subcommands.go` | | Process Agent | `cmd/process-agent/subcommands/` | `cmd/process-agent/subcommands/subcommands.go` | | Security Agent | `cmd/security-agent/subcommands/` | `cmd/security-agent/subcommands/subcommands.go` | | System Probe | `cmd/system-probe/subcommands/` | `cmd/system-probe/subcommands/subcommands.go` | | DogStatsD | `cmd/dogstatsd/subcommands/` | `cmd/dogstatsd/subcommands/subcommands.go` | ## Instructions ### Step 1: Gather information from the user Use `AskUserQuestion` to collect the following. If `$ARGUMENTS` provides values, skip those questions. 1. **Target agent**: Which agent binary? (Core Agent is most common) 2. **Subcommand name**: e.g. `health`, `hostname`, `flare` 3. **Description**: What does the subcommand do? 4. **Complexity**: Simple (no Fx, e.g. `version`) or with config/IPC (`fxutil.OneShot`, e.g. `hostname`)? 5. **Shared across agents?**: Yes → `pkg/cli/subcommands/<name>/`, No → `cmd/<agent>/subcommands/<name>/` ### Step 2: Read reference examples Read the reference matching the chosen pattern, plus the target agent's registration file: | Pattern | Reference file | |---|---| | Simple (no Fx) | `cmd/agent/subcommands/version/command.go` | | With config/IPC | `cmd/agent/subcommands/hostname/command.go` | | Shared across agents | `pkg/cli/subcommands/health/command.go` + `cmd/agent/subcommands/health/command.go` | Also read the target agent's `command/command.go` for available `GlobalParams` fields. ### Step 3: Create the subcommand Create `cmd/<agent>/subcommands/<name>/command.go` following the reference patterns exactly. ### Step 4: Register Edit the agent's `subcommands.go`: add an import with the `cmd<Name>` alias convention and add `cmd<Name>.Commands` to the factory slice. Follow the existing entries. ### Step 5: Verify 1. Build: `dda inv agent.build --build-exclude=systemd` 2. Test: `./bin/agent/agent <name> --help` 3. Lint: `dda inv linter.go` ## Usage - `/create-subcommand` — Interactive: prompts for all details - `/create-subcommand agent my-command` — Pre-fills agent and name
Ver no GitHub