install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/TerminalSkills/skills/chalk-advanced" ~/.claude/skills/comeonoliver-skillshub-chalk-advanced && rm -rf "$T"
manifest:
skills/TerminalSkills/skills/chalk-advanced/SKILL.mdsource content
Chalk
Overview
Chalk styles terminal strings with colors, bold, underline, and backgrounds. ESM-only since v5. Chain styles fluently. Widely used in CLIs for status messages, errors, and formatted output.
Instructions
Step 1: Basic Styling
import chalk from 'chalk' console.log(chalk.green('✓ Success')) console.log(chalk.red.bold('✗ Error: file not found')) console.log(chalk.yellow('⚠ Warning: deprecated API')) console.log(chalk.blue.underline('https://example.com')) console.log(chalk.gray(' (verbose details)')) // Background colors console.log(chalk.bgRed.white.bold(' ERROR ') + ' Something went wrong') console.log(chalk.bgGreen.black.bold(' PASS ') + ' All tests passed')
Step 2: Composable Styles
// Define reusable styles const styles = { error: chalk.red.bold, success: chalk.green, warn: chalk.yellow, info: chalk.blue, dim: chalk.gray, highlight: chalk.cyan.bold, label: chalk.bgBlue.white.bold, } function log(level: keyof typeof styles, msg: string) { const prefix = { error: '✗', success: '✓', warn: '⚠', info: 'ℹ', dim: '·', highlight: '→', } console.log(`${styles[level](prefix[level] || '·')} ${msg}`) } log('success', 'Project created') log('error', 'Build failed') log('info', `Using ${styles.highlight('TypeScript')} template`)
Step 3: CLI Output Formatting
// Table-like output function printStats(stats: Record<string, number>) { const maxKey = Math.max(...Object.keys(stats).map(k => k.length)) for (const [key, value] of Object.entries(stats)) { const label = chalk.gray(key.padEnd(maxKey)) const val = value > 0 ? chalk.green(value.toString()) : chalk.red(value.toString()) console.log(` ${label} ${val}`) } } printStats({ 'Files changed': 12, 'Lines added': 847, 'Lines removed': 231, Warnings: 0, Errors: 0 })
Guidelines
- Chalk v5+ is ESM-only. Use
, not require.import chalk from 'chalk' - Chalk respects
andNO_COLOR
env vars automatically.FORCE_COLOR - Chain methods:
— order doesn't matter.chalk.red.bold.underline('text') - Use template literals:
chalk`{red Error:} {bold ${message}}` - For complex terminal UIs, combine with ora (spinners) and cli-table3 (tables).