Skip to main content

implementing-cli-patterns

Enhances CLI user experience with formatted output, progress indicators, and interactive prompts using chalk, ora, and inquirer.

Install this skill

or
0/100

Security score

The implementing-cli-patterns skill was audited on Feb 12, 2026 and we found 31 security issues across 3 threat categories, including 1 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

medium line 54

Template literal with variable interpolation in command context

SourceSKILL.md
54console.log(chalk.red(`✖ ${message}`));
medium line 59

Template literal with variable interpolation in command context

SourceSKILL.md
59console.log(chalk.green(`✔ ${message}`));
medium line 64

Template literal with variable interpolation in command context

SourceSKILL.md
64console.log(chalk.yellow(`⚠ ${message}`));
medium line 69

Template literal with variable interpolation in command context

SourceSKILL.md
69console.log(chalk.cyan(`💡 ${message}`));
medium line 79

Template literal with variable interpolation in command context

SourceSKILL.md
79console.log(chalk.bgGray.white(` ${code} `));
medium line 84

Template literal with variable interpolation in command context

SourceSKILL.md
84console.log(chalk.blue(`ℹ ${message}`));
medium line 98

Template literal with variable interpolation in command context

SourceSKILL.md
98console.error(`Failed to create category: ${error.message}`);
medium line 121

Template literal with variable interpolation in command context

SourceSKILL.md
121spinner.succeed(`Fetched ${categories.length} categories`);
medium line 153

Template literal with variable interpolation in command context

SourceSKILL.md
153process.stdout.write(`\r${this.label}: ${bar} ${percent}% (${this.completed}/${this.total})`);
medium line 159

Template literal with variable interpolation in command context

SourceSKILL.md
159return `[${'█'.repeat(filled)}${'░'.repeat(empty)}]`;
medium line 165

Template literal with variable interpolation in command context

SourceSKILL.md
165console.warning(`Completed with ${this.failed} failures`);
medium line 167

Template literal with variable interpolation in command context

SourceSKILL.md
167console.success(`All ${this.completed} items processed`);
medium line 299

Template literal with variable interpolation in command context

SourceSKILL.md
299`${result.duration}ms`,
medium line 317

Template literal with variable interpolation in command context

SourceSKILL.md
317console.warning(`Completed with ${totals.failed} failures`);
medium line 331

Template literal with variable interpolation in command context

SourceSKILL.md
331console.log(chalk.green(`+ ${diff.entity}: ${diff.identifier}`));
medium line 334

Template literal with variable interpolation in command context

SourceSKILL.md
334console.log(chalk.blue(`~ ${diff.entity}: ${diff.identifier}`));
medium line 336

Template literal with variable interpolation in command context

SourceSKILL.md
336console.log(chalk.gray(` ${change.field}: ${change.from} → ${change.to}`));
medium line 340

Template literal with variable interpolation in command context

SourceSKILL.md
340console.log(chalk.red(`- ${diff.entity}: ${diff.identifier}`));
medium line 346

Template literal with variable interpolation in command context

SourceSKILL.md
346console.info(`Total: ${diffs.filter(d => d.action === 'create').length} to create, ` +
medium line 347

Template literal with variable interpolation in command context

SourceSKILL.md
347`${diffs.filter(d => d.action === 'update').length} to update, ` +
medium line 348

Template literal with variable interpolation in command context

SourceSKILL.md
348`${diffs.filter(d => d.action === 'delete').length} to delete`);
medium line 363

Template literal with variable interpolation in command context

SourceSKILL.md
363console.log(chalk.yellow(` ${dup.entityType}: "${dup.identifier}"`));
medium line 364

Template literal with variable interpolation in command context

SourceSKILL.md
364console.log(chalk.gray(` Found at: ${dup.locations.join(', ')}`));
medium line 382

Template literal with variable interpolation in command context

SourceSKILL.md
382console.log(chalk.gray(` Error code: ${error.code}`));
medium line 386

Template literal with variable interpolation in command context

SourceSKILL.md
386console.log(chalk.gray(` Context: ${JSON.stringify(error.context)}`));
medium line 394

Template literal with variable interpolation in command context

SourceSKILL.md
394console.log(chalk.cyan(` • ${suggestion}`));
medium line 404

Template literal with variable interpolation in command context

SourceSKILL.md
404console.error(`GraphQL operation failed: ${error.operationName}`);
medium line 408

Template literal with variable interpolation in command context

SourceSKILL.md
408console.log(chalk.red(` • ${gqlError.message}`));
medium line 410

Template literal with variable interpolation in command context

SourceSKILL.md
410console.log(chalk.gray(` Path: ${gqlError.path.join('.')}`));
high line 257

Prompting for password/secret input

SourceSKILL.md
257### Password Prompt
low line 247

External URL reference

SourceSKILL.md
247default: 'https://your-store.saleor.cloud/graphql/',
Scanned on Feb 12, 2026
View Security Dashboard
Installation guide →
GitHub Stars 106
Rate this skill
Categorydevelopment
UpdatedMay 21, 2026
majiayu000/claude-skill-registry