find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express…
Create Super Agent Party (SAP) extensions. This skill should be used when users want to create, build, or scaffold a new extension for Super Agent Party - including static HTML extensions (pure frontend) and Node.js backend extensions. Triggers on requests like "create a new SAP
$ npx -y skills add heshengtao/super-agent-party --skill sap-extension-creator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-extension-creatorContext preview
The summary Claude sees to decide when to auto-load this skill.
Create Super Agent Party (SAP) extensions. This skill should be used when users want to create, build, or scaffold a new extension for Super Agent Party - including static HTML extensions (pure frontend) and Node.js backend extensions. Triggers on requests like "create a new SAP
name: sap-extension-creator description: Create Super Agent Party (SAP) extensions. This skill should be used when users want to create, build, or scaffold a new extension for Super Agent Party - including static HTML extensions (pure frontend) and Node.js backend extensions. Triggers on requests like "create a new SAP extension", "build an extension for Super Agent Party", "scaffold a plugin", "make a chat UI extension", or when working with sap extension projects.
Create Super Agent Party extensions—self-contained packages that extend the platform with custom chat UI and tools. Two modes are supported:
Both modes support MCP tool registration (the `register_node_extension_mcp` protocol message works for ANY extension via WebSocket, despite the "node" in its name).
User wants to create an extension? ├─ Only needs UI (chat, display, simple interactions)? → Static Extension └─ Needs backend logic (API calls, DB, file processing)? → Node.js Extension
| File | Required | Purpose | |------|----------|---------| | `package.json` | ✅ | Metadata, dependencies, window config | | `index.html` | ✅ | Main UI (full HTML page, single-file app) | | `index.js` | Node only | Node.js entry point | | `node_modules/` | Node only | Auto-installed by SAP via `npm install` |
Ask the user:
1. **Extension name?** (hyphen-case, e.g., `my-weather-widget`) 2. **Description?** (one sentence) 3. **Static or Node.js?** (Node.js only if backend logic/server-side code is needed) 4. **For Node.js: what npm dependencies?** 5. **Should it register custom tools for the AI?** (works in both static and Node.js modes via WebSocket MCP) 6. **GitHub repository URL?** (optional, for updates) 7. **Transparent window?** (frameless, always-on-top — for mini widgets like music controllers) 8. **Default window size?** (width/height in pixels)
Use the templates in `assets/` as starting points:
Create the extension directory under the workspace (user will later install it into SAP's `extensions/` folder).
See `references/package-json-spec.md` for the complete field reference. Minimum:
{
"name": "my-extension",
"version": "1.0.0",
"description": "What it does",
"author": "your-name",
"repository": "https://github.com/user/repo",
"backupRepository": "https://gitee.com/user/repo",
"category": "Tools"
}For Node.js extensions, also include:
{
"main": "index.js",
"nodePort": 0,
"dependencies": { "express": "^5.1.0" }
}For transparent/frameless widgets (e.g., mini music controllers, floating panels):
{
"transparent": true,
"width": 280,
"height": 80
}When `transparent: true`, SAP creates a frameless, transparent, always-on-top window (see main.js `open-extension-window` handler). Use this for compact overlay widgets.
The HTML page is rendered inside an Electron BrowserWindow (either directly or via an iframe). Key patterns:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
Avoid relative paths like `../../fontawesome/` — these may work for static extensions but break for Node.js extensions (different serving paths).
See `references/node-entry-spec.md` for the full protocol. The entry point:
1. Receives a port number via `process.argv[2]` 2. Starts an Express server on that port at `127.0.0.1` 3. Serves static files from its own directory 4. Exposes a `/health` endpoint for readiness checks 5. SAP reverse-proxies requests to the extension
Extensions can register tools that the AI agent can call — via WebSocket in the frontend (both static and Node.js). The MCP lifecycle has three mandatory stages:
STARTUP → ws.onopen → registerMcpTools() RUNTIME → ws.onmessage → handleMcpCall() when AI calls a tool SHUTDOWN → window.beforeunload → unregisterMcpTools()
**① Register on startup** — always in `ws.onopen`, using a dedicated function:
function registerMcpTools() {
getExtId();
ws.send(JSON.stringify({
type: 'register_node_extension_mcp',
data: {
ext_id: MY_EXT_ID,
tools: [{
name: `${MY_EXT_ID}_my_tool`,
description: 'What this tool does (use the user\'s language)',
parameters: {
type: 'object',
properties: {
param1: { type: 'string', description: '...' }
},
required: ['param1']
}
}]
}
}));
}**② Handle tool calls** — the AI agent calls your tool:
async function handleMcpCall(data) {
const { ext_id, tool_name, too⭐ All-in-one AI companion! Super Agent Party = Self hosted neuro sama + openclaw! ⭐ 全能AI伴侣!超级智能体派对 = 自托管neuro sama + openclaw!
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express…
Create, analyze, proofread, and modify Office documents (.docx, .xlsx, .pptx) using the officecli CLI tool. Use when the user wants to create, inspect, check…
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's…