Back to Omniroute

OmniRoute Agent Skills Catalog

docs/frameworks/AGENT-SKILLS.md

3.8.4911.9 KB
Original Source

OmniRoute Agent Skills Catalog

Source of truth: src/lib/agentSkills/ (catalog, generator, parsers) + skills/ directory (SKILL.md files) Last updated: 2026-08-02 — v3.8.50

Agent Skills are structured SKILL.md files that teach external agents, MCP clients, and A2A orchestrators how to use OmniRoute's REST API and CLI. Unlike Omni Skills (which are LLM tool definitions executed inside OmniRoute), Agent Skills are a documentation catalog — static markdown that can be fed directly into agent context.


Overview

The catalog contains 45 Agent Skills (23 REST API + 21 CLI + 1 configuration workflow). Each skill has:

  • A canonical ID (omni-auth, cli-serve, etc.)
  • A SKILL.md file in skills/{id}/SKILL.md with YAML frontmatter (name, description) + rich markdown body
  • REST endpoints (API skills) or CLI subcommands (CLI skills) derived from the OpenAPI spec and CLI registry
  • A GitHub raw URL for live fetch: https://raw.githubusercontent.com/diegosouzapw/OmniRoute/refs/heads/main/skills/{id}/SKILL.md

Architecture

src/shared/constants/agentSkills.ts    — 45-entry curated list (name/desc/category/area/icon)
src/lib/agentSkills/
  catalog.ts                           — getCatalog(), getSkillById(), filterCatalog(), computeCoverage()
  generator.ts                         — generateAgentSkills() writes SKILL.md to skills/{id}/
  openapiParser.ts                     — extracts REST endpoints from docs/openapi.yaml
  cliRegistryParser.ts                 — extracts CLI subcommands from bin/cli-registry.ts
  schemas.ts                           — Zod schemas: AgentSkillSchema, SkillCoverageSchema, etc.
  types.ts                             — TypeScript interfaces: AgentSkill, SkillCoverage, etc.

skills/{id}/SKILL.md                   — Generated + curated markdown files (45 total)

src/app/api/agent-skills/
  route.ts                             — GET /api/agent-skills
  [id]/route.ts                        — GET /api/agent-skills/{id}
  [id]/raw/route.ts                    — GET /api/agent-skills/{id}/raw (text/markdown)
  coverage/route.ts                    — GET /api/agent-skills/coverage
  generate/route.ts                    — POST /api/agent-skills/generate (auth required)

open-sse/mcp-server/tools/agentSkillTools.ts  — 3 MCP tools (list, get, coverage)
src/lib/a2a/skills/listCapabilities.ts        — A2A skill: list-capabilities

SKILL.md Format

markdown
---
name: omni-providers
description: "Manage provider connections: add, test, rotate, and remove credentials."
---

<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->

## Overview

...

## Authentication

...

## Endpoints

...

<!-- skill:custom-start -->

## Custom Section (preserved across regeneration)

...

<!-- skill:custom-end -->

The generator preserves content between <!-- skill:custom-start --> and <!-- skill:custom-end --> on regeneration. Ten skills have curated custom blocks:

omni-mcp, omni-compression, cli-providers, cli-eval, omni-agents-a2a, omni-combos-routing, omni-auth, omni-resilience, omni-inference, cli-serve.


REST API Discovery

EndpointMethodDescriptionAuth
/api/agent-skillsGETList catalog (optional ?category=api|cli|config&area=<area>)none
/api/agent-skills/{id}GETGet single skill metadatanone
/api/agent-skills/{id}/rawGETFetch SKILL.md as text/markdownnone
/api/agent-skills/coverageGETCoverage stats (how many SKILL.md files exist)none
/api/agent-skills/generatePOSTTrigger generator (dryRun/prune/onlyIds)management

Example — list all API skills:

bash
curl "http://localhost:20128/api/agent-skills?category=api"

Example — fetch a single SKILL.md:

bash
curl -H "Accept: text/markdown" "http://localhost:20128/api/agent-skills/omni-providers/raw"

MCP Discovery

Three MCP tools are registered under scope read:catalog:

ToolDescription
omniroute_agent_skills_listList skills (optional category / area filters)
omniroute_agent_skills_getGet metadata + SKILL.md for one skill by id
omniroute_agent_skills_coverageCoverage stats (API/CLI have/total)

See MCP-SERVER.md for scope wiring and authentication.


A2A Discovery

The A2A skill list-capabilities returns the full 45-skill catalog as a markdown table artifact. External orchestrators can invoke it via:

json
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "message/send",
  "params": {
    "skill": "list-capabilities",
    "messages": [{ "role": "user", "content": "List all capabilities" }]
  }
}

See A2A-SERVER.md for protocol details.


Catalog — 45 Skill IDs

API Skills (23)

