Skip to content

Repository files navigation

DevUtils CLI

Work in Progress -- This project is under active development and has not been fully tested in real-world environments. Commands may change, break, or behave unexpectedly. Use at your own risk. The stable, production-ready release will ship as v1.0. Until then, versions in the 0.x range should be considered pre-release.

A config-driven CLI toolkit for bootstrapping and managing development environments across any machine.

DevUtils replaces scattered dotfiles, setup scripts, and manual configuration with a single dev command. You tell it what you need, and it handles the rest -- whether you're setting up a new laptop, syncing git identities across machines, or managing tool installations.

Installation

npm install -g @fredlackey/devutils

Requires Node.js 18 or later.

Quick Start

Once installed, the dev command is available globally:

dev help# Show all available services and commands
dev version # Print the current version
dev config init # Walk through first-time setup
dev status # Check the health of your environment
dev ignore node # Add Node.js patterns to .gitignore
dev tools list # See what tools are installed
dev identity list # List your configured git identities
dev util list # Browse available utility functions

Command Reference

DevUtils organizes commands by service. The general pattern is:

dev <service> <method> [arguments] [flags]

Services

config -- User configuration and onboarding

MethodDescription
initRun first-time setup and create config files
showDisplay the current configuration
getRead a specific config value
setUpdate a specific config value
resetReset configuration to defaults
exportExport config to a file
importImport config from a file

machine -- Machine profiles and detection

MethodDescription
detectAuto-detect the current machine
showShow the active machine profile
setSet a machine profile value
listList all known machine profiles

identity -- Git identities, SSH keys, GPG signing

MethodDescription
addRegister a new git identity
removeRemove a registered identity
listList all identities
showShow details for a specific identity
linkLink an identity to a folder or repo
unlinkRemove a folder/repo identity link
syncSync identity configs to git and SSH

tools -- Tool installation and management

MethodDescription
installInstall a tool using the platform's package manager
checkCheck if a tool is installed
listList available or installed tools
searchSearch for tools by name

ignore -- .gitignore pattern management

MethodDescription
addAdd technology patterns to .gitignore
removeRemove a technology's patterns
listList available technologies
showShow patterns for a specific technology

util -- Utility functions

MethodDescription
addRegister a custom utility
removeUnregister a utility
listList all available utilities
showShow details for a specific utility
runExecute a utility

alias -- Shorthand bin entries

MethodDescription
addCreate a new alias
removeDelete an alias
listList all registered aliases
syncRegenerate alias wrapper scripts

auth -- OAuth and credential management

MethodDescription
loginAuthenticate with a service
logoutRevoke credentials for a service
listList authenticated services
statusShow current auth status
refreshRefresh an expired token

api -- API plugin system

MethodDescription
listList installed API plugins
enableEnable a plugin
disableDisable a plugin
updateUpdate a plugin to latest version

ai -- AI coding assistant launcher

MethodDescription
launchStart an AI coding session
resumeResume a previous session
listList configured AI tools
sessionsList past sessions
showShow details for a session or AI tool
setUpdate AI tool settings

search -- Markdown search

MethodDescription
queryRun a general search
keywordSearch by keyword
semanticSearch by meaning (requires AI plugin)
getRetrieve a specific search result
collectionsList indexed collections
indexBuild or rebuild the search index
statusShow indexing status

Top-Level Commands

These commands don't belong to a service and are called directly:

CommandDescription
statusOverall health check
versionShow current version
helpShow the help message
schemaIntrospect available commands
updateUpdate DevUtils to latest version

Global Flags

These flags work with any command:

FlagDescription
--format <json|table|yaml|csv>Set the output format
--dry-runShow what would happen without doing it
--verboseIncrease output detail
--quietSuppress non-essential output
--json <data>Pass structured input as JSON
--help, -hShow help
--version, -vShow version

API Plugin System

DevUtils doesn't bundle API integrations directly. Instead, API wrappers are installed as separate plugin packages and managed through the dev api service.

Plugins live in ~/.devutils/plugins/ and are registered in ~/.devutils/plugins.json. Each plugin is a standard npm package that exports a defined interface. This keeps the core CLI small and lets you add only the integrations you actually use.

dev api list # See what's installed
dev api enable<plugin># Enable a plugin
dev api disable <plugin># Disable a plugin
dev api update <plugin># Update to latest version

Configuration

All user data lives in ~/.devutils/, created during dev config init:

  • config.json -- User preferences, profile name, backup location
  • aliases.json -- Registered alias mappings
  • ai.json -- AI tool configurations
  • plugins.json -- Installed API plugin registry
  • machines/ -- Machine profiles
  • auth/ -- OAuth tokens and API credentials
  • plugins/ -- Installed API plugin packages
  • utils/ -- User-added custom utilities
  • bin/ -- Generated alias wrapper scripts (added to PATH)
  • cache/ -- Temporary data

Supported Platforms

PlatformPackage Manager
macOSHomebrew
UbuntuAPT, Snap
Raspberry Pi OSAPT, Snap
Amazon LinuxDNF, YUM
WindowsChocolatey, winget
Git BashManual / Portable

Current Status

DevUtils is in pre-release (0.1.x). The core framework, command routing, and service structure are in place. Basic smoke tests pass on Ubuntu 24.04 in Docker, but deeper integration testing -- real Git operations, SSH key workflows, GitHub auth, tool installation, and interactive prompts -- has not been completed yet.

What's working:

  • Command routing and service discovery across all 11 services
  • Config init, show, get, set, reset, file-based export/import
  • Machine detection and profile management
  • Gitignore pattern management (add, remove, list, show)
  • Tool check, list, search, and dry-run install
  • Identity CRUD (add, list, show, remove)
  • Alias management and wrapper generation
  • AI tool configuration
  • Schema introspection
  • Platform detection (macOS, Ubuntu, Raspberry Pi OS, Amazon Linux, Windows, Git Bash)

What still needs real-world testing:

  • SSH key generation and GitHub integration
  • Git identity sync to actual repositories
  • Config backup/restore via remote Git repo
  • OAuth login flows
  • Tool installation on each supported platform
  • API plugin installation and lifecycle
  • AI session launch and resume
  • QMD search indexing and queries

Patch versions (0.1.1, 0.1.2, etc.) will ship as issues are found and fixed during hands-on use. Minor version bumps (0.2.0) are reserved for breaking changes. The first stable release will be v1.0.0.

Contact

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages