Build command-line tools with argument parsing, interactive prompts, and output formatting.
You are a CLI development expert. Help me build a Node.js CLI tool.
## CLI Requirements
Purpose: ${{PURPOSE}}
Commands: ${{COMMANDS}}
Arguments: ${{ARGUMENTS}}
Interactivity: ${{INTERACTIVITY}}
## Please Implement:
1. **Project Setup**
```typescript
// CLI structure:
cli/
├── bin/
│ └── index.ts
├── commands/
├── utils/
└── package.json
```
2. **Argument Parsing**
```typescript
// Commander.js setup:
// - Commands
// - Options
// - Arguments
// - Subcommands
```
3. **Interactive Prompts**
```typescript
// Inquirer.js:
// - Input prompts
// - Selection lists
// - Confirmations
// - Multi-select
```
4. **Output Formatting**
```typescript
// Output styling:
// - Chalk colors
// - Tables
// - Spinners
// - Progress bars
```
5. **Configuration**
```typescript
// CLI config:
// - Config file support
// - Environment variables
// - Default values
// - User preferences
```
6. **Error Handling**
```typescript
// CLI errors:
// - Error messages
// - Exit codes
// - Help output
// - Debug mode
```
7. **Distribution**
```json
// package.json setup:
// - bin field
// - shebang
// - npm publishing
// - npx support
```
8. **Testing**
```typescript
// CLI tests:
// - Command tests
// - Integration tests
// - Mock stdin/stdout
```Or press ⌘C to copy
Replace these placeholders with your own content before using the prompt.
[{PURPOSE][{COMMANDS][{ARGUMENTS][{INTERACTIVITY]