IDAreaEntry Point
omni-authauthAuth + session management
omni-providersprovidersProvider connection management
omni-modelsmodelsModel catalog and capabilities
omni-combos-routingcombos-routingCombo routing strategies
omni-api-keysapi-keysAPI key management
omni-usage-logsusage-logsUsage and cost logs
omni-budgetbudgetBudget guards
omni-settingssettingsGlobal settings
omni-proxiesproxiesProxy pool management
omni-cachecacheSemantic + prompt cache
omni-compressioncompressionContext compression engines
omni-context-rtkcontext-rtkRTK compression
omni-resilienceresilienceCircuit breakers + cooldowns
omni-cli-toolscli-toolsCLI tools REST proxy
omni-tunnelstunnelsTunnel management
omni-sync-cloudsync-cloudCloud sync
omni-db-backupsdb-backupsDatabase backups
omni-webhookswebhooksWebhook event dispatcher
omni-mcpmcpMCP server (107 tools, 3 transports)
omni-agents-a2aagents-a2aA2A agent protocol
omni-version-managerversion-managerVersion and update management
omni-inferenceinferenceDirect inference / completions

CLI Skills (21)

IDAreaCLI Command Root
cli-servecli-serveomniroute serve
cli-healthcli-healthomniroute health
cli-providerscli-providersomniroute providers
cli-keyscli-keysomniroute keys
cli-modelscli-modelsomniroute models
cli-chatcli-chatomniroute chat
cli-routingcli-routingomniroute routing
cli-resiliencecli-resilienceomniroute resilience
cli-compressioncli-compressionomniroute compression
cli-contextscli-contextsomniroute contexts
cli-cost-usagecli-cost-usageomniroute cost
cli-mcpcli-mcpomniroute mcp
cli-a2acli-a2aomniroute a2a
cli-tunnelcli-tunnelomniroute tunnel
cli-backup-synccli-backup-syncomniroute backup
cli-policy-auditcli-policy-auditomniroute policy
cli-batchescli-batchesomniroute batch
cli-evalcli-evalomniroute eval
cli-plugins-skillscli-plugins-skillsomniroute plugins
cli-setupcli-setupomniroute setup
cli-skill-collectorcli-setupomniroute skills

Configuration workflow (1)

IDAreaEntry Point
config-codex-cliconfig-codex-cliCodex CLI configuration workflow

How External Agents Consume Skills

1. Discovery via REST

bash
# Get the full catalog
curl "http://your-omniroute/api/agent-skills" | jq '.skills[] | {id, name, category}'

# Get SKILL.md for context injection
curl "http://your-omniroute/api/agent-skills/omni-providers/raw" > omni-providers.md

2. Discovery via MCP

typescript
// In a Claude Desktop / Cursor MCP client:
const result = await client.callTool("omniroute_agent_skills_list", { category: "api" });
// result.skills → array of AgentSkill with rawUrl for each

3. Discovery via A2A

python
import requests

resp = requests.post("http://your-omniroute/a2a", json={
    "jsonrpc": "2.0", "id": "1",
    "method": "message/send",
    "params": {"skill": "list-capabilities", "messages": [{"role": "user", "content": "list"}]}
})
table = resp.json()["result"]["artifacts"][0]["content"]
# table is a markdown table with all 45 skill IDs + rawUrl columns

4. Direct GitHub raw fetch (no server required)

bash
BASE="https://raw.githubusercontent.com/diegosouzapw/OmniRoute/refs/heads/main/skills"
curl "${BASE}/omni-providers/SKILL.md"

Generator

The generator reads the curated catalog + OpenAPI spec + CLI registry and writes skills/{id}/SKILL.md for each entry:

bash
# Preview (dry run, no writes)
curl -X POST http://localhost:20128/api/agent-skills/generate \
  -H "Authorization: Bearer <admin-key>" \
  -H "Content-Type: application/json" \
  -d '{"dryRun":true}'

# Full regeneration
curl -X POST http://localhost:20128/api/agent-skills/generate \
  -H "Authorization: Bearer <admin-key>" \
  -H "Content-Type: application/json" \
  -d '{"dryRun":false,"prune":false}'

# Regenerate specific IDs
curl -X POST http://localhost:20128/api/agent-skills/generate \
  -H "Authorization: Bearer <admin-key>" \
  -H "Content-Type: application/json" \
  -d '{"dryRun":false,"onlyIds":["omni-providers","cli-serve"]}'

The generator response is a GeneratorReport:

json
{
  "generated": ["omni-providers", "cli-serve"],
  "unchanged": [],
  "pruned": [],
  "orphansDetected": [],
  "errors": []
}

Coverage API

bash
curl "http://localhost:20128/api/agent-skills/coverage"
json
{
  "api": { "have": 23, "total": 23 },
  "cli": { "have": 21, "total": 21 },
  "config": { "have": 1, "total": 1 },
  "totalSkills": 45,
  "generatedAt": "2026-08-02T00:00:00.000Z"
}

  • SKILLS.md — Omni Skills framework (LLM tool injection + marketplace)
  • MCP-SERVER.md — MCP tool catalog (omniroute_agent_skills_* tools)
  • A2A-SERVER.md — A2A protocol (list-capabilities skill)
  • src/lib/agentSkills/ — catalog, generator, parsers
  • skills/ — generated SKILL.md files (45 entries)