TopRank Skills

Home / Claw Skills / Others / universal-command
Official OpenClaw rules 15%

universal-command

Define commands once, deploy to CLI, API, and MCP automatically. Use when building new commands/tools for Supernal — ensures consistent interfaces across all surfaces. DO NOT rebuild this pattern — use this package.

Stars

0

Installs

0

Status

ACTIVE

Visibility

PUBLIC

安装方式

直接复制以下提示词,发送给你的 AI 助手即可完成安装。

请先检查是否已安装 SkillHub 商店,若未安装,请根据 https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub.md 安装 SkillHub 商店,然后安装 universal-command 技能。 若已安装,则直接安装 universal-command 技能。

Overview

Skill Key
ianderrington/universal-command
Author
ianderrington
Source Repo
openclaw/skills
Version
-
Source Path
skills/ianderrington/universal-command
Latest Commit SHA
1a30fe254e4633e5fc062d0d2faf593b1c873174

Extracted Content

SKILL.md excerpt

# @supernal/universal-command

**Define once, deploy everywhere.** Single source of truth for CLI, API, and MCP interfaces.

## ⚠️ CRITICAL: Use This, Don't Rebuild

If you're building commands for Supernal, **use this package**. Don't create separate CLI/API/MCP implementations.

## Installation

```bash
npm install @supernal/universal-command
```

## Quick Start

### Define a Command

```typescript
import { UniversalCommand } from '@supernal/universal-command';

export const userCreate = new UniversalCommand({
  name: 'user create',
  description: 'Create a new user',
  
  input: {
    parameters: [
      { name: 'name', type: 'string', required: true },
      { name: 'email', type: 'string', required: true },
      { name: 'role', type: 'string', default: 'user', enum: ['user', 'admin'] },
    ],
  },
  
  output: { type: 'json' },
  
  handler: async (args, context) => {
    return await createUser(args);
  },
});
```

### Deploy Everywhere

```typescript
// CLI
program.addCommand(userCreate.toCLI());
// → mycli user create --name "Alice" --email "alice@example.com"

// Next.js API
export const POST = userCreate.toNextAPI();
// → POST /api/users/create

// MCP Tool
const mcpTool = userCreate.toMCP();
// → user_create tool for AI agents
```

## Core Concepts

### Single Handler

Write your logic once. The handler receives validated args and returns the result:

```typescript
handler: async (args, context) => {
  // This same code runs for CLI, API, and MCP
  return await doThing(args);
}
```

### Input Schema

Define parameters once — validation, CLI options, API params, and MCP schema are auto-generated:

```typescript
input: {
  parameters: [
    { name: 'id', type: 'string', required: true },
    { name: 'status', type: 'string', enum: ['draft', 'active', 'done'] },
    { name: 'limit', type: 'number', min: 1, max: 100, default: 10 },
  ],
}
```

### Interface-Specific Options

Override behavior per interface when needed:

```typescript
cli: {
  format: (data)...

Related Claw Skills