Skip to content

Swiss-army-knife CLI compatible with BASH & ZSH on Debian and Macintosh with an array of utilities for optimising your development workflow and productivity in the terminal

License

Notifications You must be signed in to change notification settings

hwixley/WYX-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑️ WYX CLI ⚑️

Optimize your development productivity in the terminal


CODEQL Deploy Jekyll GH-Pages Generate Stdout Image
License Version
Shell Support Operating Systems Git Support



Table of Contents


What It Does

Provides developers with the ability for optimising the execution of commonly performed tasks, commands, directory navigations, and environment setups/script executions.

Why It Was Made

I found myself executing the same commands repeatedly, finding navigation on the terminal for frequently accessed locations needlessly slow, and the task of pushing out new code via manually submitting a PR on my browser repetitive and time-wasting. I decided to start developing my own bash scripting library to help alleviate these issues, and realized the whole world of opportunity I had to help optimize my own daily workflows on the terminal. Due to my experience working simultaneously on Mac and Linux machines one of the key parts of the WYX-CLI project was to also allow the same code to run in different shells and operating systems.


Support This Project

If you have found this tool useful/insightful please leave a ⭐ on the repository it really helps me out!

I also have a buymeacoffee sponsor link if you would like to help turn my caffeine addiction into a problem β˜•βš‘


Installation

  1. Clone this repository into a folder of your choice:
git clone [email protected]:hwixley/WYX-CLI.git
  1. Navigate into the directory:
cd WYX-CLI
  1. Give permissions to the setup script and run it:
chmod +x setup.sh && ./setup.sh
  1. Reopen your terminal or run source ~/.bashrc (source ~/.zshrc for ZSH shells)

Type wyx to see the list of commands and start developing some magic!

Extra Feature Setup

  1. GPT Smart Commit - a feature that uses OpenAI's ChatGPT to write informative commit messages for you (using your git diff and git status outputs) when using the wyx push command (or other wyx commands which use push, ie. wyx nb, wyx bpr etc.). This requires an OpenAI API key.
wyx setup smart_commit
  1. Terminal GPT client - a feature that allows you to talk to OpenAI's ChatGPT directly in the terminal using the wyx ask-gpt command. This requires an OpenAI API key.
wyx setup openai_key
  1. WYX-CLI Auto Update - a feature that allows you to toggle auto-updates on your WYX-CLI installation. When turned on this will perform a git pull to the upstream repository whenever you call wyx with no arguments (to prevent slowing down regular command usage).
wyx setup auto_update

Factory-reset Installation

  1. Remove your cloned repository
rm -rf <path-of-installation>
  1. Remove the wyx-cli script setup in your environment file
    • Open the file in an editor: (~/.bashrc or ~/.zshrc depending on your shell)
      gedit ~/.bashrc
      
      If gedit is not available you can always use vim instead:
      vi ~/.bashrc
      
    • Remove the 2 lines for the wyx-cli:
      • The first line is a comment: # WYX-CLI
      • The second line is where the command is actually setup: alias wyx="<path-of-installation>/wyx-cli.sh"
  2. Follow the installation instructions

Dependencies

View current dependencies for your WYX-CLI configuration by running:

wyx list-deps

List of Commands

VERSION πŸ“¦

  • version: WYX-CLI Version

DEPENDENCIES πŸ“¦

  • install-deps: Install WYX-CLI dependencies
  • update-deps: Update the project dependencies
  • list-deps: List the project dependencies

SYSTEM πŸ–₯️

  • sys-info: Get Detailed System Information

DIRECTORY NAVIGATION πŸ“

  • cd <mydir?>: Navigate Directory Aliases
  • back: Go Back A Directory

CODE πŸ’²

  • run <myscript>: Run Script Aliases
  • vsc <mydir>: Open Directory Aliases in VSCode

GIT AUTOMATION πŸ™

  • ginit: Initialise Git Repository
  • push: Add-Commit-Push Git Changes to Current Branch
  • pull: Pull Git Changes for Current Branch
  • mpull: Checkout-Pull Git Changes From Master/Main Branch
  • commits: View Your Branch Git Commits
  • lastcommit: View Your Last Commit & Copy It's SHA
  • nb <branch-name?>: Checkout-Add-Commit-Push A New Git Branch
  • pr: Open A Pull Request From Your Current Git Branch on GitHub/GitLab/BitBucket/Azure
  • bpr <branch-name?>: Checkout-Add-Commit-Push New Git Branch & Open PR On GitHub/GitLab/BitBucket/Azure
  • pp: Pull-Push Git Changes to Current Branch

URLs πŸ”—

  • repo: View Your Repository On GitHub/GitLab/BitBucket/Azure
  • branch: View Your Current Branch On GitHub/GitLab/BitBucket/Azure
  • pipelines: View Your Pipelines On GitHub/GitLab/BitBucket/Azure
  • issues: View Your Repository Issues On GitHub/GitLab/BitBucket/Azure
  • prs: View Your Repository PRs On GitHub/GitLab/BitBucket/Azure
  • notifs: View Your GitHub Notifications
  • profile: View Your GitHub Profile
  • org <myorg?>: View Your GitHub Organisation

ENV/KEYSTORE πŸ—οΈ

  • keystore <key?> <value?>: Add a key-value pair to your '.env' keystore
  • setup <smart_commit|openai_key|auto_update>: "Setup: ChatGPT commits, ChatGPT client, WYX-CLI auto-updates"

MY DATA πŸ“‚

  • user: View Your User Configuration
  • mydirs: View Your Directory Aliases Configuration
  • myorgs: View Your GitHub Organisation Configuration
  • myscripts: View Your Scripts Configuration
  • todo: View Your To-Do List

MANAGE MY DATA πŸ“‚

  • editd <user|myorgs|mydirs|myscripts|todo>: Edit Your WYX-CLI Configuration
  • edits <myscript?>: Edit A Script File
  • newscript <name?>: Create A New Script

FILE UTILITIES πŸ“

  • find <regex?>: Regex Search Current Directory For File
  • fopen <dir|mydir?>: Open current directory in your files application
  • encrypt <file|dir?>: Encrypt a file using GPG
  • decrypt <file?>: Decrypt a GPG-encrypted file

NETWORK UTILITIES πŸ“‘

  • ip: View Your Local & Public IPs
  • wifi: View Available WiFi Networks
  • hardware-ports: View Your Hardware Ports
  • wpass: View Your Saved WiFi Passwords
  • speedtest: Run A Speed Test On Your Network
  • port-scan <host?> <port-range?>: Scan for open ports on a host

WEB UTILITIES 🌐

  • webtext <url?>: Read-only websites in your terminal

AI UTILITIES πŸ€–

  • ask-gpt: Start a conversation with ChatGPT

TEXT UTILITIES πŸ“

  • genpass <pass-length?>: Generate A Random Password
  • genhex <length?>: Generate A Random Hex String
  • genb64 <length?>: Generate A Random Base64 String
  • lastcmd: Copy Your Last Command To Your Clipboard
  • copy $(<command?>): Copy output of a command to clipboard

IMAGE UTILITIES πŸ“Έ

  • genqr <url?> <name?>: Generate a QR code from a URL
  • upscale <file?> <scale-multiplier?>: Scale up an image (uses no smoothing)

MISC UTILITIES πŸ› οΈ

  • weather: View the weather forecast for your location in the terminal
  • moon: View the moon phase
  • leap-year: Check when the next leap year is

HELP UTILITIES ℹ️

  • help: View WYX-CLI Documentation
  • explain <command?>: Explain a bash command
  • google <query?>: Google a query