> For the complete documentation index, see [llms.txt](https://docs.stepsecurity.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stepsecurity.io/developer-machines/ide-and-ai-agents/agent-skills.md).

# Agent Skills

The Agent Skills page provides an organization-wide inventory of AI agent skills detected across developer machines. It shows what skills are installed, which AI agents can load them, where they came from, and whether they contain executable content.

Agent skills are reusable capability folders, each containing a `SKILL.md` file plus optional supporting files, that AI coding agents like Claude Code, Codex, GitHub Copilot, OpenCode, Cursor, Gemini CLI, Pi, Factory, Amp, Grok Build, Kimi Code, Muse Code, Hermes Agent, Oh My Pi, Kiro, Windsurf, Antigravity, and OpenClaw load to perform specialized tasks.

Because skills can ship scripts, register hooks, and embed shell commands that run with the developer's user privileges, they represent a growing supply chain surface on developer machines. This page helps security and platform teams see and review that surface.

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2FQXrNfBLBiV8IGfOl8gfi%2FScreenshot%202026-09-29%20at%2010.50.20.png?alt=media&amp;token=1777d650-5782-4ff9-a3b3-2f1236717dfc" alt=""><figcaption></figcaption></figure>

The page header shows the total number of unique skills detected and the number of active devices reporting them.

### How Skills Are Detected

Dev Machine Guard scans known skill locations on each device, including:

* The shared skills directory in the user's home folder (`~/.agents/skills`), which any AI coding agent on the device can load
* Agent-specific skill directories, such as `~/.claude/skills` for Claude Code
* Project-level skill folders inside repositories
* The skills.sh lock file, which records skills installed and version-managed by the skills.sh CLI
* Skills supplied by installed Claude Code and Codex agent plugins, which are attributed to the plugin that supplied them. See [Agent Plugins](/developer-machines/ide-and-ai-agents/agent-plugins.md)
* Standalone Claude Code commands, stored as `commands/**/*.md` files in the user's or a project's Claude configuration

Skills installed once in the shared directory are often symlinked into agent-specific directories. Dev Machine Guard resolves this pattern and reports a single installation.

### Filtering and Search

Two rows of filter chips let you scope the list, with each chip showing the number of matching skills:

* **Source**: `All skills`, `skills.sh managed` (installed via the skills.sh CLI), or `Local` (standalone skill folders not managed by any CLI)
* **Agent**: a chip per detected agent (for example, Claude Code, Codex, GitHub Copilot) plus `Shared` for skills installed in the shared skills directory

You can also search skills by name, narrow the table with the **All scopes** dropdown (`Global`, `Project`, or `System`) the **Any flags** dropdown (`Has code`, `Has hooks`, or `Shell execution`), and the **Any origin** dropdown, and use **Export CSV** to download the full skill inventory.

### Skill Table

The skill table shows the following columns:

* **Skill**: the skill name and its canonical key (for example, `local:imagegen`)
* **Agents**: which AI tools can load the skill. Agent badges (for example, `Claude Code`, `Codex`) indicate agent-specific installations. `Shared` means the skill is installed in the shared skills directory and can be loaded by any agent on the device.
* **Scope**: where the skill is installed
  * `Global`: in the user's home directory, available to all projects
  * `Project`: inside a specific repository
  * `System`: machine-wide
* **Source**: how the skill is managed. `Local` indicates a standalone skill folder. Skills managed by the skills.sh CLI show the GitHub repository they were installed from (for example, `https://github.com/anthropics/skills`). Skills supplied by an agent plugin show the plugin name, with its marketplace and agent beneath (for example, `engineering-tools` from `engineering-catalog · Claude Code`). Select the plugin to open it on the Agent Plugins page.
* **Flags**: executable content detected in the skill
  * `code`: the skill folder ships executable script files, not just a `SKILL.md`
  * `hooks`: the skill declares a hooks block that registers commands against the agent's tool-use events, firing while the skill is active
  * `shell`: the `SKILL.md` body injects shell commands that execute when the skill loads
  * `command`: the entry is a Claude Code command rather than a `SKILL.md` skill
* **Content hashes**: the number of distinct `SKILL.md` content hashes for this skill across your devices. A value greater than one is highlighted and means the skill's content differs between devices. Hashes show that copies vary; they do not show which copy is current or correct.
* **Usage**: the cumulative number of times Claude Code has recorded the skill being used, from the counters Claude Code keeps on each device. A dash means no usage record is available, which is not the same as zero uses
* **Devices**: the number of devices where the skill is installed

{% hint style="info" %}
Skills with flags deserve closer review. Inline shell commands execute the moment the skill loads, bundled scripts run when the agent invokes the skill, and hooks fire on the agent's tool-use events, all with the developer's user privileges. Attackers have begun distributing malicious skills through public channels.
{% endhint %}

### Skill Detail View

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2F2oXcMojSdYKNygvpswyl%2FScreenshot%202026-07-22%20at%2000.40.33.png?alt=media&amp;token=e816525f-9421-4572-902d-03fe7f7c74f7" alt=""><figcaption></figcaption></figure>

Select a skill to open a detail panel. Cards at the top summarize the number of devices, distinct content hashes, and installed instances. Below them, the panel shows the following sections.

#### **Skill Information**

The full description from `SKILL.md`, the skill's **Canonical Key** (a stable identifier such as `local:imagegen`), and the **Agents**, **Scopes**, and **Flags** detected across all installations.

#### **Provenance**

Where the skill originated. The fields differ by source:

* For **skills.sh managed** skills: the managing CLI, the source type and the GitHub repository or other well-known source the skill was installed from, the plugin it belongs to, the upstream folder hash, and when it was last seen
* For **Local** skills: the origin (`Authored on device`), a `Not managed` indicator, the number of content hashes, and when it was last seen. `Local` means no managed source was identified: the skill may have been written on the device, or copied or downloaded there by hand. With no upstream source to compare against, consistency is inferred from device-reported content hashes.

#### **Devices**

A per-device list of every installation, showing the device name, the user, the agent that loads the skill, the installation scope, and when it was last seen. Use the toggle to group installations **By content hash** or view **All devices**.

When more than one content hash exists, the panel warns that the skill is not identical on every device, meaning some devices have a different copy. Compare the variants to decide which one to keep.

### Use Cases

The Agent Skills inventory allows you to:

* Discover which AI agent skills are in use across your organization
* Identify skills that contain executable code, hooks, or shell commands
* Trace a managed skill back to its source repository
* Detect content variation when devices report different content hashes for the same skill
* Investigate unmanaged, hand-written skills that were not installed through a package manager


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.stepsecurity.io/developer-machines/ide-and-ai-agents/agent-skills.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
