npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

swiss-knife-cli

v1.4.0

Published

A beautiful Swiss Army knife CLI tool for developers

Readme

🇨🇭 Swiss Knife CLI

A beautiful, interactive CLI tool that serves as a collection of daily developer utilities. Features a stunning interface with gradients, emojis, and ASCII art throughout.

✨ Features

Interactive Menu

Simply type sk to launch an interactive menu where you can:

  • Navigate with arrow keys
  • Select tools with Enter
  • Exit gracefully anytime

Available Tools

🔑 Test ID Generator (sk testid / sk tid)

Generate data-testid attributes for testing with customizable options:

  • Custom length (default: 21 characters)
  • Generate multiple IDs at once
  • Alphanumeric characters only (A-Za-z0-9)
  • Automatic clipboard copying
  • Beautiful table output

🔀 Git Branch Rename (sk git-rename / sk grn)

Rename git branches both locally and on remote:

  • Auto-detect current branch
  • Animated progress indicators
  • Handles remote operations
  • Graceful error handling
  • Celebration on success

🔒 Base64 Encode/Decode (sk b64)

Smart base64 encoding/decoding with auto-detection:

  • Automatic mode detection
  • Support for piped input
  • File input support
  • Beautiful comparison tables
  • Clipboard integration

🚀 Installation

From npm (Recommended)

# Install globally
npm install -g swiss-knife-cli

# Now you can use it anywhere!
sk

From Source

# Clone the repository
git clone https://github.com/alexgalkin94/swiss-knife-cli.git
cd swiss-knife-cli

# Install dependencies
npm install

# Build and link globally
npm run build && npm link

# Now you can use it anywhere!
sk

📖 Usage

Interactive Mode (Recommended)

sk

Navigate the beautiful menu with arrow keys and select your tool!

Direct Commands

# Test ID Generator
sk testid                       # Generate one ID
sk testid --count 5 --length 15 # Generate 5 IDs of length 15
sk tid -c 3 -l 10              # Short form

# Git Branch Rename
sk git-rename old-branch new-branch  # Rename specific branch
sk git-rename new-branch             # Rename current branch
sk grn feature-new                   # Short form

# Base64 Encode/Decode
sk b64 "Hello World"            # Auto-detect and encode
sk b64 "SGVsbG8gV29ybGQ="      # Auto-detect and decode
sk b64 -e "Hello"               # Force encode
sk b64 -d "SGVsbG8="            # Force decode
echo "test" | sk b64            # Pipe input
sk b64 -f input.txt             # Read from file

🏗️ Architecture

The CLI is built with a modular architecture making it trivial to add new commands:

src/
├── index.ts          # Main entry with interactive menu
├── commands/         # Individual command implementations
│   ├── testid.ts
│   ├── git-rename.ts
│   └── base64.ts
└── utils/           # Shared utilities
    └── ui.ts        # Beautiful UI components

Adding a New Command

  1. Create a new file in src/commands/your-command.ts
  2. Export a registration function
  3. Import and register in index.ts
  4. Add to interactive menu

That's it! No core modifications needed.

🎨 Visual Features

  • Gradient text using multiple color schemes
  • ASCII art banner with custom font
  • Colored tables for structured output
  • Animated spinners for async operations
  • Beautiful boxes for important information
  • Consistent emoji usage for better scanning
  • Theme system for consistent colors

🛠️ Development

# Run in development mode
npm run dev

# Build for production
npm run build

# Run TypeScript compiler
npm run build:tsc

📦 Dependencies

  • commander - CLI framework
  • inquirer - Interactive prompts
  • chalk - Terminal colors
  • gradient-string - Beautiful gradients
  • figlet - ASCII art text
  • ora - Elegant spinners
  • boxen - Terminal boxes
  • cli-table3 - Beautiful tables
  • nanoid - ID generation
  • simple-git - Git operations
  • clipboardy - Clipboard access

🎯 Design Philosophy

This isn't just a utility tool - it's a beautiful utility tool. Every command output is carefully crafted to be visually pleasing and delightful to use. The goal is to make you want to use it just to see the gorgeous output!

📄 License

MIT