> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edgeimpulse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Agent Skills

> Install Agent Skills from the Edge Impulse agent-tools repository to give AI coding agents persistent knowledge of the Edge Impulse platform, APIs, and deployment workflows.

AI coding agents can write scripts, automate data pipelines, trigger training jobs, and export deployments with the Edge Impulse Studio API. They can also:

* Upload and relabel training data without touching the UI
* Trigger and monitor training jobs from the command line
* Export deployment artifacts (C++ library, Arduino, TFLite, and others)
* Query project metadata, sample lists, and job status
* Write bulk automation scripts for repetitive tasks like relabelling or batch uploads

[Agent Skills](https://agentskills.io/home) give an agent this knowledge persistently. Edge Impulse maintains ready-made skills in its `agent-tools` repository that any agent supporting the [Agent Skills specification](https://agentskills.io/specification) can load — the skill content is the same regardless of the agent; only the install path differs.

<Tip>
  Ready to see it in action? The [Motion recognition using an agent](/tutorials/end-to-end/motion-recognition-using-agent) end-to-end tutorial walks you through a complete Edge Impulse project workflow — from data upload and model training/testing, to deployment onto a device — using only natural language commands.
</Tip>

<Frame caption="Claude Code using an Edge Impulse skill to download and run the latest deployment">
  <img src="https://mintcdn.com/edgeimpulse/YEcaqTjv-qYGYNlP/.assets/images/ai-agents/download-deployment.png?fit=max&auto=format&n=YEcaqTjv-qYGYNlP&q=85&s=8075bde00595bbcaae57774f75691780" alt="Claude Code terminal session using an Edge Impulse skill to interact with an Edge Impulse project" width="1648" height="1034" data-path=".assets/images/ai-agents/download-deployment.png" />
</Frame>

## Install from the agent-tools repository

The [edgeimpulse/agent-tools](https://github.com/edgeimpulse/agent-tools) repository is a catalog of Edge Impulse tools ready for installation and use in your agentic workflows. Its skills are reusable building blocks that help agents interact with Edge Impulse data, projects, deployments, and workflows — covering the Edge Impulse APIs, CLIs, and SDKs, along with deployment-focused [companion skills](/tutorials/topics/ai-agents/create-a-companion-skill) for common hardware targets. Skills are versioned and maintained by Edge Impulse, and grouped by maturity: stable skills (backwards compatibility expected) and experimental skills (may change or be removed). The repository's README always reflects the current contents.

The recommended way to install and manage skills is the [`skills`](https://www.npmjs.com/package/skills) npm package developed by [Vercel](https://github.com/vercel-labs). It detects which agents you have installed and copies each skill to the right location.

List all available skills:

```bash theme={"system"}
npx skills add edgeimpulse/agent-tools --list
```

Install skills interactively — pick the skills and agents from a menu:

```bash theme={"system"}
npx skills add edgeimpulse/agent-tools
```

Install a specific skill:

```bash theme={"system"}
npx skills add edgeimpulse/agent-tools --skill <skill-name>
```

Remove a skill:

```bash theme={"system"}
npx skills remove <skill-name>
```

<Info>
  Skills are semantically versioned, and versions are bumped automatically when changes land in the repository — re-run the install command at any time to pick up the latest revision. To report a bug, file an issue in the [agent-tools repository](https://github.com/edgeimpulse/agent-tools/issues); to propose a new skill or improvements to an existing one, open a pull request following the repository's [contribution guidelines](https://github.com/edgeimpulse/agent-tools/blob/main/CONTRIBUTING.md).
</Info>

## Use the skills

### Set your credentials

Set environment variables so your agent never needs to ask for credentials:

```bash theme={"system"}
export EI_API_KEY="ei_..."
export EI_PROJECT_ID="12345"
```

Find your [API key](/studio/projects/dashboard/api-keys) under **Dashboard → Keys** and your [project ID](/studio/projects/dashboard#6-project-info) under **Project Info** in Edge Impulse Studio.

### Prompt the agent

Ask your agent to work with your Edge Impulse project. The agent loads a skill automatically when your prompt matches its description, or you can invoke a skill explicitly by name (with a slash command in Claude Code, for example):

<Prompt description={`List all training samples labeled &quot;unknown&quot; in my Edge Impulse project and delete them`}>
  List all training samples labeled "unknown" in my Edge Impulse project and delete them
</Prompt>

<Prompt description={`Upload every .wav file in ./data to my Edge Impulse project as testing samples with label &quot;noise&quot;`}>
  Upload every .wav file in ./data to my Edge Impulse project as testing samples with label "noise"
</Prompt>

<Prompt description="Start a training job for my Edge Impulse project and wait for it to finish, then show accuracy">
  Start a training job for my Edge Impulse project and wait for it to finish, then show accuracy
</Prompt>

<Prompt description="Export a C++ library deployment from my Edge Impulse project and save it to ./build">
  Export a C++ library deployment from my Edge Impulse project and save it to ./build
</Prompt>

To see a selection of example prompts, take a look at our [Prompt library](/tutorials/topics/ai-agents/prompt-library).

<Frame caption="Claude Code running an Edge Impulse skill">
  <img src="https://mintcdn.com/edgeimpulse/YEcaqTjv-qYGYNlP/.assets/images/ai-agents/claude-ei.png?fit=max&auto=format&n=YEcaqTjv-qYGYNlP&q=85&s=7b6bad1a9eec84f1898f08cddcad2c01" alt="Claude Code terminal session using an Edge Impulse skill to interact with an Edge Impulse project" width="1638" height="730" data-path=".assets/images/ai-agents/claude-ei.png" />
</Frame>

## Customize an installed skill

An installed skill is just a markdown file on disk (for Claude Code, `.claude/skills/<skill-name>/SKILL.md` in your project or `~/.claude/skills/<skill-name>/SKILL.md` globally). Anything you add to it becomes part of the agent's persistent context for every future session. If you find yourself making the same API calls repeatedly — listing samples, checking job status, fetching project info — ask the agent to add those patterns directly to the skill file so it can handle them faster next time:

<Prompt description="Read the installed Edge Impulse skill and add a section at the bottom with a ready-made Python snippet for listing all training samples grouped by label, since I use this at the start of every session.">
  Read the installed Edge Impulse skill and add a section at the bottom with a ready-made Python snippet for listing all training samples grouped by label, since I use this at the start of every session.
</Prompt>

<Prompt description="Look at my last few Edge Impulse prompts and update the installed Edge Impulse skill with any patterns I use frequently that aren't already covered.">
  Look at my last few Edge Impulse prompts and update the installed Edge Impulse skill with any patterns I use frequently that aren't already covered.
</Prompt>

<Info>
  Re-installing a skill from the agent-tools repository overwrites the local file, so keep heavy project-specific customizations in a separate [companion skill](/tutorials/topics/ai-agents/create-a-companion-skill) or a project context file such as [`AGENTS.md`](/tutorials/topics/ai-agents/create-a-companion-skill#add-project-context-with-agents-md) if you want to keep pulling skill updates.
</Info>

## Write your own skill

An Agent Skill is a markdown file with required `name` and `description` fields in YAML frontmatter, followed by the instructions the agent loads on demand:

```markdown SKILL.md theme={"system"}
---
name: my-edge-impulse-skill
description: When the agent should load this skill — the agent matches your prompts against this text.
---

Instructions, API patterns, and project context the agent follows when the skill is active.
```

The skills in the [agent-tools repository](https://github.com/edgeimpulse/agent-tools) follow this exact format — browse them for real-world examples to learn from or adapt.

Save your skill to one of the paths below. Skills can be installed globally (available across all projects) or per project. Refer to your agent's documentation if you use a tool not listed here.

| Agent                                                                                                                             | Global (all projects)                                                                 | Per project                            |
| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------- |
| [Claude Code](https://code.claude.com/docs/en/skills)                                                                             | `~/.claude/skills/<skill-name>/SKILL.md`                                              | `.claude/skills/<skill-name>/SKILL.md` |
| [OpenAI Codex](https://developers.openai.com/codex/skills)                                                                        | `~/.agents/skills/<skill-name>/SKILL.md`                                              | `.agents/skills/<skill-name>/SKILL.md` |
| [GitHub Copilot](https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills) | `~/.copilot/skills/<skill-name>/SKILL.md` or `~/.agents/skills/<skill-name>/SKILL.md` | `.github/skills/<skill-name>/SKILL.md` |
| [Antigravity (previously Gemini CLI)](https://antigravity.google/docs/skills)                                                     | `~/.gemini/skills/<skill-name>/SKILL.md`                                              | `.agents/skills/<skill-name>/SKILL.md` |

<Tip>
  [Keep `SKILL.md` under 500 lines.](https://code.claude.com/docs/en/skills#add-supporting-files) Move detailed reference material — long endpoint tables, full request/response examples, language-specific snippets — into separate files in the skill directory (such as `reference.md` or `examples.md`) and link to them from `SKILL.md`. Supporting files load only when the agent decides it needs them, so the main skill stays focused and cheap to load. Prefer several focused skills over one large one, so each loads less context and triggers more precisely.
</Tip>

## Tips

* **Ask for error handling.** The Edge Impulse API returns `{ "success": false, "error": "..." }` on failure. Ask the agent to check this field in every response.
* **Reference the OpenAPI spec for edge cases.** For endpoints not covered by a skill, direct the agent to `https://studio.edgeimpulse.com/openapi.yml` for the full schema.

## API key security

Agents make it easy to accidentally spread credentials around — into prompts, generated scripts, transcripts, and commits. A few rules keep your Edge Impulse API keys safe:

* **Keep keys in environment variables**, as shown in [Set your credentials](#set-your-credentials). Never paste an API key into a prompt, and never ask the agent to hard-code one into a script — prompts and generated code end up in session transcripts, shell history, and version control.
* **Keep keys out of files that get committed or shared.** Skill files, `AGENTS.md`/`CLAUDE.md`, and generated scripts are meant to be committed and shared with your team — have them reference `EI_API_KEY` rather than a literal `ei_...` value. If you keep keys in a local `.env` file, add it to `.gitignore`.
* **Scope keys as narrowly as possible.** Use a project [API key](/studio/projects/dashboard/api-keys) rather than an organization key when the agent only needs one project, and prefer a development project over production while you are experimenting with a new agent or skill.
* **Rotate keys that may have leaked.** If a key ends up in a transcript, log, or commit, revoke it under **Dashboard → Keys** in Edge Impulse Studio and create a new one — treat any exposed key as compromised.
* **Review what the agent runs.** The key should only ever be sent in the `x-api-key` header to Edge Impulse endpoints. If a generated script sends it anywhere else, stop and check before running it.

## Next steps

* Follow the [end-to-end Motion recognition tutorial](/tutorials/end-to-end/motion-recognition-using-agent) to take a project from data collection through deployment using only natural language commands
* [Create a companion skill](/tutorials/topics/ai-agents/create-a-companion-skill) for your target hardware so the agent can write application code alongside the API calls
* Browse the [prompt library](/tutorials/topics/ai-agents/prompt-library) for ready-to-use prompts covering every stage of an Edge Impulse project
* Browse [Studio API endpoints](/apis/studio) for the full endpoint reference
