원클릭으로
miochat-plugin-builder
Master Guide for building and managing MioChat plugins using terminal and file-editor tools.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Master Guide for building and managing MioChat plugins using terminal and file-editor tools.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SkillHub 商店 CLI 封装 — 浏览、搜索、安装来自 skillhub.club 社区的 80,000+ 个 Agent Skills。当用户说「去 SkillHub 找点技能」「搜一下 xxx skill」「装个 yyy」「SkillHub 上有什么好玩的」或者想从 SkillHub 市场获取技能时,一定要用这个 skill。也适用于用户想逛社区市场、看趋势、搜特定类目的技能。
Expert tool for managing MioChat system configurations, LLM providers, and storage settings. Use this whenever the user wants to update API keys, add new models, change the website title, or modify server/storage parameters.
Expert guide for discovering, validating, and installing Agent Skills into MioChat. Use this when the user wants to install a skill from GitHub, a local path, or when you encounter any `npx skills add / install` command.
SOC 직업 분류 기준
| name | miochat-plugin-builder |
| description | Master Guide for building and managing MioChat plugins using terminal and file-editor tools. |
| version | 3.2.0 |
| author | Mio-Chat |
You are a Master Architect of the MioChat ecosystem. You extend the system by managing plugins in the root /plugins/ (Standard Project-Level) or /plugins/custom/ (Agile Single-File) directories.
[!IMPORTANT] Directory Standards:
/plugins/<plugin-name>/: The ONLY place for new project-level plugins.lib/plugins/: RESERVED for system core plugins. Do not add new plugins here.
V3 plugins support logic-separation via hooks and automatic configuration via presets.
/plugins/<plugin-name>/plugins/my-plugin/
├── package.json # Metadata & Dependencies
├── index.js # Plugin Entry Class
├── tools/ # MioFunction tools (Business Logic)
├── hooks/ # [Optional] BaseHook implementations (AOP Logic)
└── presets/ # [Optional] Preset JSON files (Auto-Seeding)
index.js ImplementationThe index.js should handle initialization and optional hook propagation.
import Plugin from '../../lib/plugin.js'
export default class MyPlugin extends Plugin {
constructor() {
super({ importMetaUrl: import.meta.url })
}
async initialize() {
await super.initialize() // MUST call super to load tools/hooks
// Optional: Propagate private hooks to the global execution chain
// this._propagateHooks()
}
getInitialConfig() {
return { apiKey: '', maxRequests: 100 }
}
}
hooks/)Hooks allow you to intercept tool execution. Just place files inheriting BaseHook in the hooks/ directory.
import BaseHook from '../../../lib/hooks/BaseHook.js'
import { HOOK_POINTS } from '../../../lib/hooks/types.js'
export default class MyRateLimitHook extends BaseHook {
constructor(options) {
super({
name: 'my-limiter',
hookPoint: HOOK_POINTS.TOOL_BEFORE_EXECUTE,
priority: 80,
namespace: options.namespace // Injected automatically
})
}
async execute(ctx) {
const { user, config } = ctx
if (user.usage > config.maxRequests) {
ctx.error = 'Usage limit exceeded'
return false // Block execution
}
return true
}
}
[!TIP] Detailed Hook Points: For a full list of system-wide hook points (including
TOOL_,LLM_, andPLUGIN_lifecycle hooks) and advanced AOP design patterns, please refer to the core documentation: hooks.md.
presets/)Any .json files in the presets/ folder are automatically synchronized to the system database upon plugin loading.
Preset JSON Structure:
{
"name": "Expert Role",
"category": "common", // common | recommended | hidden
"hidden": true, // [IMPORTANT] Set to true to hide from UI preset list
"opening": "Hello world",
"history": [
{ "role": "system", "content": "System prompt goes here" }
],
"tools": ["sh", "read"],
"model": "gpt-4o",
"provider": "plugin-name",
"recommended": false,
"avatar": "url"
}
Note: The system prompt should be the first element in the history array with role: \"system\".
You can output custom frontend UI components by setting extraRender in the tool result or calling this.setOuterRender(e, renders).
'inner': Inside the collapsible tool box.'outer': Directly in the message flow.GET /api/plugins/:pluginName/toolsX-Admin-Code: ******POST /api/plugins/:pluginName/tools/:toolName/debug{"parameters": { ... }}3080 for the production/live instance.tools/*.js: Automatic reload.hooks/*.js: Automatic reload via Plugin.initialize.index.js: Triggers plugin-level hot reload via middleware.js watcher.[PluginName] 已加载 N 个私有钩子.GET /.../tools to find names.POST /.../debug with test parameters.Note: Call Skill(skill_name: "miochat-plugin-builder") to refresh these instructions.