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.xrange 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.
npm install -g @fredlackey/devutilsRequires Node.js 18 or later.
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 functionsDevUtils organizes commands by service. The general pattern is:
dev <service> <method> [arguments] [flags]
| Method | Description |
|---|---|
init |
Run first-time setup and create config files |
show |
Display the current configuration |
get |
Read a specific config value |
set |
Update a specific config value |
reset |
Reset configuration to defaults |
export |
Export config to a file |
import |
Import config from a file |
| Method | Description |
|---|---|
detect |
Auto-detect the current machine |
show |
Show the active machine profile |
set |
Set a machine profile value |
list |
List all known machine profiles |
| Method | Description |
|---|---|
add |
Register a new git identity |
remove |
Remove a registered identity |
list |
List all identities |
show |
Show details for a specific identity |
link |
Link an identity to a folder or repo |
unlink |
Remove a folder/repo identity link |
sync |
Sync identity configs to git and SSH |
| Method | Description |
|---|---|
install |
Install a tool using the platform's package manager |
check |
Check if a tool is installed |
list |
List available or installed tools |
search |
Search for tools by name |
| Method | Description |
|---|---|
add |
Add technology patterns to .gitignore |
remove |
Remove a technology's patterns |
list |
List available technologies |
show |
Show patterns for a specific technology |
| Method | Description |
|---|---|
add |
Register a custom utility |
remove |
Unregister a utility |
list |
List all available utilities |
show |
Show details for a specific utility |
run |
Execute a utility |
| Method | Description |
|---|---|
add |
Create a new alias |
remove |
Delete an alias |
list |
List all registered aliases |
sync |
Regenerate alias wrapper scripts |
| Method | Description |
|---|---|
login |
Authenticate with a service |
logout |
Revoke credentials for a service |
list |
List authenticated services |
status |
Show current auth status |
refresh |
Refresh an expired token |
| Method | Description |
|---|---|
list |
List installed API plugins |
enable |
Enable a plugin |
disable |
Disable a plugin |
update |
Update a plugin to latest version |
| Method | Description |
|---|---|
launch |
Start an AI coding session |
resume |
Resume a previous session |
list |
List configured AI tools |
sessions |
List past sessions |
show |
Show details for a session or AI tool |
set |
Update AI tool settings |
| Method | Description |
|---|---|
query |
Run a general search |
keyword |
Search by keyword |
semantic |
Search by meaning (requires AI plugin) |
get |
Retrieve a specific search result |
collections |
List indexed collections |
index |
Build or rebuild the search index |
status |
Show indexing status |
These commands don't belong to a service and are called directly:
| Command | Description |
|---|---|
status |
Overall health check |
version |
Show current version |
help |
Show the help message |
schema |
Introspect available commands |
update |
Update DevUtils to latest version |
These flags work with any command:
| Flag | Description |
|---|---|
--format <json|table|yaml|csv> |
Set the output format |
--dry-run |
Show what would happen without doing it |
--verbose |
Increase output detail |
--quiet |
Suppress non-essential output |
--json <data> |
Pass structured input as JSON |
--help, -h |
Show help |
--version, -v |
Show version |
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 versionAll user data lives in ~/.devutils/, created during dev config init:
config.json-- User preferences, profile name, backup locationaliases.json-- Registered alias mappingsai.json-- AI tool configurationsplugins.json-- Installed API plugin registrymachines/-- Machine profilesauth/-- OAuth tokens and API credentialsplugins/-- Installed API plugin packagesutils/-- User-added custom utilitiesbin/-- Generated alias wrapper scripts (added to PATH)cache/-- Temporary data
| Platform | Package Manager |
|---|---|
| macOS | Homebrew |
| Ubuntu | APT, Snap |
| Raspberry Pi OS | APT, Snap |
| Amazon Linux | DNF, YUM |
| Windows | Chocolatey, winget |
| Git Bash | Manual / Portable |
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.
Fred Lackey
- Email: fred.lackey@gmail.com
- Website: fredlackey.com
- GitHub: @FredLackey
Apache-2.0