SKILLS SKILLS SKILLS SKILLS SKILLS

THE UNIVERSAL AGENT SKILLS LIBRARY

Skills are reusable capabilities for AI agents. Install them with a single command, then load them into any framework to enhance your agents with carefully prompt-engineered procedural knowledge.

TRY IT NOW
$ npm install universal-agent-skills
AVAILABLE FOR THESE AGENTS
SKILLS LEADERBOARD
# SKILL CATEGORY
1 ux-expert-rakibulism rakibulism/agent-skills-os Review UI screens, dashboards, modals, tables, and flows as a UX expert speaking in "rakibulism" — Rakibul's curated professional communication style for cli... DES
HOW IT WORKS

Three steps to ship

01

Pick a skill

Use the bundled ux-expert-rakibulism skill, or author your own by dropping a SKILL.md into the skills directory.

02

Call an adapter

One function per framework returns exactly the object that runtime wants — system prompt, instructions, template, or backstory.

03

Ship it

Hand the result to your agent. No build step, no lock-in — the same skill works everywhere.

WORKS WITH YOUR STACK

One skill, every framework

import Anthropic from "@anthropic-ai/sdk";
import { forClaude } from "universal-agent-skills";

const anthropic = new Anthropic();
const { system } = forClaude("ux-expert-rakibulism");

const msg = await anthropic.messages.create({
  model: "claude-opus-4-7",
  max_tokens: 4096,
  system,
  messages: [{ role: "user", content: "Review this dashboard screen:\n\n" + designDescription }],
});
import OpenAI from "openai";
import { forOpenAI } from "universal-agent-skills";

const openai = new OpenAI();
const assistant = await openai.beta.assistants.create({
  model: "gpt-4o",
  ...forOpenAI("ux-expert-rakibulism"),
});
import { PromptTemplate } from "@langchain/core/prompts";
import { forLangChain } from "universal-agent-skills";

const skill = forLangChain("ux-expert-rakibulism");
const prompt = PromptTemplate.fromTemplate(skill.template);
const formatted = await prompt.format({
  design: "...",
  format: "pinned comments",
});
# The markdown skills are framework-neutral.
# After npm install, read the file directly:
#   node_modules/universal-agent-skills/skills/<name>/SKILL.md
# Strip the frontmatter and use the body as your backstory.

from crewai import Agent

agent = Agent(
    role="UX Reviewer",
    goal="Review UI screens in the rakibulism voice",
    backstory=open("…/skills/ux-expert-rakibulism/SKILL.md").read(),
)
# Generate a JSON catalog from Node, hand it to Python:
#   node -e "import('universal-agent-skills').then(...)"

import json
from autogen import AssistantAgent

skills = { s["name"]: s for s in json.load(open("skills.json")) }

agent = AssistantAgent(
    name="ux-expert-rakibulism",
    system_message=skills["ux-expert-rakibulism"]["instructions"],
)
MOVE LIST

A small, predictable API

LOAD

loadAllSkills(): Skill[]
getSkill(name): Skill
listSkills(): SkillSummary[]
asSystemPrompt(name): string

FRAMEWORK ADAPTERS

forClaude(name):    { system, metadata }
forOpenAI(name):    { name, description, instructions }
forLangChain(name): { template, inputVariables }
forCrewAI(name):    { role, goal, backstory }
forAutoGen(name):   { name, system_message }
forGeneric(name):   { name, description, version, … }
BUILD YOUR OWN

Author a skill

A skill is a directory containing a single SKILL.md. Drop it into skills/ and loadAllSkills() picks it up — no registration step.

  • Lead with intent. The first paragraph says when to apply the skill.
  • Process before output. How to think, not just what to emit.
  • Specify output shape. Models drift without a target format.
  • Name failure modes. "What to avoid" prevents common errors.
  • Concrete over abstract. Examples beat advice.
---
name: my-skill
description: One sentence on when to use
  this skill and what it produces.
version: 0.1.0
tags: [domain, capability]
inputs:
  - name: input_name
    description: What this input is.
    required: true
---

# Body

The system-prompt content. Be specific
about process, output format, and what
to avoid.

Give your agent a skill in one line.

$ npm install universal-agent-skills
Copied to clipboard