A Node.js CLI tool with handy utilities for "experienced" developers and sysadmins - so you don't even have to move a muscle π.
bot0x kbp <port>
/bot0x killbyport <port>
: Kill process by portbot0x gitclean
: Clean up merged git branches (except main/master)bot0x flushdns
: Flush DNS cache (macOS, Windows, Linux)
bot0x --help
bot0x kbp 3000
bot0x gitclean
bot0x flushdns
Run:
npm install -g bot0x
bot0x welcome
Then follow the instructions in the welcome message.
Bot0x commands fall into two categories:
- Shell Environment Commands: Commands that need to modify your current shell environment (like AWS profile switching)
- Regular Commands: Commands that don't need to modify your shell environment (like
ccio
,kbp
, etc.)
Add both of these to your .zshrc
or .bashrc
:
# 1. Set up commands that modify your shell environment
eval "$(bot0x shellScript --print)"
# 2. Set up all other commands as shell aliases
eval "$(bot0x alias)"
This creates:
-
Shell functions for commands that modify your shell environment:
awssr <env>
- Switch AWS role and context (dev, staging, prod, etc.)awsp <profile>
- Switch AWS profileawsdr <role>
- Unset AWS credential environment variablesawsdrAll
- Run awsdr && awsrmfaa && kubectx for all environmentsawsrmfaa <role>
- Assume AWS MFA role automaticallyawsmfa <profile>
- Generate AWS MFA token
-
Shell aliases for all other commands:
- These aliases let you run commands like
kbp 3000
orgitclean
directly in your shell - Note: The
alias
command automatically excludes commands that requireeval
, so there are no conflicts between the two.
- These aliases let you run commands like
If you prefer, you can save the shell environment functions to a file:
# Save the shell functions to a file
bot0x shellScript --print > ~/.bot0x-env.sh
# Then in your .zshrc or .bashrc:
source ~/.bot0x-env.sh
eval "$(bot0x alias)"
# Use shell functions for environment commands
awsrda
awsp default-root
# Use regular aliases for other commands
ccio
kbp 3000
gitclean
- Why?
- Faster workflows (type
kbp 8080
instead ofbot0x kbp 8080
) - Shell completion and history for subcommands
- Feels like a suite of first-class tools
- Faster workflows (type
- How does it work?
- The built-in
alias
command emits shell functions for each subcommand, which forward tobot0x
. - Inspired by the GitHub CLI's alias system (see this blog post).
- The built-in
Note: This is optional. You can always use
bot0x <command>
as normal.
- Each command lives in its own module in
lib/commands/
- Uses commander for CLI parsing
- Uses shelljs for shell commands
- Uses chalk for colorful output
- Uses inquirer for interactive prompts
bot0x/
βββ bin/index.js # CLI entry point
βββ bot0x.sh # Shell script for environment-modifying commands
βββ lib/
β βββ commands/ # CLI commands
β β βββ alias.js
β β βββ gitclean.js
β β βββ gitreset.js
β β βββ killbyport.js
β β βββ kubectlGet*.js
β β βββ shellScript.js
β β βββ ... (30+ commands)
β βββ utils/ # Shared utilities
β βββ config.js
β βββ logger.js
β βββ secretStore.js
βββ package.json
βββ README.md
To use bot0x
globally from any terminal during development, run:
npm link
This symlinks your project as a global CLI, so you can run bot0x
and all its subcommands from anywhere. This is also required for the alias integration to work as expected.
- After running
npm link
, you can testbot0x
,kbp
,gitclean
, etc. from any directory. - Changes you make to your code will be reflected immediately (no need to re-link).
MIT