Skip to content

A globally-installable Node.js CLI toolkit for bootstrapping and configuring development environments across any machine

Notifications You must be signed in to change notification settings

FredLackey/devutils-cli

Repository files navigation

DevUtils CLI

Early Development (v0.0.1) — This project is currently a proof of concept. Core functionality is being built and tested. You're welcome to:

  • Use it as-is and provide feedback
  • Participate in development
  • Watch for future releases (v0.1.0 for beta, v1.0.0 for stable)
  • Reach out with questions or suggestions

Stop wasting hours setting up new machines. One command, any platform, ready to code.

The Problem

Every developer knows the pain:

  • New laptop? Spend a day installing tools and configuring dotfiles
  • Switch between work and personal projects? Juggle SSH keys and git configs
  • Help a teammate set up their environment? Walk them through 50 different steps
  • Work on macOS at home, Linux in prod? Remember two sets of commands

The Solution

npm install -g @fredlackey/devutils
dev setup

That's it. DevUtils CLI detects your operating system and installs everything you need. Your configuration travels with you.

Installation

If You Have Node.js Installed

If you already have Node.js 18+ on your machine, install DevUtils CLI as a global npm package:

npm install -g @fredlackey/devutils

Fresh Machine (No Node.js)

For a fresh machine without Node.js, run the bootstrap script. It installs everything you need: build tools, nvm, Node.js LTS, and DevUtils CLI.

macOS:

bash -c "$(curl -LsS https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)"

Ubuntu / Debian / Raspberry Pi OS:

bash -c "$(wget -qO - https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)"

Amazon Linux / RHEL / Fedora:

bash -c "$(curl -LsS https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)"

The script is interactive by default. For automated/CI environments, add --no-prompt:

bash -c "$(curl -LsS https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)" -- --no-prompt

Quick Start

# Install essential tools (git, ssh, gpg, etc.)
dev setup

# Set up your developer profile
dev configure

# Install your favorite tools
dev install vscode
dev install docker
dev install node

Key Features

Cross-Platform Package Installation

Forget whether it's brew install, apt-get install, or choco install. Just run:

dev install docker
dev install node
dev install vscode

DevUtils CLI figures out the right command for macOS, Ubuntu, Raspberry Pi OS, Amazon Linux, Windows, or Git Bash.

Git Identity Management

Manage multiple git identities for work, personal, and client projects:

# Create identities with SSH and GPG keys
dev identity add work --email you@company.com
dev identity add personal --email you@gmail.com

# Link identities to folders - commits automatically use the right credentials
dev identity link work ~/work
dev identity link personal ~/personal https://github.com/yourusername

Clone with any URL format. DevUtils CLI routes it through the correct SSH key automatically.

Smart .gitignore Management

dev ignore node      # Add Node.js patterns
dev ignore macos     # Add .DS_Store and friends
dev ignore vscode    # Add .vscode/ patterns

Patterns are managed in sections—run it twice and it won't duplicate.

Portable Configuration

Your ~/.devutils file stores your preferences:

{
  "user": {
    "name": "Jane Developer",
    "email": "jane@example.com"
  },
  "identities": {
    "work": { "email": "jane@company.com", "sshKey": "~/.ssh/id_ed25519_work" },
    "personal": { "email": "jane@gmail.com", "sshKey": "~/.ssh/id_ed25519_personal" }
  }
}

Copy this file to a new machine and run dev identity sync to regenerate all your SSH configs.

Supported Platforms

Platform Package Manager
macOS Homebrew
Ubuntu APT / Snap
Raspberry Pi OS APT / Snap
Amazon Linux DNF / YUM
Windows Chocolatey / winget
Git Bash Manual / Portable

Available Commands

Command Description
dev setup Install essential development tools
dev configure Set up your developer profile
dev install <tool> Install a tool (cross-platform)
dev identity add Create a new git identity with keys
dev identity link Link an identity to a folder or remote
dev identity unlink Remove a folder link
dev ignore <tech> Add .gitignore patterns
dev status Show current configuration

Why DevUtils CLI?

  • Zero memorization — Same commands on every platform
  • Identity isolation — Never accidentally commit with the wrong email again
  • Reproducible setups — New machine? dev setup && dev identity sync
  • No lock-in — Standard tools, standard configs. Uninstall anytime

Contributing

Contributions welcome! Feel free to open issues or submit pull requests.

Contact

Questions, suggestions, or just want to chat about the project?

Fred Lackey

License

Apache-2.0

About

A globally-installable Node.js CLI toolkit for bootstrapping and configuring development environments across any machine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •