Skills
ARES supports SKILL.md file discovery and loading via the skills feature flag, powered by thulp-skill-files.
Feature Flag
[dependencies]
ares-server = { version = "0.7", features = ["skills"] }
Configuration
Configure skill directories in your ares.toml:
[skills]
project_dir = "./.claude/skills/"
personal_dir = "~/.claude/skills/"
plugin_dirs = ["./plugins/my-plugin/skills"]
API
List Skills
GET /api/skills
Returns all discovered skills with scope-based priority (project > personal > enterprise > plugin).
Get Skill
GET /api/skills/{name}
Returns a single skill by qualified name, including full body content.
Library Usage
Skills are also available as a library API for direct Rust usage:
#![allow(unused)] fn main() { use ares::skills::{SkillsConfig, load_skills, list_skills, get_skill}; let config = SkillsConfig { project_dir: Some("./.claude/skills/".into()), personal_dir: Some("~/.claude/skills/".into()), ..Default::default() }; // Load all skills let skills = load_skills(&config); // List summaries (name, description, scope) let summaries = list_skills(&config); // Get specific skill let skill = get_skill(&config, "my-skill"); }
Skill File Format
Skills are SKILL.md files with YAML frontmatter:
---
name: my-skill
description: What this skill does
---
# My Skill
Instructions for the AI agent...
Scope Priority
When multiple skills share the same name, scope priority determines which wins:
- Project —
./.claude/skills/(highest priority) - Personal —
~/.claude/skills/ - Enterprise — organization-wide skills
- Plugin — from plugin directories (lowest priority)