onboarding
Onboard an Elastic Cloud organization: configure the `elastic` CLI's Cloud context and API key, establish a default region, then…
Install and manage Elastic security ML integration packages (beaconing, ded, dga, lmd, pad, problemchild). Handles the full lifecycle: pre-flight checks, Fleet package install, component templates, ingest pipelines, transforms, data views, ML anomaly detection jobs, and
Claude Code
$ npx -y skills add elastic/agent-skills --skill ml-integrations --agent claude-code
Codex
$ npx skills add elastic/agent-skills --skill ml-integrations -a codex -y
Cursor
$ npx skills add elastic/agent-skills --skill ml-integrations -a cursor -y
Gemini CLI
$ npx skills add elastic/agent-skills --skill ml-integrations -a gemini-cli -y
GitHub Copilot
$ npx skills add elastic/agent-skills --skill ml-integrations -a github-copilot -y
OpenCode
$ npx skills add elastic/agent-skills --skill ml-integrations -a opencode -y
Windsurf
$ npx skills add elastic/agent-skills --skill ml-integrations -a windsurf -y
name: security-ml-integrations description: > Install and manage Elastic security ML integration packages (beaconing, ded, dga, lmd, pad, problemchild). Handles the full lifecycle: pre-flight checks, Fleet package install, component templates, ingest pipelines, transforms, data views, ML anomaly detection jobs, and detection rules. Use when a user asks to install, set up, check the status of, or troubleshoot a security ML integration package. metadata: author: elastic version: 0.1.0 universal: true compatibility: Requires Kibana 9.4+ with Fleet, ML, and Security; a Platinum, Enterprise, or trial license (or Serverless); manage_ml; and the elastic CLI ≥ 0.5.
Install, check, or troubleshoot a security ML package. Supported packages: `beaconing` (Network Beaconing Identification), `ded` (Data Exfiltration Detection), `dga` (Domain Generation Algorithm Detection), `lmd` (Lateral Movement Detection), `pad` (Privileged Access Detection), `problemchild` (Living off the Land Attack Detection).
<!-- begin-partial: preamble -->
This skill executes Elasticsearch operations through the `elastic` CLI. If the [`elastic` CLI](https://github.com/elastic/cli#configuration) is not installed, tell the user what it is needed for. Do not guess credentials, call the HTTP API directly, or attempt other workarounds.
This skill references operations in HTTP-shorthand form (e.g., `GET /`, `GET /_cat/indices`, `GET /{index}/_mapping`, `GET /{index}/_settings/index.mode`, `POST /_query`). The [Operations](#operations) table at the end of this document maps each shorthand to the equivalent `elastic` CLI command — always use the CLI rather than calling the HTTP API directly.
<!-- end-partial: preamble -->
Package source patterns, shared template fields, and ingest-pipeline wiring live in [package capabilities](references/package-capabilities.md).
1. **Classify the request.** Status, README, or install. Status and README stay read-only — do not install, start transforms, deploy jobs, or enable rules. After identifying the package, branch: status uses `GET kbn:/api/fleet/epm/packages/{package}` only (title, version, status); README adds `GET kbn:/api/fleet/epm/packages/{package}/{version}/docs/README.md` and returns that document; install continues.
2. **Identify the package.** Map the user's words to one of the six package names above. If the name is ambiguous, ask before calling any API. Load that package's row from [package capabilities](references/package-capabilities.md) — omit fields that are empty for that package.
3. **Gather environment state before any mutation.** Install only. `GET /_license` first — continue only for `platinum`, `enterprise`, `trial`, or Serverless. If `GET /_ml/info` returns 403, report missing `manage_ml` and stop. Then collect:
zero hits, warn that jobs will not produce useful anomalies.
fields in the reference. 404 → plan a create with only those fields.
404 → plan a single-processor pipeline.
`dest.index`, and the `.all` alias (`dest.aliases` where `move_on_creation` is false).
jobs). `GET kbn:/internal/ml/modules/get_module/{module_id}` for job count and per-job memory. If jobs do not fit, say so and suggest prioritizing job groups — do not deploy anyway without the user accepting the risk.
`POST kbn:/internal/detection_engine/prebuilt_rules/installation/_review` filtered by the package detection tag.
4. **Present a plan and wait for confirmation.** Show package identity and status, source-data hits (warn if all zero), template/pipeline merge-or-create, transform count and states, data-view presence, ML memory fit, and rule count. **Do not call any write API until the user confirms.** If they decline, stop.
5. **Install the Fleet package, then apply shared mappings.** After confirmation:
`POST /{data_stream}/_rollover` on the rollover target so new indices pick up mappings.
installed package version in the versioned pipeline name.
Skip template, pipeline, and rollover when the package row has no values for them (beaconing, ded, lmd).
6. **Start transforms and create destination aliases.** Skip this block (except `.ml-anomalies-shared`) when the package has no transform pattern. Fleet's first checkpoint often skips `.all` aliases. After install, `GET /_transform/{pattern}` again if IDs were missing. Reset only if the transform is new, never started, failed, or the user asked to rebuild: `POST /_transform/{id}/_stop`, `POST /_transform/{id}/_reset`, `POST /_transform/{id}/_update` with the existing description, `POST /_transform/{id}/_start`, `POST /_transform/{id}/_schedule_now`. If al
Elastic Agent Skills — built by the people who built Elastic — deliver native platform expertise directly to your AI coding agent.
Onboard an Elastic Cloud organization: configure the `elastic` CLI's Cloud context and API key, establish a default region, then…
Provision and operate Elastic Cloud infrastructure: create, connect to, update, and delete Serverless projects (Elasticsearch,…
Explain Elasticsearch ML anomaly detection scores, model behavior, and result interpretation. Use when the user asks why a score…
Create and manage Elastic ML anomaly detection jobs via the API. Use when setting up jobs on an index or data stream, configuring…
Diagnose a non-green Elasticsearch cluster and surface the single most likely cause with remediation. Use when an operator…
Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs,…
Diagnose why a program crashed on this machine, from a systemd-coredump core dump. Use when a process has segfaulted, aborted, or…
Set up, connect, validate, and repair Claude Desktop and MCP servers using Desktop Commander — inspecting and fixing mcp.json /…
Audit UniFi firewall policies for conflicts, redundancies, security gaps, and best practices. Use when asked to review firewall…
Add a custom domain to a Temps project and provision an automatic SSL/TLS certificate via Let's Encrypt, driven entirely from the…