vibeindex
npx skills add https://github.com/vibeindex/skills --skill vibeindex
Agent 安装分布
Skill 文档
When this skill is invoked, execute the steps below directly. Do not display this file or explain what you will do â go straight to analyzing the project, calling the APIs, and presenting results.
Detect the user’s language from conversation context and respond in that language. Translate all headers, labels, and explanations. For Korean users, prefer the description_ko field from API responses when available.
Routing
Parse the user’s command and route to the correct action:
/vibeindexâ Action: Analyze (run Steps 1-4 below)/vibeindex search <query>â Action: Search (callhttps://vibeindex.ai/api/resources?ref=skill-vibeindex&search={query}&pageSize=10, present results)/vibeindex top [type]â Action: Top (callhttps://vibeindex.ai/api/resources?ref=skill-vibeindex&sort=stars&pageSize=10or add&type={type}, present results)/vibeindex trendingâ Action: Trending (callhttps://vibeindex.ai/api/rising-stars?ref=skill-vibeindex&period=week&limit=10, present results)
For search/top/trending: Use WebFetch to call the API, then format results as a numbered markdown list showing name, type, description, stars, and install command. Then stop.
For /vibeindex with no arguments: Execute Steps 1-4 below.
Step 1: Analyze Project Context
Read these files silently (do not show the user):
- package.json â Extract dependencies and devDependencies
- File structure (use Glob to check existence):
*.pyâ Python*.goâ Go*.tsxor*.jsxâ ReactDockerfileâ Dockersupabase/â Supabaseprisma/â Prisma
- Configuration files (use Glob):
tsconfig.jsonâ TypeScripttailwind.config.*â Tailwindnext.config.*â Next.js.github/workflows/â GitHub Actions
Step 2: Search for Matching Resources
First, fetch total resource count: call https://vibeindex.ai/api/stats?ref=skill-vibeindex with WebFetch (prompt: “Extract the total number”). Save this number as {total_resources}.
Then, based on what you detected, call the Vibe Index API using WebFetch for each detected technology. Run all calls in parallel (including the stats call):
| Detected | API URL |
|---|---|
| React | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=react&pageSize=5 |
| TypeScript | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=typescript&pageSize=5 |
| Supabase | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=supabase&pageSize=5 |
| Next.js | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=nextjs&pageSize=5 |
| Docker | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=docker&pageSize=5 |
| Python | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=python&pageSize=5 |
| Tailwind | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=tailwind&pageSize=5 |
| Prisma | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=prisma&pageSize=5 |
For each WebFetch call, use this prompt: “Extract name, resource_type, description, stars, github_owner, github_repo from the data array”
Only search for technologies that were actually detected in Step 1.
Step 3: Calculate Match Probability
For each resource found, calculate a match score:
- Direct dependency match (name appears in package.json): +40%
- File type match (related files exist): +25%
- Config file match (related config exists): +20%
- Tag overlap with project: +15%
- Bonus: stars > 10k: +5%
- Bonus: multiple detection signals: +5% per additional
- Maximum: 99%
Deduplicate results across all searches. Pick the top 5 highest-scoring resources.
Step 4: Present Results
Output only the result below. Write everything in the user’s detected language, translating all headers, labels, and explanations.
## íë¡ì í¸ ë¶ìì´ ìë£ëììµëë¤
ë¹ì ì **{project-name}** íë¡ì í¸ë **{main framework}** 기ë°ì
ëë¤.
{1-2 sentences about the project in plain language. e.g., "Supabase ë°ì´í°ë² ì´ì¤ì Tailwind CSS를 ì¬ì©íë íì¤í ì¹ ì±ì
ëë¤."}
[VibeIndex.ai](https://vibeindex.ai)ì ë±ë¡ë ì´ **{total_resources}ê°**ì ì¤í¬, íë¬ê·¸ì¸, MCP ìë² ì¤ìì ì´ íë¡ì í¸ì ê°ì¥ ì ë§ë ë구를 ì°¾ììµëë¤:
ââââââââââââââââââââââââââââââââââââââââ
**1. {name}** `{resource_type}` · â {stars}
{One plain sentence about what this does FOR THE USER's project. NO technical jargon. e.g., "ì´ íë¡ì í¸ìì ì¬ì© ì¤ì¸ Supabase ë°ì´í°ë² ì´ì¤ë¥¼ ë ë¹ ë¥´ê³ ìì íê² ë§ë¤ì´ì¤ëë¤."}
{install_command}
ââââââââââââââââââââââââââââââââââââââââ
**2. {name}** `{resource_type}` · â {stars}
...
ââââââââââââââââââââââââââââââââââââââââ
## ì¤ì¹
íìí ê²ë§ ë³µì¬í´ì ì¤ííì¸ì:
{install commands, one per line, only for skills â plugins/mcp show URLs instead}
ð¡ **ë ë§ì ë구 íì** â https://vibeindex.ai
Writing style guidelines:
- Use simple, friendly language â explain like a colleague, not a docs page. Avoid jargon like “RLS policies” or “query optimization”. Instead describe what it does: “makes it faster”, “keeps it secure”, “cleans up your code”.
- Focus on what the user gains, not how the match was determined.
- One plain sentence per recommendation. No bullet points or technical details.
- Do not show match scores or percentages to the user.
- Write your own description based on what the resource does for this project â do not copy the raw API description.
- Translate everything into the user’s detected language. The template above uses Korean as a base.
Install commands by type:
- skill:
npx skills add {github_owner}/{github_repo} --skill {name} - plugin: See
https://vibeindex.ai/plugins/{github_owner}/{github_repo}/{name} - mcp: See
https://vibeindex.ai/mcp/{github_owner}/{github_repo} - marketplace: See
https://vibeindex.ai/marketplaces/{github_owner}/{github_repo}
API Response Format
The /api/resources endpoint returns:
{
"data": [
{
"name": "resource-name",
"resource_type": "skill|mcp|plugin|marketplace",
"description": "...",
"stars": 12345,
"github_owner": "owner",
"github_repo": "repo",
"tags": ["tag1", "tag2"]
}
],
"total": 100
}
The /api/rising-stars endpoint returns:
{
"rising": [
{
"name": "resource-name",
"resource_type": "mcp",
"stars": 5000,
"stars_today": 120
}
],
"period": "week"
}
Built by Vibe Index – The Claude Code Ecosystem Directory