Generate oclif CLI framework projects with plugin support, topics, hooks, and TypeScript. Creates enterprise-grade CLI applications with extensibility.
Generates enterprise-grade oclif CLI applications with plugin support, command topics, and TypeScript.
npx claudepluginhub a5c-ai/babysitterThis skill is limited to using the following tools:
README.mdGenerate a complete oclif CLI application with plugin architecture, topics, and enterprise patterns.
Invoke this skill when you need to:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectName | string | Yes | Name of the CLI project (kebab-case) |
| description | string | Yes | Short description of the CLI |
| commands | array | No | List of commands to scaffold |
| plugins | boolean | No | Enable plugin support (default: true) |
| topics | array | No | Command topics/namespaces |
{
"commands": [
{
"name": "deploy",
"description": "Deploy application",
"topic": "app",
"flags": [
{ "name": "env", "char": "e", "required": true },
{ "name": "force", "char": "f", "allowNo": true }
],
"args": [
{ "name": "service", "required": true }
]
}
],
"topics": [
{ "name": "app", "description": "Application commands" },
{ "name": "config", "description": "Configuration management" }
]
}
<projectName>/
├── package.json
├── tsconfig.json
├── .gitignore
├── README.md
├── bin/
│ ├── dev.js # Development entry
│ └── run.js # Production entry
├── src/
│ ├── index.ts # Plugin exports
│ ├── commands/
│ │ ├── app/
│ │ │ ├── deploy.ts # app:deploy command
│ │ │ └── status.ts # app:status command
│ │ └── config/
│ │ ├── get.ts # config:get command
│ │ └── set.ts # config:set command
│ ├── hooks/
│ │ ├── init.ts # Init hook
│ │ └── prerun.ts # Pre-run hook
│ └── lib/
│ ├── base-command.ts # Base command class
│ └── config.ts # Configuration
└── test/
└── commands/
└── app/
└── deploy.test.ts
import { Command, Flags } from '@oclif/core';
import { Config } from './config';
export abstract class BaseCommand extends Command {
static baseFlags = {
verbose: Flags.boolean({
char: 'v',
description: 'Enable verbose output',
}),
config: Flags.string({
char: 'c',
description: 'Path to config file',
}),
};
protected config!: Config;
async init(): Promise<void> {
const { flags } = await this.parse(this.constructor as typeof BaseCommand);
this.config = new Config(flags.config);
}
protected log(message: string): void {
this.logToStderr(message);
}
}
import { Args, Flags } from '@oclif/core';
import { BaseCommand } from '../../lib/base-command';
export default class Deploy extends BaseCommand {
static description = 'Deploy application to environment';
static examples = [
'<%= config.bin %> <%= command.id %> my-service -e production',
'<%= config.bin %> <%= command.id %> my-service --force',
];
static flags = {
...BaseCommand.baseFlags,
env: Flags.string({
char: 'e',
description: 'Target environment',
required: true,
options: ['development', 'staging', 'production'],
}),
force: Flags.boolean({
char: 'f',
description: 'Force deployment without confirmation',
allowNo: true,
}),
};
static args = {
service: Args.string({
description: 'Service to deploy',
required: true,
}),
};
async run(): Promise<void> {
const { args, flags } = await this.parse(Deploy);
this.log(`Deploying ${args.service} to ${flags.env}`);
if (flags.force) {
this.log('Force mode enabled');
}
// Deployment logic
this.log('Deployment complete!');
}
}
import { Hook } from '@oclif/core';
const hook: Hook<'init'> = async function (options) {
// Initialization logic
process.stdout.write(`Initializing ${options.config.name}...\n`);
};
export default hook;
{
"dependencies": {
"@oclif/core": "^3.0.0",
"@oclif/plugin-help": "^6.0.0",
"@oclif/plugin-plugins": "^4.0.0"
},
"devDependencies": {
"@oclif/test": "^3.0.0",
"@types/node": "^20.0.0",
"typescript": "^5.0.0",
"ts-node": "^10.0.0",
"mocha": "^10.0.0",
"chai": "^4.0.0"
}
}
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.