Skip to content

Repository files navigation

Scott Kosman CLI

npm version npm downloads License: MIT Node Version PRs Welcome

A modern, interactive command-line interface built with TypeScript that showcases Scott Kosman's professional information and provides quick access to external links.

Want your own version of this CLI? Check out npx-yournamehere, a template you can fork and fill in with your own content.

🚀 Features

  • Interactive Welcome Experience: Beautiful ASCII art with gradient styling and terminal image display
  • Professional Bio: Displays Scott's current role and background information
  • Quick Links Menu: Selectable list of external URLs that open in your default browser
  • Persistent Menu: Loop back to the menu after opening links - no need to restart
  • Modern CLI Architecture: Built with TypeScript, Commander.js, and modern Node.js practices
  • Professional Branding: Custom styling with chalk, figlet, and gradient effects

📦 Installation

Run with npx (Recommended, No Installation Required)

npx scottkosman

Global Installation

npm install -g scottkosman

Local Development

# Clone the repository
git clone https://github.com/humantorch/scottkosman-cli.git
cd scottkosman-cli

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

🎯 Usage

Default Experience

Simply run the CLI without any arguments to get the full interactive experience:

scottkosman

This will display:

  • Scott's profile image
  • ASCII art title with gradient effects
  • Professional bio and background information
  • Interactive menu of external links (loops until you choose to exit)

Available Commands

# Show help information
scottkosman --help

# Display version
scottkosman --version

# Show enhanced help
scottkosman help

# Display CLI information
scottkosman info

# Initialize CLI (if needed)
scottkosman init

🔗 Quick Links

The CLI provides easy access to:

  • 💻 scottkosman.com: Visit my personal website
  • ⚙️ blackglass.me: Where I build tools for technical people who think carefully about how they work
  • 🙋🏻‍♂️ How To Scott: My "Manager README", useful info if you currently do or want to work with/for me
  • 📝 Blog: Blog posts on leadership, management, and surviving in tech
  • 📜 Current Resume: Check out what I've done in the past
  • 🌐 GitHub: If you're reading this you probably already know what GitHub is
  • 🏢 LinkedIn: Join my Professional Network™
  • 📸 Instagram: See what I had for lunch
  • 🔧 This CLI Repository: See how this CLI was built (TypeScript, Commander.js, etc.)
  • 📧 Email Me: Email? In 2026? I do check this, I promise

👨‍💼 About Scott

Halifax-based Engineering Manager at 1Password, 25+ year vet of the technology, marketing, and digital strategy world. A recovering front-end developer who pivoted to management back in 2014, I now enjoy leading teams building the next generation of stuff you do on this "internet" thing. He/him.

🛠️ Development

Prerequisites

  • Node.js 18.0.0 or higher
  • npm or yarn

Scripts

# Build the project
npm run build

# Run in development mode
npm run dev

# Start the built version
npm start

# Clean build artifacts
npm run clean

# Run tests
npm test

# Lint code
npm run lint

# Format code
npm run format

Running Tests

This project uses Jest and ts-jest for testing.

npm test
  • Tests are located in src/**/*.test.ts
  • Menu logic and data are tested in isolation for reliability
  • To add more tests, create additional *.test.ts files

Publishing

The project includes automated publishing scripts:

# Publish with patch version bump (1.0.0 -> 1.0.1)
npm run publish:patch

# Publish with minor version bump (1.0.0 -> 1.1.0)
npm run publish:minor

# Publish with major version bump (1.0.0 -> 2.0.0)
npm run publish:major

# Or use the script directly
./scripts/publish.sh patch

These scripts will:

  1. Bump the version number
  2. Build the project
  3. Publish to npm
  4. Create a git tag
  5. Push changes to GitHub

Project Structure

scottkosman-cli/
├── src/
│   ├── commands/          # CLI commands
│   ├── utils/             # Utility functions
│   ├── types/             # TypeScript type definitions
│   └── index.ts           # Main entry point
├── assets/                # Static assets (images, etc.)
├── dist/                  # Built JavaScript files
└── package.json

🎨 Technologies Used

  • TypeScript: Type-safe JavaScript development
  • Commander.js: CLI framework
  • Chalk: Terminal styling and colors
  • Inquirer: Interactive command-line interfaces
  • Figlet: ASCII art text
  • Gradient-string: Beautiful gradient effects
  • Boxen: Terminal boxes and borders
  • Terminal-image: Display images in terminal
  • Open: Open URLs in default browser

⚠️ Known Issues

  • Profile image doesn't render on some Windows terminals: The welcome image is drawn using colored Unicode block characters, which requires truecolor ANSI support. On some Windows setups (including Windows Terminal in certain configurations) it may fail to render. This doesn't affect any other functionality, the CLI still works normally without the image. Honestly, though, if you're using Windows by choice you kinda deserve lesser experiences, it's your own fault.

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📞 Contact


Made with ❤️ by Scott Kosman

About

A modern, interactive command-line interface for Scott Kosman with quick access to external links.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages