[{"data":1,"prerenderedAt":1169},["ShallowReactive",2],{"post-ai-skills-what-they-do-how-to-install-en":3,"surround-/en/blog/ai-skills-what-they-do-how-to-install-en":1159,"post-translations-21":1164},{"id":4,"title":5,"body":6,"canonical_id":1143,"category":1144,"date_created":1145,"date_updated":1145,"description":1146,"extension":702,"head":1147,"image":1148,"lang":1149,"layout":1150,"meta":1151,"navigation":752,"ogImage":1147,"path":1152,"reading_time":767,"robots":1147,"schemaOrg":1147,"seo":1153,"sitemap":1155,"stem":1157,"__hash__":1158},"blog/en/blog/21.ai-skills-what-they-do-how-to-install.md","AI Skills: What Are They and How Do You Install Them?",{"type":7,"value":8,"toc":1120},"minimark",[9,18,21,24,31,36,63,80,83,102,105,115,118,125,140,148,152,155,221,228,236,239,245,248,252,258,261,278,287,290,293,315,318,322,325,328,331,357,360,364,370,386,391,398,401,404,409,412,416,419,422,426,431,434,454,457,461,464,470,474,477,484,487,513,520,543,549,552,556,559,562,627,634,637,641,644,647,655,658,663,666,673,676,680,683,686,689,695,698,951,959,962,969,973,976,983,986,1003,1006,1010,1013,1029,1032,1052,1055,1058,1062,1065,1068,1088,1091,1103,1106,1110,1116],[10,11,12,13,17],"p",{},"Over the past few months, I have been seeing more and more ",[14,15,16],"strong",{},"Skills for AI agents"," on LinkedIn, X, and GitHub. One Skill for writing feature specs, another for adding animations to an interface, another for preparing a marketing campaign, and so on.",[10,19,20],{},"In this article, I will explain what AI Skills really are, where to find them, and how to review and install them. We will also create a simple first Skill before looking at a problem I am already facing: managing them across several AI tools.",[10,22,23],{},"We will discuss their limitations too. The language surrounding these releases often promises a lot: install a few Skills, and Claude, Codex, or Cursor will immediately become better across a wide range of domains. The reality is more nuanced.",[10,25,26,27,30],{},"A Skill does not modify the model or suddenly teach it a new discipline. It gives the model ",[14,28,29],{},"a method, instructions, and sometimes additional resources"," that it can load when a request matches. Some Skills are very useful. Others amount to little more than a well-presented prompt. Installing them without reading them means trusting unknown instructions to an agent that may be able to access your files and run commands.",[32,33,35],"h2",{"id":34},"an-ai-skill-is-a-folder-the-agent-knows-how-to-load","An AI Skill is a folder the agent knows how to load",[37,38,42,43],"div",{"className":39},[40,41],"text-center","mx-auto","\n  ",[44,45,46,47,46,52,46,56,42],"picture",{},"\n    ",[48,49],"source",{"srcSet":50,"type":51},"/img/blog/illustration/agent-skills-progressive-loading.avif","image/avif",[48,53],{"srcSet":54,"type":55},"/img/blog/illustration/agent-skills-progressive-loading.webp","image/webp",[57,58],"img",{"src":59,"alt":60,"loading":61,"className":62},"/img/blog/illustration/agent-skills-progressive-loading.jpg","Illustration of progressive Agent Skill loading, from metadata discovery to using scripts and references","lazy",[41],[10,64,65,66,74,75,79],{},"The public ",[67,68,73],"a",{"href":69,"rel":70,"target":72},"https://agentskills.io/home",[71],"nofollow","\\_blank","Agent Skills"," format defines a Skill as a folder containing at least one ",[76,77,78],"code",{},"SKILL.md"," file.",[10,81,82],{},"This file describes:",[84,85,86,90,93,96,99],"ul",{},[87,88,89],"li",{},"the name of the Skill;",[87,91,92],{},"the situations in which it should be used;",[87,94,95],{},"the instructions the agent should follow;",[87,97,98],{},"the expected output format;",[87,100,101],{},"the limitations and mistakes to avoid.",[10,103,104],{},"The folder can also contain scripts, examples, documentation, and other resources:",[106,107,113],"pre",{"className":108,"code":110,"language":111,"meta":112},[109],"language-text","my-skill/\n├── SKILL.md\n├── scripts/\n├── references/\n└── assets/\n","text","",[76,114,110],{"__ignoreMap":112},[10,116,117],{},"A presentation Skill might include a storytelling method, slide templates, and a generation script. A Nuxt Skill can remind the agent of framework conventions, identify files to inspect, and provide examples for a specific version.",[10,119,120,121,124],{},"The important point is that the agent does not necessarily load all this content into every conversation. The format relies on ",[14,122,123],{},"progressive disclosure",":",[126,127,128,131,137],"ol",{},[87,129,130],{},"the agent first discovers the Skill's name and description;",[87,132,133,134,136],{},"it loads the contents of ",[76,135,78],{}," when the request appears to match;",[87,138,139],{},"it consults additional scripts or resources only when they become useful.",[10,141,142,143,147],{},"This approach keeps the agent general-purpose without filling its context with every possible method. I already described this mechanism in ",[67,144,146],{"href":145},"/en/blog/context-engineering-ai-agents","my context engineering method for AI agents",": Skills are part of the dynamic context loaded on demand.",[32,149,151],{"id":150},"a-skill-is-neither-a-prompt-nor-mcp","A Skill is neither a prompt nor MCP",[10,153,154],{},"The confusion is understandable because each mechanism can influence an agent's behavior.",[156,157,158,171],"table",{},[159,160,161],"thead",{},[162,163,164,168],"tr",{},[165,166,167],"th",{},"Element",[165,169,170],{},"What it provides",[172,173,174,185,201,211],"tbody",{},[162,175,176,182],{},[177,178,179],"td",{},[14,180,181],{},"Prompt",[177,183,184],{},"An instruction for the current request",[162,186,187,198],{},[177,188,189],{},[14,190,191,194,195],{},[76,192,193],{},"AGENTS.md"," or ",[76,196,197],{},"CLAUDE.md",[177,199,200],{},"Durable rules for a project",[162,202,203,208],{},[177,204,205],{},[14,206,207],{},"Skill",[177,209,210],{},"A specialized method the agent loads when it becomes relevant",[162,212,213,218],{},[177,214,215],{},[14,216,217],{},"Tool or MCP",[177,219,220],{},"Access to data, an API, or an external action",[10,222,223,224,227],{},"A prompt can ask the agent to review a spec. A Skill can teach it ",[14,225,226],{},"how to conduct that review",", which edge cases to look for, and how to structure its report.",[10,229,230,231,235],{},"An MCP server can give it access to GitHub, a database, or an SEO tool. The Skill can then explain which capabilities to use, in what order, and how to interpret their results. My page about ",[67,232,234],{"href":233},"/en/services/product-engineering/mcp-server","MCP server development for SaaS products"," explains what this standard makes possible.",[10,237,238],{},"One sentence captures the difference:",[240,241,242],"blockquote",{},[10,243,244],{},"A tool gives the agent the ability to act. A Skill gives it a way of working.",[10,246,247],{},"However, a Skill can also contain scripts. It should not be treated as a harmless document with no potential consequences.",[32,249,251],{"id":250},"why-are-so-many-skills-being-published","Why are so many Skills being published?",[10,253,254,255,257],{},"A method stored inside a conversation remains trapped in that conversation. A ",[76,256,78],{}," file can be reviewed, corrected, version-controlled with Git, and shared with other people.",[10,259,260],{},"The format therefore appeals to several groups:",[84,262,263,266,269,272,275],{},[87,264,265],{},"vendors that want to explain how an agent should use their product;",[87,267,268],{},"developers publishing a specialized method;",[87,270,271],{},"teams that want to share the same workflows;",[87,273,274],{},"users who want to extend their agents without rewriting instructions;",[87,276,277],{},"creators who collect several Skills in one repository.",[10,279,280,281,286],{},"This portability explains the rise of directories such as ",[67,282,285],{"href":283,"rel":284,"target":72},"https://skills.sh/",[71],"skills.sh",", specialized GitHub repositories, and many community-maintained lists.",[10,288,289],{},"Portability does not guarantee that a Skill will be compatible with every agent. The core format may be shared, but a Skill can still depend on a tool, command, path, or feature specific to Claude Code, Codex, or Cursor.",[10,291,292],{},"I therefore distinguish three levels:",[126,294,295,303,309],{},[87,296,297,300,301,79],{},[14,298,299],{},"The format is compatible",": the agent can discover and read the ",[76,302,78],{},[87,304,305,308],{},[14,306,307],{},"The instructions are portable",": they do not depend on behavior specific to one tool.",[87,310,311,314],{},[14,312,313],{},"The Skill actually works",": its scripts, tools, and dependencies are available in your environment.",[10,316,317],{},"Seeing several agent logos on a page does not replace this verification.",[32,319,321],{"id":320},"where-can-you-find-ai-skills","Where can you find AI Skills?",[10,323,324],{},"I always start with the source closest to the subject.",[10,326,327],{},"For a framework or product, I first look for a Skill published by its vendor or team. For a more general method, I review the author's profile, GitHub repository, and other projects they maintain.",[10,329,330],{},"The main sources today are:",[84,332,333,336,345,351,354],{},[87,334,335],{},"official product and framework repositories;",[87,337,338,339,344],{},"the ",[67,340,343],{"href":341,"rel":342,"target":72},"https://github.com/anthropics/skills",[71],"Skills repository published by Anthropic",";",[87,346,347,348,344],{},"directories such as ",[67,349,285],{"href":283,"rel":350,"target":72},[71],[87,352,353],{},"GitHub repositories containing multiple Skills;",[87,355,356],{},"internal Skills created for a team or project.",[10,358,359],{},"A popularity ranking can help you discover a project, but it is not an audit. Before installing a Skill, I open its folder.",[32,361,363],{"id":362},"what-i-check-before-installing-a-skill","What I check before installing a Skill",[10,365,366,367,369],{},"The ",[76,368,78],{}," file should be the first thing you read, not the last.",[37,371,42,373],{"className":372},[40,41],[44,374,46,375,46,378,46,381,42],{},[48,376],{"srcSet":377,"type":51},"/img/blog/illustration/agent-skills-review-install.avif",[48,379],{"srcSet":380,"type":55},"/img/blog/illustration/agent-skills-review-install.webp",[57,382],{"src":383,"alt":384,"loading":61,"className":385},"/img/blog/illustration/agent-skills-review-install.jpg","Illustration of the checks to perform on an Agent Skill before installing it in an AI agent",[41],[387,388,390],"h3",{"id":389},"does-the-description-match-my-need","Does the description match my need?",[10,392,393,394,397],{},"The description often acts as the triggering mechanism. It should state ",[14,395,396],{},"what the Skill does and when to use it",".",[10,399,400],{},"A description such as “improves code” is too vague. The Skill may never be selected, or it may be selected for almost every task.",[10,402,403],{},"A more precise description looks like this:",[240,405,406],{},[10,407,408],{},"Use this Skill to review a product spec or PRD before implementation. Identify missing decisions, edge cases, and acceptance criteria.",[10,410,411],{},"The Agent Skills documentation also recommends testing descriptions against requests that should trigger the Skill and others that should not.",[387,413,415],{"id":414},"are-the-instructions-understandable","Are the instructions understandable?",[10,417,418],{},"I look for an explicit workflow, a verifiable result, and clear limits. A long list of generic principles provides little value if it does not change any of the agent's decisions.",[10,420,421],{},"A good Skill does not merely tell the agent to “be rigorous.” It describes the steps that make up the expected rigor.",[387,423,425],{"id":424},"does-the-folder-contain-scripts","Does the folder contain scripts?",[10,427,428,429,397],{},"I inspect the entire directory tree, not only ",[76,430,78],{},[10,432,433],{},"A script may have a legitimate purpose, such as converting a file or calling a local tool. But I check:",[84,435,436,439,442,445,448,451],{},[87,437,438],{},"which commands it runs;",[87,440,441],{},"which files it reads or modifies;",[87,443,444],{},"whether it accesses the network;",[87,446,447],{},"how it uses environment variables;",[87,449,450],{},"which dependencies it downloads;",[87,452,453],{},"where data might be sent.",[10,455,456],{},"A Skill runs with the permissions granted to the agent. Malicious instructions or an overlooked script may therefore attempt to read secrets, modify files, or bypass your instructions.",[387,458,460],{"id":459},"is-the-source-identifiable-and-maintained","Is the source identifiable and maintained?",[10,462,463],{},"I look at the author, license, commit history, and repository issues. A short Skill does not need thousands of stars, but I want to understand who published it and what I am installing.",[10,465,466,467,397],{},"Most importantly, ",[14,468,469],{},"installation convenience should never be confused with trust",[32,471,473],{"id":472},"how-to-install-a-skill","How to install a Skill",[10,475,476],{},"There are two main approaches: use an installation tool or place the folder in the correct location yourself.",[387,478,480,481],{"id":479},"install-a-skill-with-npx-skills","Install a Skill with ",[76,482,483],{},"npx skills",[10,485,486],{},"The CLI associated with skills.sh can import Skills from a GitHub repository:",[106,488,492],{"className":489,"code":490,"language":491,"meta":112,"style":112},"language-bash shiki shiki-themes enchanter-dark","npx skills add owner/repo\n","bash",[76,493,494],{"__ignoreMap":112},[495,496,499,503,507,510],"span",{"class":497,"line":498},"line",1,[495,500,502],{"class":501},"sqnxN","npx",[495,504,506],{"class":505},"sloqg"," skills",[495,508,509],{"class":505}," add",[495,511,512],{"class":505}," owner/repo\n",[10,514,515,516,519],{},"Replace ",[76,517,518],{},"owner/repo"," with the repository owner and name shown on the Skill's page. When a repository contains several Skills, you can target one:",[106,521,523],{"className":489,"code":522,"language":491,"meta":112,"style":112},"npx skills add owner/repo --skill skill-name\n",[76,524,525],{"__ignoreMap":112},[495,526,527,529,531,533,536,540],{"class":497,"line":498},[495,528,502],{"class":501},[495,530,506],{"class":505},[495,532,509],{"class":505},[495,534,535],{"class":505}," owner/repo",[495,537,539],{"class":538},"sj-18"," --skill",[495,541,542],{"class":505}," skill-name\n",[10,544,545,546,548],{},"The CLI analyzes the repository and lets you select the Skill and relevant agents. You should still read the files on GitHub before running the command: ",[76,547,502],{}," downloads and executes a program, and the installer then writes to local directories.",[10,550,551],{},"This approach works well when the source explicitly provides the command and you are comfortable using the terminal.",[387,553,555],{"id":554},"install-the-folder-manually","Install the folder manually",[10,557,558],{},"A manual installation consists of downloading or cloning the Skill folder, then placing it in a location scanned by your agent.",[10,560,561],{},"At the time of writing, the main global paths on macOS are:",[156,563,564,574],{},[159,565,566],{},[162,567,568,571],{},[165,569,570],{},"Agent",[165,572,573],{},"Location",[172,575,576,586,596,608,618],{},[162,577,578,581],{},[177,579,580],{},"Claude Code",[177,582,583],{},[76,584,585],{},"~/.claude/skills/\u003Cname>/SKILL.md",[162,587,588,591],{},[177,589,590],{},"Codex",[177,592,593],{},[76,594,595],{},"~/.agents/skills/\u003Cname>/SKILL.md",[162,597,598,601],{},[177,599,600],{},"Cursor",[177,602,603,194,605],{},[76,604,595],{},[76,606,607],{},"~/.cursor/skills/\u003Cname>/SKILL.md",[162,609,610,613],{},[177,611,612],{},"Antigravity",[177,614,615],{},[76,616,617],{},"~/.gemini/config/skills/\u003Cname>/SKILL.md",[162,619,620,623],{},[177,621,622],{},"OpenCode",[177,624,625],{},[76,626,595],{},[10,628,629,630,633],{},"Some agents also support project-specific Skills, for example under ",[76,631,632],{},".agents/skills/",". Those Skills can remain version-controlled with the repository and apply only to that project.",[10,635,636],{},"The locations and discovery mechanisms are still evolving. Check your agent's documentation if a Skill does not appear, especially after a tool update.",[387,638,640],{"id":639},"verify-that-the-skill-triggers","Verify that the Skill triggers",[10,642,643],{},"After installation, start a new conversation and write a natural request that matches the description.",[10,645,646],{},"If the Skill is designed to review a product spec, do not begin by asking:",[240,648,649],{},[10,650,651,652,397],{},"Use ",[76,653,654],{},"review-feature-spec",[10,656,657],{},"Ask instead:",[240,659,660],{},[10,661,662],{},"Review this spec before we begin implementation. Find missing decisions, edge cases, and acceptance criteria.",[10,664,665],{},"This tests the most important mechanism: can the agent recognize the need without being given the exact name of the Skill?",[10,667,668,669,672],{},"I then test a related request that ",[14,670,671],{},"should not"," trigger it, such as a basic proofreading task. If the Skill still intervenes, its description is probably too broad.",[10,674,675],{},"Visibility differs between tools: some indicate which Skill was loaded, while others make the mechanism less visible. In every case, check whether the expected workflow appears in the result.",[32,677,679],{"id":678},"create-a-first-skill-to-understand-the-format","Create a first Skill to understand the format",[10,681,682],{},"Using a published Skill is the fastest starting point. Creating a small one, however, helps you understand what you are installing.",[10,684,685],{},"I will use an example related to my work as a Product Engineer: reviewing a feature spec before handing its implementation to an agent.",[10,687,688],{},"Create this folder:",[106,690,693],{"className":691,"code":692,"language":111,"meta":112},[109],"review-feature-spec/\n└── SKILL.md\n",[76,694,692],{"__ignoreMap":112},[10,696,697],{},"Then add this content:",[106,699,703],{"className":700,"code":701,"language":702,"meta":112,"style":112},"language-md shiki shiki-themes enchanter-dark","---\nname: review-feature-spec\ndescription: Use this Skill to review a product spec, PRD, or detailed\n  ticket before implementation. Identify missing decisions, risks,\n  edge cases, and acceptance criteria, then propose a validation plan\n  without modifying the code.\n---\n\n# Review a feature spec\n\n## Goal\n\nMake the scope, decisions, and validation explicit before implementation.\n\n## Workflow\n\n1. Read the spec and identify the source of truth.\n2. Summarize the user problem, expected outcome, and what is out of scope.\n3. Separate explicit decisions, assumptions, and recommendations.\n4. Identify missing information that would change the interface,\n   data model, or architecture.\n5. Check the main user journey, errors, permissions, accessibility,\n   supported languages, and external dependencies.\n6. Turn verifiable requirements into acceptance criteria.\n7. Propose a validation plan proportionate to the risk.\n8. Ask a question when a missing decision would change the implementation.\n\n## Output format\n\n### Summary\n### Existing decisions\n### Blocking questions\n### Edge cases and risks\n### Acceptance criteria\n### Validation plan\n\n## Rules\n\n- Do not begin implementation.\n- Do not invent a missing requirement.\n- Distinguish facts, assumptions, and recommendations.\n- Report contradictions instead of resolving them silently.\n","md",[76,704,705,711,717,723,729,735,741,747,754,760,765,771,776,782,787,793,798,805,811,817,823,829,835,841,847,853,859,864,870,875,881,887,893,899,905,911,916,922,927,933,939,945],{"__ignoreMap":112},[495,706,707],{"class":497,"line":498},[495,708,710],{"class":709},"sCxck","---\n",[495,712,714],{"class":497,"line":713},2,[495,715,716],{"class":709},"name: review-feature-spec\n",[495,718,720],{"class":497,"line":719},3,[495,721,722],{"class":709},"description: Use this Skill to review a product spec, PRD, or detailed\n",[495,724,726],{"class":497,"line":725},4,[495,727,728],{"class":709},"  ticket before implementation. Identify missing decisions, risks,\n",[495,730,732],{"class":497,"line":731},5,[495,733,734],{"class":709},"  edge cases, and acceptance criteria, then propose a validation plan\n",[495,736,738],{"class":497,"line":737},6,[495,739,740],{"class":709},"  without modifying the code.\n",[495,742,744],{"class":497,"line":743},7,[495,745,710],{"class":746},"sv4-_",[495,748,750],{"class":497,"line":749},8,[495,751,753],{"emptyLinePlaceholder":752},true,"\n",[495,755,757],{"class":497,"line":756},9,[495,758,759],{"class":746},"# Review a feature spec\n",[495,761,763],{"class":497,"line":762},10,[495,764,753],{"emptyLinePlaceholder":752},[495,766,768],{"class":497,"line":767},11,[495,769,770],{"class":746},"## Goal\n",[495,772,774],{"class":497,"line":773},12,[495,775,753],{"emptyLinePlaceholder":752},[495,777,779],{"class":497,"line":778},13,[495,780,781],{"class":709},"Make the scope, decisions, and validation explicit before implementation.\n",[495,783,785],{"class":497,"line":784},14,[495,786,753],{"emptyLinePlaceholder":752},[495,788,790],{"class":497,"line":789},15,[495,791,792],{"class":746},"## Workflow\n",[495,794,796],{"class":497,"line":795},16,[495,797,753],{"emptyLinePlaceholder":752},[495,799,801],{"class":497,"line":800},17,[495,802,804],{"class":803},"s6E4U","1. Read the spec and identify the source of truth.\n",[495,806,808],{"class":497,"line":807},18,[495,809,810],{"class":803},"2. Summarize the user problem, expected outcome, and what is out of scope.\n",[495,812,814],{"class":497,"line":813},19,[495,815,816],{"class":803},"3. Separate explicit decisions, assumptions, and recommendations.\n",[495,818,820],{"class":497,"line":819},20,[495,821,822],{"class":803},"4. Identify missing information that would change the interface,\n",[495,824,826],{"class":497,"line":825},21,[495,827,828],{"class":803},"   data model, or architecture.\n",[495,830,832],{"class":497,"line":831},22,[495,833,834],{"class":803},"5. Check the main user journey, errors, permissions, accessibility,\n",[495,836,838],{"class":497,"line":837},23,[495,839,840],{"class":803},"   supported languages, and external dependencies.\n",[495,842,844],{"class":497,"line":843},24,[495,845,846],{"class":803},"6. Turn verifiable requirements into acceptance criteria.\n",[495,848,850],{"class":497,"line":849},25,[495,851,852],{"class":803},"7. Propose a validation plan proportionate to the risk.\n",[495,854,856],{"class":497,"line":855},26,[495,857,858],{"class":803},"8. Ask a question when a missing decision would change the implementation.\n",[495,860,862],{"class":497,"line":861},27,[495,863,753],{"emptyLinePlaceholder":752},[495,865,867],{"class":497,"line":866},28,[495,868,869],{"class":746},"## Output format\n",[495,871,873],{"class":497,"line":872},29,[495,874,753],{"emptyLinePlaceholder":752},[495,876,878],{"class":497,"line":877},30,[495,879,880],{"class":746},"### Summary\n",[495,882,884],{"class":497,"line":883},31,[495,885,886],{"class":746},"### Existing decisions\n",[495,888,890],{"class":497,"line":889},32,[495,891,892],{"class":746},"### Blocking questions\n",[495,894,896],{"class":497,"line":895},33,[495,897,898],{"class":746},"### Edge cases and risks\n",[495,900,902],{"class":497,"line":901},34,[495,903,904],{"class":746},"### Acceptance criteria\n",[495,906,908],{"class":497,"line":907},35,[495,909,910],{"class":746},"### Validation plan\n",[495,912,914],{"class":497,"line":913},36,[495,915,753],{"emptyLinePlaceholder":752},[495,917,919],{"class":497,"line":918},37,[495,920,921],{"class":746},"## Rules\n",[495,923,925],{"class":497,"line":924},38,[495,926,753],{"emptyLinePlaceholder":752},[495,928,930],{"class":497,"line":929},39,[495,931,932],{"class":803},"- Do not begin implementation.\n",[495,934,936],{"class":497,"line":935},40,[495,937,938],{"class":803},"- Do not invent a missing requirement.\n",[495,940,942],{"class":497,"line":941},41,[495,943,944],{"class":803},"- Distinguish facts, assumptions, and recommendations.\n",[495,946,948],{"class":497,"line":947},42,[495,949,950],{"class":803},"- Report contradictions instead of resolving them silently.\n",[10,952,366,953,958],{},[67,954,957],{"href":955,"rel":956,"target":72},"https://agentskills.io/specification",[71],"Agent Skills format specification"," imposes several frontmatter rules, including a lowercase name and a non-empty description. It also recommends keeping the main instructions compact and moving longer reference material into separate files.",[10,960,961],{},"This first version does not need a script. I can read it in a few minutes, anticipate its behavior, and improve it when I observe a real failure.",[10,963,964,965,397],{},"In my workflow, the Skill could review the Markdown specs I draft with Codex or Claude Code and inspect in ",[67,966,968],{"href":967},"/en/blog/fude-md-beautiful-markdown-reader-ai-agents","Fude, my Markdown reader designed for AI agents",[32,970,972],{"id":971},"the-real-problem-starts-when-you-use-several-agents","The real problem starts when you use several agents",[10,974,975],{},"Installing one Skill is fairly straightforward. Maintaining a collection across Claude Code, Codex, Cursor, and other tools quickly becomes opaque and time-consuming.",[10,977,978,979,982],{},"Each agent may use a different folder. Some also scan the shared ",[76,980,981],{},"~/.agents/skills"," path, while others do not. A Skill may exist globally and inside a project. One copy gets updated while another remains outdated. On a second Mac, the same environment has to be rebuilt.",[10,984,985],{},"After a few weeks, very simple questions become difficult to answer:",[84,987,988,991,994,997,1000],{},[87,989,990],{},"Which Skills have I installed?",[87,992,993],{},"Which agents can use them?",[87,995,996],{},"Which copy is the source of truth?",[87,998,999],{},"Is an update available?",[87,1001,1002],{},"What does this Skill actually contain?",[10,1004,1005],{},"These questions motivated me to build a tool dedicated to managing Skills.",[32,1007,1009],{"id":1008},"liblioai-sync-an-app-for-managing-skills-more-easily","Liblio.ai Sync, an app for managing Skills more easily",[10,1011,1012],{},"Liblio.ai Sync is a free application I am developing first for Mac, with a Windows version planned later. Its purpose is to let you install, update, and inspect your Skills without handling hidden folders, symbolic links, Git, or terminal commands.",[37,1014,42,1016],{"className":1015},[40,41],[44,1017,46,1018,46,1021,46,1024,42],{},[48,1019],{"srcSet":1020,"type":51},"/img/blog/illustration/liblio-ai-sync-skills-en.avif",[48,1022],{"srcSet":1023,"type":55},"/img/blog/illustration/liblio-ai-sync-skills-en.webp",[57,1025],{"src":1026,"alt":1027,"loading":61,"className":1028},"/img/blog/illustration/liblio-ai-sync-skills-en.jpg","Liblio.ai Sync logo with the tagline Your Skills, in all your AI tools",[41],[10,1030,1031],{},"The first version should allow you to:",[84,1033,1034,1037,1040,1043,1046,1049],{},[87,1035,1036],{},"import a Skill from a local folder, a public GitHub URL, or a skills.sh command;",[87,1038,1039],{},"keep your Skills in a local Liblio.ai Sync folder or one synchronized through a service such as iCloud Drive, Google Drive, or Dropbox;",[87,1041,1042],{},"make them available in tools such as Claude Code, Codex, Cursor, Antigravity, Devin, and OpenCode;",[87,1044,1045],{},"inspect their contents and source;",[87,1047,1048],{},"detect updates and ask for confirmation before installing them;",[87,1050,1051],{},"identify and repair certain path or link problems.",[10,1053,1054],{},"The application is still in development. The initial goal is to make an environment currently scattered across several folders visible and manageable.",[10,1056,1057],{},"Liblio.ai Sync will simplify Skill management, but it will not certify their security. You will still need to verify their source, instructions, and scripts.",[32,1059,1061],{"id":1060},"skills-are-becoming-a-new-layer-of-our-ai-tools","Skills are becoming a new layer of our AI tools",[10,1063,1064],{},"Skills are neither complete applications nor additional model training. They are a lightweight format for distributing instructions, methods, and resources that the agent loads on demand.",[10,1066,1067],{},"To get started, I recommend a simple progression:",[126,1069,1070,1073,1079,1082,1085],{},[87,1071,1072],{},"choose a Skill from an identifiable source;",[87,1074,1075,1076,1078],{},"read its ",[76,1077,78],{}," file and any associated scripts;",[87,1080,1081],{},"install it in one agent;",[87,1083,1084],{},"test one request that should trigger it and another that should not;",[87,1086,1087],{},"observe whether it actually improves the result before adding ten more.",[10,1089,1090],{},"An impressive collection of Skills provides little value if no one knows which ones are active, trustworthy, or up to date. Their value comes less from their quantity than from the quality of the behaviors they make repeatable.",[10,1092,1093,1094,1098,1099,397],{},"This work of structuring information and making trade-offs also sits at the heart of ",[67,1095,1097],{"href":1096},"/en/blog/product-engineer-new-role-ai","the Product Engineer role in the age of AI",". It is the type of workflow I design through my ",[67,1100,1102],{"href":1101},"/en/services/product-engineering","Product Engineering services",[10,1104,1105],{},"Which Skills were the first ones you installed in your AI agents?",[32,1107,1109],{"id":1108},"frequently-asked-questions-about-ai-skills","Frequently asked questions about AI Skills",[1111,1112],"faq-accordion",{":items":1113,"className":1114},"[{\"question\":\"What is an AI Skill?\",\"answer\":\"An AI Skill is a folder of instructions that an agent can discover and load when a request matches. It contains at least a SKILL.md file with a name, description, and method. It can also include scripts, examples, documentation, and other resources.\"},{\"question\":\"What is the difference between a Skill, a prompt, and MCP?\",\"answer\":\"A prompt states the current request. A Skill provides a specialized, reusable method. An MCP server provides access to data, an API, or an external action. A Skill can explain how to use an MCP tool, but it does not replace that access.\"},{\"question\":\"Where can I find AI Skills?\",\"answer\":\"Skills are mainly published in GitHub repositories, official vendor and framework repositories, or directories such as skills.sh. Always review the source, the SKILL.md file, and any scripts before installation.\"},{\"question\":\"Can I use the same Skill in Claude Code, Codex, and Cursor?\",\"answer\":\"Yes, if those agents support the format and the Skill does not depend on a capability specific to one tool. Installation folders can still differ. You should also verify that the expected scripts, commands, and tools are available in each environment.\"},{\"question\":\"Do I need to know how to code to use a Skill?\",\"answer\":\"Not necessarily. A Skill may contain only Markdown instructions. Manual installation and script auditing still require some technical familiarity, which is one of the frictions I want to reduce with Liblio.ai Sync.\"}]",[1115],"mt-6",[1117,1118,1119],"style",{},"html pre.shiki code .sqnxN, html code.shiki .sqnxN{--shiki-default:#68B188}html pre.shiki code .sloqg, html code.shiki .sloqg{--shiki-default:#A9D3BB}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sj-18, html code.shiki .sj-18{--shiki-default:#E7B566}html pre.shiki code .sCxck, html code.shiki .sCxck{--shiki-default:#E5E3E7}html pre.shiki code .sv4-_, html code.shiki .sv4-_{--shiki-default:#68B188;--shiki-default-font-weight:bold}html pre.shiki code .s6E4U, html code.shiki .s6E4U{--shiki-default:#F99D21}",{"title":112,"searchDepth":713,"depth":713,"links":1121},[1122,1123,1124,1125,1126,1132,1138,1139,1140,1141,1142],{"id":34,"depth":713,"text":35},{"id":150,"depth":713,"text":151},{"id":250,"depth":713,"text":251},{"id":320,"depth":713,"text":321},{"id":362,"depth":713,"text":363,"children":1127},[1128,1129,1130,1131],{"id":389,"depth":719,"text":390},{"id":414,"depth":719,"text":415},{"id":424,"depth":719,"text":425},{"id":459,"depth":719,"text":460},{"id":472,"depth":713,"text":473,"children":1133},[1134,1136,1137],{"id":479,"depth":719,"text":1135},"Install a Skill with npx skills",{"id":554,"depth":719,"text":555},{"id":639,"depth":719,"text":640},{"id":678,"depth":713,"text":679},{"id":971,"depth":713,"text":972},{"id":1008,"depth":713,"text":1009},{"id":1060,"depth":713,"text":1061},{"id":1108,"depth":713,"text":1109},"21","ai","2026-07-24T07:00:00.000Z","Over the past few months, I have been seeing more and more Skills for AI agents on LinkedIn, X, and GitHub. One Skill for writing feature specs, another for adding animations to an interface, another for preparing a marketing campaign, and so on.",null,"/img/blog/blog21-en.jpg","en","page",{},"/en/blog/ai-skills-what-they-do-how-to-install",{"description":1154,"title":5},"What are Agent Skills? Learn how to find, review, install, and use an AI Skill in Claude Code, Codex, or Cursor.",{"loc":1152,"lastmod":1156},"2026-07-24T09:00:00+02:00","en/blog/21.ai-skills-what-they-do-how-to-install","qITHwdQdqpSjdV7VEDlZF5qto14vBboJKT9D4aUZ5p4",[1147,1160],{"title":1161,"path":1162,"stem":1163,"children":-1},"Agent Deck: My Dashboard for Monitoring Codex, Claude, and Cursor","/en/blog/agent-deck-ai-coding-agents-dashboard","en/blog/20.agent-deck-ai-coding-agents-dashboard",[1165,1166],{"path":1152,"lang":1149},{"path":1167,"lang":1168},"/fr/blog/skills-ia-utiliser-installer","fr",1784914859361]