Skip to content
Docs

How to add skills to your eve agent

Add skills to an eve agent by creating a file under agent/skills/ or installing a published skill with the npx skills add CLI.

4 min read
Last updated June 19, 2026

Skills give an eve agent focused instructions that it loads only when a task calls for them, so the agent gets relevant guidance without carrying it in every prompt. eve loads any skill you place under agent/skills/, and because eve follows the open Agent Skills standard, a skill written for that standard works in eve without changes. You can add a skill in two ways: write the file yourself, or install a published skill with the skills CLI.

This guide walks you through both approaches and then shows you how to confirm that your agent loads the skill for the right requests.

Before you begin, you need an eve project and Node.js installed.

  • To create a new project, run npx eve@latest init my-agent.
  • To add eve to an existing app, follow the quickstart steps

eve scans the files under agent/skills/ at build time and advertises each skill's description to the model, alongside a built-in load_skill tool. When a request matches a skill's description, or you name the skill directly, the model calls load_skill and eve adds that skill's markdown to the current turn. Loading a skill adds instructions, not new tools, so your agent's tools remain available whether or not a skill is loaded.

The smallest skill is a single markdown file under agent/skills/. Its name comes from the file path, and its content is the procedure the agent follows.

Create agent/skills/plan_a_trip.md:

agent/skills/plan_a_trip.md
Use when the user wants to plan a trip or build an itinerary.
Gather the destination, dates, and budget first, then propose a day-by-day plan.

When a flat markdown file has no description frontmatter, eve advertises its first non-empty line as the routing hint. To route on intent reliably, add a description rather than relying on the first line.

For a skill that needs supporting files, create a directory with a SKILL.md and sibling files. The packaged SKILL.md must include a description in its frontmatter so eve knows when to load it:

agent/skills/research/SKILL.md
---
description: Research unfamiliar topics before answering with confidence.
---
When the task is novel or ambiguous, gather evidence first, then answer with the key facts and the remaining uncertainty.

Place supporting files (references/, assets/, and scripts/) next to the SKILL.md. eve picks up the skill at build time, with no registration step required.

When markdown can't capture what you need, such as typed values or generated content, author the skill in TypeScript with defineSkill from eve/skills. eve generates the SKILL.md from the object you export, and each files entry becomes a sibling in the package:

agent/skills/research.ts
import { defineSkill } from "eve/skills";
export default defineSkill({
description: "Research unfamiliar topics before answering with confidence.",
markdown:
"When the task is novel or ambiguous, gather evidence first, then answer with the key facts and the remaining uncertainty.",
files: {
"references/checklist.md": "# Checklist\n\n- Find primary sources.\n",
},
});

Start with plain markdown and move to defineSkill only when you hit its limits.

The skills CLI installs skills from a GitHub repository into your project. Run it from your eve project's root directory:

Terminal
npx skills add <owner>/<repo>

For example, to install Vercel's official skill collection:

Terminal
npx skills add vercel-labs/agent-skills

The skills CLI detects when you run this inside an eve project and prompts you to install the skills for eve before writing any files:

Detected an eve project. Install skills for eve?
ā— Yes / ā—‹ No

Select Yes to add the skills to your eve agent. The model can load them on the next run, the same way it loads skills you write by hand.

Start your agent and send a request that matches the skill's description. The init command starts the dev server for you when you scaffold a project; otherwise, use the dev script from your project's README. When a request matches, the model calls load_skill and follows the skill's instructions.

To see which skills loaded, along with tools, timing, and token usage, open Agent Runs in the Vercel dashboard.

Was this helpful?

supported.