cli-author
Enables the creation of Node.js CLI tools with zero dependencies, focusing on argument parsing and interactive prompts.
Install this skill
Security score
The cli-author skill was audited on Feb 9, 2026 and we found 19 security issues across 3 threat categories, including 3 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Direct command execution function call
| 273 | const output = execSync('node bin/mytool.js --help', { |
Direct command execution function call
| 281 | execSync('node bin/mytool.js --invalid', { |
Direct command execution function call
| 292 | const output = execSync('node bin/mytool.js test.txt', { |
Template literal with variable interpolation in command context
| 57 | console.error(`Unknown option: ${error.message}`); |
Template literal with variable interpolation in command context
| 106 | console.error(`Unknown command: ${command}`); |
Template literal with variable interpolation in command context
| 177 | const success = (msg) => console.log(`${colors.green}✓${colors.reset} ${msg}`); |
Template literal with variable interpolation in command context
| 178 | const error = (msg) => console.error(`${colors.red}✗${colors.reset} ${msg}`); |
Template literal with variable interpolation in command context
| 179 | const warn = (msg) => console.warn(`${colors.yellow}⚠${colors.reset} ${msg}`); |
Template literal with variable interpolation in command context
| 236 | process.stdout.write(`\r${frames[i++ % frames.length]} Processing...`); |
Template literal with variable interpolation in command context
| 253 | return `[${bar}] ${Math.round(percent * 100)}%`; |
Template literal with variable interpolation in command context
| 258 | process.stdout.write(`\r${progressBar(i, 100)}`); |
Node child_process module reference
| 269 | import { execSync } from 'node:child_process'; |
Access to .env file
| 165 | const useColor = process.stdout.isTTY && !process.env.NO_COLOR; |
Hex-encoded characters
| 168 | red: useColor ? '\x1b[31m' : '', |
Hex-encoded characters
| 169 | green: useColor ? '\x1b[32m' : '', |
Hex-encoded characters
| 170 | yellow: useColor ? '\x1b[33m' : '', |
Hex-encoded characters
| 171 | blue: useColor ? '\x1b[34m' : '', |
Hex-encoded characters
| 172 | dim: useColor ? '\x1b[2m' : '', |
Hex-encoded characters
| 173 | reset: useColor ? '\x1b[0m' : '', |