Codewhale Skill Creator
codewhale-hq/Codewhale
Guides creating or improving codewhale skills: file layout, discovery paths, writing rules and whether a need fits a skill, an MCP server, hooks or a plugin.
Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.
$ npx skills add mistralai/mistral-vibe --skill create-plugin -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mistralai/mistral-vibe create-plugin --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .claude/skills && cp -r skills-src/vibe/plugins/builtins/vibe/skills/create-plugin .claude/skills/create-plugin && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "create-plugin" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-plugin into .claude/skills/create-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-plugin", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-pluginType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mistralai/mistral-vibe --skill create-plugin -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mistralai/mistral-vibe create-plugin --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .agents/skills && cp -r skills-src/vibe/plugins/builtins/vibe/skills/create-plugin .agents/skills/create-plugin && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-plugin" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-plugin into .agents/skills/create-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-plugin", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mistralai/mistral-vibe --skill create-plugin -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mistralai/mistral-vibe create-plugin --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/vibe/plugins/builtins/vibe/skills/create-plugin .cursor/skills/create-plugin && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "create-plugin" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-plugin into .cursor/skills/create-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-plugin", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mistralai/mistral-vibe.git --path vibe/plugins/builtins/vibe/skills/create-plugin--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mistralai/mistral-vibe --skill create-plugin -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mistralai/mistral-vibe create-plugin --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/vibe/plugins/builtins/vibe/skills/create-plugin .gemini/skills/create-plugin && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "create-plugin" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-plugin into .gemini/skills/create-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-plugin", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mistralai/mistral-vibe create-pluginInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mistralai/mistral-vibe --skill create-plugin -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .github/skills && cp -r skills-src/vibe/plugins/builtins/vibe/skills/create-plugin .github/skills/create-plugin && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "create-plugin" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-plugin into .github/skills/create-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-plugin", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mistralai/mistral-vibe --skill create-plugin -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mistralai/mistral-vibe create-plugin --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/vibe/plugins/builtins/vibe/skills/create-plugin .opencode/skills/create-plugin && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "create-plugin" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/vibe/plugins/builtins/vibe/skills/create-plugin into .opencode/skills/create-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-plugin", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
create-pluginShows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.
A plugin is a directory holding a plugin.json manifest that follows the Agent Plugins 1.0 schema, plus optional component folders and config files. Vibe finds plugins under .vibe/plugins/ in a project, which requires a trusted folder, and under ~/.vibe/plugins/ for personal use, and a project plugin wins when names collide. The manifest needs a $schema and a name, and the schema URL must match exactly or Vibe reports a fatal error.
An optional ai.mistral.vibe extension in plugin.json switches on hooks, knowledge, agents, libraries and connectors. Without it Vibe loads only plugin.json, skills/ and mcp.json. The extension sets a toolNamespace that cannot be a reserved name such as file_system or vibe, and toolOverrides can rename or restrict tools that come from MCP servers or connectors. Skills live in skills/ with one folder each, and the name in each SKILL.md frontmatter must equal its folder name.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7cb9189. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json, toml and yaml).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
agent-plugins.orggithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mistral Vibe Plugin Creator loads about 3.1k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 1,055 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mistralai/mistral-vibe at commit 7cb9189, republished under its Apache-2.0 licence (© mistralai). 1,055 words, ~3,085 tokens.
.claude/skills/create-plugin/SKILL.md (or your agent's skills folder).A plugin is a directory containing a plugin.json manifest (Agent Plugins 1.0
schema) plus optional component directories and config files. Vibe discovers
plugins under .vibe/plugins/ (project scope, requires trusted folder) and
~/.vibe/plugins/ (user global).
| Scope | Path | When |
|---|---|---|
| Project | <project>/.vibe/plugins/<name>/ | trusted folder only |
| User global | ~/.vibe/plugins/<name>/ | always |
Each subdirectory under a plugins root is one plugin package. The first match wins: project plugins take precedence over user plugins with the same name.
my-plugin/
plugin.json # required — Agent Plugins 1.0 manifest
mcp.json # optional — MCP server definitions
libraries.json # optional — Node/Python library dependencies
connectors.json # optional — managed connector requirements
skills/ # optional — one subdirectory per skill
my-skill/
SKILL.md
ai.mistral.vibe/ # optional — Vibe-specific extensions
hooks.toml # Vibe extension only
knowledge/ # one subdirectory per knowledge folder
topic-name/
KNOWLEDGE.md
agents/ # one .toml per subagent
researcher.toml
INSTRUCTIONS.md # optional plugin-wide instructions (not loaded)The manifest is a JSON file with $schema and name as required fields.
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "my-plugin",
"version": "1.0.0",
"description": "What this plugin provides.",
"author": {
"name": "Author Name",
"email": "author@example.com",
"url": "https://example.com"
},
"homepage": "https://example.com/my-plugin",
"repository": "https://github.com/example/my-plugin",
"license": "MIT",
"keywords": ["productivity", "finance"],
"extensions": {}
}Rules:
name must match ^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$ (1-64 chars), no --
or ...$schema must be exactly
https://agent-plugins.org/schemas/1.0.0/plugin.schema.json. Any other
schema URL produces a fatal plugin.schema.version_unsupported error.extra="forbid").To use Vibe-specific components (hooks, knowledge, agents, libraries,
connectors), add an ai.mistral.vibe extension to plugin.json:
{
"extensions": {
"ai.mistral.vibe": {
"schemaVersion": 1,
"toolNamespace": "myPlugin",
"toolOverrides": {
"lookup": {
"name": "search",
"exposure": "direct_and_programmatic"
}
}
}
}
}Without this extension, Vibe only loads plugin.json, skills/, and
mcp.json. The toolNamespace defaults to a TypeScript identifier derived
from the plugin name. It must not be one of the reserved namespaces:
file_system, self, process, skill, subagent, vibe.
vibe is reserved for built-in plugins shipped with the CLI; user plugins
must choose a different namespace.
toolOverrides rename or restrict tool exposure. Each key matches a discovered
tool name from MCP servers or connectors. exposure is one of
programmatic, direct, or direct_and_programmatic.
Place skills under skills/ — one subdirectory per skill, each containing a
SKILL.md. The skill name in SKILL.md frontmatter must match the directory
name.
skills/
format-reports/
SKILL.mdSkills follow the standard SKILL.md format with YAML frontmatter (name,
description, user-invocable, allowed-tools). Plugin skills are namespaced
as <namespace>:<skill-name> at runtime.
Define MCP servers in mcp.json. Three transport types are supported:
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
"mcpServers": {
"lookup": {
"type": "stdio",
"command": "node",
"args": ["${PLUGIN_ROOT}/server/index.js"],
"env": {
"DEBUG": "true"
},
"cwd": "."
},
"remote-api": {
"type": "streamable-http",
"url": "https://api.example.com/mcp",
"headers": {
"X-Custom-Header": "value"
}
}
}
}Rules:
command, args, and env values support ${PLUGIN_ROOT} and
${PLUGIN_DATA} variable expansion.PLUGIN_ROOT and PLUGIN_DATA are also injected automatically into env;
do not set them yourself (rejected with an error).env variable names PLUGIN_ROOT and PLUGIN_DATA are reserved.cwd of . means the plugin root.streamable-http servers support static headers only; use OAuth at the
Vibe config level for authenticated remote servers.sse transport is detected but not supported — it produces a diagnostic.command for stdio servers is resolved relative to the plugin root
when it is a bare filename; absolute paths are used as-is.Place hooks in ai.mistral.vibe/hooks.toml. Format is identical to the Vibe
hooks.toml format, but hooks run in the plugin root directory with
PLUGIN_ROOT and PLUGIN_DATA in the environment.
[[hooks]]
name = "guard-lookup"
type = "pre_tool"
match = "myPlugin.lookup"
command = "python guard.py"
strict = true
[[hooks]]
name = "post-agent-lint"
type = "post_agent"
command = "eslint --quiet ."Limits:
<plugin-name>:<hook-name>.Place knowledge folders under ai.mistral.vibe/knowledge/. Each folder
contains a KNOWLEDGE.md with YAML frontmatter:
ai.mistral.vibe/
knowledge/
accounting-policy/
KNOWLEDGE.md
reference.mdKNOWLEDGE.md frontmatter:
---
name: accounting-policy
description: How revenue is recognized and reported.
display_name: Accounting Policy
icon: book
---Rules:
name must match the directory name (^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$).description is 5-300 characters.KNOWLEDGE.md entrypoint limit: 256 KB.<namespace>:<name>.Place subagent definitions under ai.mistral.vibe/agents/. Each .toml file
defines one subagent:
ai.mistral.vibe/
agents/
researcher.tomlresearcher.toml:
schemaVersion = 1
agentType = "subagent"
displayName = "Researcher"
description = "Searches the knowledge base and summarizes findings."
safety = "safe"
activeModel = "mistral-medium-3.5"
instructions = "You are a research assistant."
enabledTools = ["read_file", "grep"]
disabledTools = ["bash"]
[tools.bash]
permission = "never"
allowlist = ["ls"]
denylist = ["rm"]Rules:
schemaVersion must be 1.agentType must be "subagent" (the only supported type).^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$).safety is one of "safe", "neutral", "destructive", "yolo".<namespace>:<filename-stem>.Declare Node and Python library dependencies in libraries.json:
{
"schemaVersion": 1,
"node": {
"@productivity/finance": "./node/finance",
"lodash": "./node/lodash"
},
"python": {
"vibe_finance": "./python/vibe_finance",
"utils": "./python/utils.py"
}
}Rules:
^(?:@[a-z0-9][a-z0-9._-]*/)?[a-z0-9][a-z0-9._-]*$
(max 214 chars).^[A-Za-z_][A-Za-z0-9_]*$ (max 128 chars)... or absolute paths..py file.Declare required managed connectors in connectors.json:
{
"schemaVersion": 1,
"connectors": [
{
"id": "github",
"tools": ["create_issue", "list_issues"]
},
{
"id": "linear",
"tools": ["create_issue"]
}
]
}Rules:
When a plugin fails to load or has issues, Vibe emits typed diagnostics. The most common ones:
| Code | Fatal | Meaning |
|---|---|---|
plugin.manifest.invalid | yes | plugin.json missing, unreadable, or invalid |
plugin.schema.version_unsupported | yes | unsupported schema version |
plugin.compatibility.format_unrecognized | yes | no supported manifest found |
plugin.namespace.reserved | yes | namespace is reserved |
plugin.namespace.collision | yes | two plugins claim one namespace |
plugin.name.collision | yes | two plugins share a name at the same scope |
plugin.path.outside_root | yes | a declared path escapes the plugin root |
plugin.skill.invalid | no | one SKILL.md failed to parse |
plugin.hooks.invalid | no | one hook entry failed validation |
plugin.knowledge.invalid | no | one knowledge folder failed validation |
plugin.agent.invalid | no | one agent document failed validation |
plugin.libraries.invalid | no | libraries.json failed to load |
plugin.library.invalid | no | one library path is invalid |
plugin.library.alias_collision | no | library alias shared across plugins |
plugin.connectors.invalid | no | connectors.json failed to load |
plugin.mcp.connection_failed | no | an MCP server did not answer |
plugin.mcp.authorization_required | no | an MCP server needs authorization |
plugin.tool_override.unused | no | a toolOverrides key matched no tool |
Fatal diagnostics drop the entire plugin. Non-fatal diagnostics drop only the offending component; the rest of the plugin survives.
Vibe also detects and adapts plugins authored for other agents:
| Format | Marker | Adapted as |
|---|---|---|
| Claude Code | .claude-plugin/plugin.json | skills, MCP servers, hooks |
| Codex | .codex-plugin/plugin.json | skills, MCP servers |
| Kimi Code | kimi.plugin.json or .kimi-plugin/plugin.json | skills, MCP servers, hooks |
| OpenCode | .opencode/ directory | skills only (executable modules unsupported) |
If markers for more than one format are present, the plugin is rejected as
ambiguous. Native Agent Plugins 1.0 (a valid plugin.json with the correct
$schema) always takes precedence.
When creating a new plugin, always use the native Agent Plugins 1.0 format.
.vibe/plugins/<name>/ (project) or
~/.vibe/plugins/<name>/ (user).plugin.json with the required $schema and name fields.ai.mistral.vibe extension to plugin.json if any Vibe-specific
components (hooks, knowledge, agents, libraries, connectors) are needed./reload to pick up the new plugin without
restarting.© mistralai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in vibe/plugins/builtins/vibe/skills/create-plugin of mistralai/mistral-vibe.
Open the folder on GitHubat commit 7cb9189
Mistral Vibe Plugin Creator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mistral Vibe Plugin Creator this skillmistralai/mistral-vibe | 5.1k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Codewhale Skill Creatorcodewhale-hq/Codewhale | 41k | — | ~1k | Automated safety check: Pass | MIT | |
| Skill Creatorstacklok/toolhive-studio | 170 | — | ~677 | Automated safety check: Pass | Apache-2.0 | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 37k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Skill Seekers Builderyusufkaraaslan/Skill_Seekers | 15k | — | ~760 | Automated safety check: Pass | MIT |
codewhale-hq/Codewhale
Guides creating or improving codewhale skills: file layout, discovery paths, writing rules and whether a need fits a skill, an MCP server, hooks or a plugin.
stacklok/toolhive-studio
Create new AI agent skills for Claude Code, Codex, and Cursor.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
yusufkaraaslan/Skill_Seekers
Detects the type of a knowledge source and uses the Skill Seekers MCP tools to turn docs, repos, PDFs or videos into packaged AI skills.
OpenPetsHQ/openpets
A skill your agent uses whenever the user wants to build, extend, debug, test, validate, locally load, package, or publish an OpenPets plugin; work with the OpenPets Plugin SDK v3, plugin manifest…
mistralai/mistral-vibe
Guides feature work in the Mistral Vibe Python CLI so each change lands in the right module and matches the project's architecture decision records.
mistralai/mistral-vibe
Plans which analytics events and properties a new feature needs, checks them against the existing event registry, and verifies them per environment.
mistralai/mistral-vibe
Creates, reuses and cleans up git worktrees under a shared vibe home directory, with per-repo buckets, claim records and dirty-state checks before removal.
mistralai/mistral-vibe
Creates or updates concise Architecture Decision Records for the Mistral Vibe CLI and registers each one in the AGENTS.md decisions table.
mistralai/mistral-vibe
Guides writing or refactoring tests for the Mistral Vibe CLI agent so they check behavior through stable boundaries, like tool invocation or saved session shape, instead of internal calls.
mistralai/mistral-vibe
Reference for Mistral Vibe, the CLI agent it runs inside: config files, env vars, agents, skills, tools, hooks and MCP servers, so the agent can explain and troubleshoot its own setup.
Works with
Categories
Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components. 0 schema, plus optional component folders and config files.vibe/plugins/ for personal use, and a project plugin wins when names collide.
Mistral Vibe Plugin Creator fits situations like: scaffolding a new plugin for Mistral Vibe; adding skills or an MCP server definition to a plugin package; fixing a plugin that Vibe refuses to load because of schema or name errors.
Run `npx skills add mistralai/mistral-vibe --skill create-plugin -a claude-code`. Or copy the skill folder (vibe/plugins/builtins/vibe/skills/create-plugin in mistralai/mistral-vibe) into .claude/skills/create-plugin in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mistralai/mistral-vibe --skill create-plugin -a codex`. Or copy the skill folder (vibe/plugins/builtins/vibe/skills/create-plugin in mistralai/mistral-vibe) into .agents/skills/create-plugin in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mistralai/mistral-vibe --skill create-plugin -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-plugin, .gemini/skills/create-plugin, .github/skills/create-plugin and .opencode/skills/create-plugin in your project.
SKILL.md names no scripts, command-line tools or credentials: Mistral Vibe Plugin Creator is instructions for the agent only. Our summary lists: Mistral Vibe CLI; A trusted folder, for project-scoped plugins.
SKILL.md names 2 domains. In commands or code: agent-plugins.org and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Mistral Vibe Plugin Creator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Mistral Vibe Plugin Creator: Codewhale Skill Creator (codewhale-hq/Codewhale, 41k stars), Skill Creator (stacklok/toolhive-studio, 170 stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 37k stars) and Crush Configuration (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mistralai (a GitHub organization, an official publisher) maintains it in mistralai/mistral-vibe, which has 5,057 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 6, 2026.
Source: mistralai/mistral-vibe on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.