
Shell Shortcuts
- 7 installs
- 8 repo stars
- Updated August 4, 2026
- wangyendt/wayne-skills
Helps with ai & agent building tasks.
About
shell-shortcuts is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- shell-shortcuts
- AI & Agent Building
- AI-coding skill
Shell Shortcuts by the numbers
- 7 all-time installs (skills.sh)
- Ranked #12,520 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wangyendt/wayne-skills --skill shell-shortcutsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 8 |
| Last updated | August 4, 2026 |
| Repository | wangyendt/wayne-skills ↗ |
What it does
Helps with ai & agent building tasks.
Files
Shell Shortcuts (proxy_on, proxy_off, goto, gpu, conda autostart)
Goal: make a fresh machine behave the same across Windows / macOS / Ubuntu with a small set of commands:
proxy_on/proxy_off: toggle terminal proxy (env vars + Git global proxy)goto: persistent path shortcuts (e.g.goto work)gpu: show NVIDIA GPU status (nvidia-smiwrapper; Windows/Ubuntu only)- Optional: auto-activate a Conda env when a new shell starts
This skill is intentionally opinionated:
- Prefer PowerShell on Windows for the full
gotoexperience. - Keep everything idempotent by putting functions/scripts behind a clearly-marked block.
Defaults (edit as needed)
- HTTP/HTTPS proxy:
http://127.0.0.1:7890 - SOCKS5 proxy:
socks5://127.0.0.1:7890 - NO_PROXY:
localhost,127.0.0.1,.qualcomm.com,*.amazonaws.com
Windows: PowerShell (recommended)
Edit your PowerShell profile: $PROFILE
Add (or replace) a block like below. The goto DB is $HOME\.goto_paths.json.
# >>> shell-shortcuts >>>
function proxy_off {
param([switch]$Quiet)
Remove-Item Env:http_proxy,Env:https_proxy,Env:all_proxy,Env:no_proxy -ErrorAction SilentlyContinue
Remove-Item Env:HTTP_PROXY,Env:HTTPS_PROXY,Env:ALL_PROXY,Env:NO_PROXY -ErrorAction SilentlyContinue
if (Get-Command git -ErrorAction SilentlyContinue) {
git config --global --unset http.proxy 2>$null | Out-Null
git config --global --unset https.proxy 2>$null | Out-Null
}
if (-not $Quiet) { Write-Host "Proxy is OFF" }
}
function proxy_on {
param(
[string]$HttpProxyUrl = "http://127.0.0.1:7890",
[string]$SocksProxyUrl = "socks5://127.0.0.1:7890",
[string]$NoProxyList = "localhost,127.0.0.1,.qualcomm.com,*.amazonaws.com"
)
proxy_off -Quiet
$env:http_proxy = $HttpProxyUrl
$env:https_proxy = $HttpProxyUrl
$env:HTTP_PROXY = $HttpProxyUrl
$env:HTTPS_PROXY = $HttpProxyUrl
$env:all_proxy = $SocksProxyUrl
$env:ALL_PROXY = $SocksProxyUrl
$env:no_proxy = $NoProxyList
$env:NO_PROXY = $NoProxyList
if (Get-Command git -ErrorAction SilentlyContinue) {
git config --global http.proxy $HttpProxyUrl | Out-Null
git config --global https.proxy $HttpProxyUrl | Out-Null
}
Write-Host "Proxy is ON"
Write-Host " HTTP/HTTPS: $HttpProxyUrl"
Write-Host " SOCKS5: $SocksProxyUrl"
Write-Host " NO_PROXY: $NoProxyList"
}
function _goto_db_path {
Join-Path $HOME ".goto_paths.json"
}
function _goto_load {
$db = _goto_db_path
if (-not (Test-Path -LiteralPath $db)) { return @{} }
try {
$raw = Get-Content -Raw -Encoding UTF8 -LiteralPath $db
if (-not $raw.Trim()) { return @{} }
$obj = $raw | ConvertFrom-Json
$ht = @{}
foreach ($p in $obj.PSObject.Properties) { $ht[$p.Name] = [string]$p.Value }
return $ht
} catch {
throw "Failed to parse goto DB: $db. Fix JSON or delete it."
}
}
function _goto_save([hashtable]$ht) {
$db = _goto_db_path
$dir = Split-Path -Parent $db
if (-not (Test-Path -LiteralPath $dir)) { New-Item -ItemType Directory -Path $dir | Out-Null }
($ht | ConvertTo-Json -Depth 5) | Set-Content -Encoding UTF8 -LiteralPath $db
}
function goto {
param(
[Parameter(Position = 0)][string]$Cmd,
[Parameter(ValueFromRemainingArguments = $true)][string[]]$Rest
)
$ht = _goto_load
switch ($Cmd) {
{ $_ -in @($null, "", "ls", "list") } {
if ($ht.Count -eq 0) { Write-Host "No shortcuts. Use: goto add <key> <path>"; return }
Write-Host "Available shortcuts:"
foreach ($k in ($ht.Keys | Sort-Object)) {
"{0,-12} -> {1}" -f $k, $ht[$k] | Write-Host
}
return
}
"add" {
if ($Rest.Count -lt 2) { throw "Usage: goto add <shortcut> <path>" }
$key = $Rest[0]
$path = ($Rest | Select-Object -Skip 1) -join " "
if ($path -like "~*") { $path = $path -replace "^~", $HOME }
$resolved = Resolve-Path -LiteralPath $path -ErrorAction Stop
$ht[$key] = $resolved.Path
_goto_save $ht
Write-Host "Added: $key -> $($ht[$key])"
return
}
{ $_ -in @("rm","remove","del") } {
if ($Rest.Count -ne 1) { throw "Usage: goto remove <shortcut>" }
$key = $Rest[0]
$ht.Remove($key) | Out-Null
_goto_save $ht
Write-Host "Removed: $key"
return
}
"clear" {
_goto_save @{}
Write-Host "All shortcuts cleared."
return
}
default {
if (-not $Cmd) { return }
if (-not $ht.ContainsKey($Cmd)) {
Write-Host "Unknown shortcut: $Cmd"
Write-Host "Tip: goto list"
return 1
}
Set-Location -LiteralPath $ht[$Cmd]
return
}
}
}
function gpu {
$cmd = Get-Command nvidia-smi -ErrorAction SilentlyContinue
if (-not $cmd) {
Write-Host "nvidia-smi not found (need NVIDIA driver/tools)."
return 1
}
& $cmd.Path
}
# Optional: Conda auto-activate (edit these)
# $CondaRoot = "D:\\ProgramData\\miniconda3"
# $CondaEnv = "wayne3.10"
# if (Test-Path -LiteralPath (Join-Path $CondaRoot "Scripts\\conda.exe")) {
# $hook = (& (Join-Path $CondaRoot "Scripts\\conda.exe") "shell.powershell" "hook") 2>$null | Out-String
# if ($hook) { Invoke-Expression $hook }
# conda activate $CondaEnv
# }
# <<< shell-shortcuts <<<Usage:
proxy_on
proxy_off
goto list
goto add work D:\work
goto work
gpuWindows: CMD (optional)
CMD has a reserved goto keyword. Use jump as the real command, and optionally alias goto to jump for interactive sessions via doskey.
Recommended layout:
- Put scripts in
C:\Users\<You>\bin\ - Add that folder to PATH (or do it in your CMD startup script)
Create C:\Users\<You>\cmd_startup.cmd:
@echo off
set "PATH=%USERPROFILE%\bin;%PATH%"
REM Optional: conda auto-activate (edit these)
REM call "D:\ProgramData\miniconda3\condabin\conda.bat" activate wayne3.10
REM Interactive alias only (scripts/cmd /c should call jump directly)
doskey goto=jump $*Enable AutoRun (current user):
reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun /t REG_SZ /d "%USERPROFILE%\cmd_startup.cmd" /fImplement these .cmd files under %USERPROFILE%\bin:
proxy_on.cmd / proxy_off.cmd: set/unset proxy env vars and set/unset Git global proxy.
gpu.cmd: run nvidia-smi.
jump.cmd: persistent shortcut DB at %USERPROFILE%\.goto_paths (format: key|C:\abs\path).
If you need exact templates, read shell-shortcuts/references/windows-cmd.md.
macOS / Ubuntu (bash/zsh)
Add functions to ~/.zshrc or ~/.bashrc:
proxy_on/proxy_offgoto(persistent DB at~/.goto_paths)- Ubuntu:
gpu(requiresnvidia-smi)
Templates are in shell-shortcuts/references/unix.md (copy/paste and adjust proxy defaults).
macOS / Ubuntu (bash/zsh) Templates
Install location:
- zsh:
~/.zshrc - bash:
~/.bashrc(or~/.bash_profile)
proxy_on / proxy_off
proxy_on() {
http_proxy_url="http://127.0.0.1:7890"
socks_proxy_url="socks5://127.0.0.1:7890"
no_proxy_list="localhost,127.0.0.1,.qualcomm.com,*.amazonaws.com"
proxy_off >/dev/null 2>&1
export http_proxy="$http_proxy_url"
export https_proxy="$http_proxy_url"
export HTTP_PROXY="$http_proxy_url"
export HTTPS_PROXY="$http_proxy_url"
export all_proxy="$socks_proxy_url"
export ALL_PROXY="$socks_proxy_url"
export no_proxy="$no_proxy_list"
export NO_PROXY="$no_proxy_list"
command -v git >/dev/null 2>&1 && git config --global http.proxy "$http_proxy_url"
command -v git >/dev/null 2>&1 && git config --global https.proxy "$http_proxy_url"
echo "Proxy is ON"
echo " HTTP/HTTPS: $http_proxy_url"
echo " SOCKS5: $socks_proxy_url"
echo " NO_PROXY: $no_proxy_list"
}
proxy_off() {
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY no_proxy NO_PROXY
command -v git >/dev/null 2>&1 && git config --global --unset http.proxy >/dev/null 2>&1
command -v git >/dev/null 2>&1 && git config --global --unset https.proxy >/dev/null 2>&1
echo "Proxy is OFF"
}goto (portable: zsh/bash without associative arrays)
Persistent DB: ~/.goto_paths (format: key<TAB>/abs/path).
GOTO_DB="$HOME/.goto_paths"
_goto_absdir() {
p="$1"
[ -z "$p" ] && return 1
p="${p/#\~/$HOME}"
(cd "$p" 2>/dev/null && pwd -P)
}
_goto_list() {
echo "Available shortcuts:"
[ -f "$GOTO_DB" ] || return 0
awk -F'\t' 'NF>=2 {printf " %-12s -> %s\n", $1, $2}' "$GOTO_DB" | sort
}
_goto_set() {
key="$1"; path="$2"
tmp="${GOTO_DB}.tmp"
mkdir -p "$(dirname "$GOTO_DB")" 2>/dev/null
[ -f "$GOTO_DB" ] || : >"$GOTO_DB"
awk -F'\t' -v k="$key" '$1!=k {print $0}' "$GOTO_DB" >"$tmp" && mv "$tmp" "$GOTO_DB"
printf "%s\t%s\n" "$key" "$path" >>"$GOTO_DB"
}
_goto_del() {
key="$1"
[ -f "$GOTO_DB" ] || return 0
tmp="${GOTO_DB}.tmp"
awk -F'\t' -v k="$key" '$1!=k {print $0}' "$GOTO_DB" >"$tmp" && mv "$tmp" "$GOTO_DB"
}
goto() {
cmd="$1"
case "$cmd" in
""|ls|list)
_goto_list
;;
add)
key="$2"; shift 2
path="$*"
[ -z "$key" ] || [ -z "$path" ] && { echo "Usage: goto add <shortcut> <path>"; return 1; }
abs="$(_goto_absdir "$path")" || { echo "Invalid path: $path"; return 1; }
_goto_set "$key" "$abs"
echo "Added: $key -> $abs"
;;
rm|remove|del)
key="$2"
[ -z "$key" ] && { echo "Usage: goto remove <shortcut>"; return 1; }
_goto_del "$key"
echo "Removed: $key"
;;
clear|removeAll|rmAll)
: >"$GOTO_DB"
echo "All shortcuts cleared."
;;
*)
target=""
[ -f "$GOTO_DB" ] && target="$(awk -F'\t' -v k="$cmd" '$1==k {print $2; exit}' "$GOTO_DB")"
if [ -n "$target" ]; then
cd "$target" || return 1
else
echo "Unknown shortcut: $cmd"
echo "Tip: goto list"
return 1
fi
;;
esac
}gpu (Ubuntu only, NVIDIA)
gpu() {
if ! command -v nvidia-smi >/dev/null 2>&1; then
echo "nvidia-smi not found (need NVIDIA driver + tools)"
return 1
fi
echo "======== GPU Overview ========"
printf "%-3s %-25s %-6s %-6s %-8s %-20s %-6s\n" "ID" "Name" "Temp" "Fan" "Power" "VRAM" "Util"
nvidia-smi --query-gpu=index,name,temperature.gpu,fan.speed,power.draw,memory.used,memory.total,utilization.gpu \
--format=csv,noheader,nounits 2>/dev/null | \
awk -F', ' '{
name = substr($2, 1, 24);
printf "%-3s %-25s %-6s %-6s %-8s %-6s / %-5s MB %-6s\n",
$1, name, $3"C", $4"%", $5"W", $6, $7, $8"%"
}'
}Windows CMD Templates
These templates assume:
- Scripts live in
%USERPROFILE%\bin - You run them in interactive CMD (or in
cmd /ccontexts)
proxy_on.cmd
@echo off
setlocal
set "HTTP_PROXY_URL=http://127.0.0.1:7890"
set "SOCKS_PROXY_URL=socks5://127.0.0.1:7890"
set "NO_PROXY_LIST=localhost,127.0.0.1,.qualcomm.com,*.amazonaws.com"
call proxy_off >nul 2>nul
endlocal & (
set "http_proxy=%HTTP_PROXY_URL%"
set "https_proxy=%HTTP_PROXY_URL%"
set "HTTP_PROXY=%HTTP_PROXY_URL%"
set "HTTPS_PROXY=%HTTP_PROXY_URL%"
set "all_proxy=%SOCKS_PROXY_URL%"
set "ALL_PROXY=%SOCKS_PROXY_URL%"
set "no_proxy=%NO_PROXY_LIST%"
set "NO_PROXY=%NO_PROXY_LIST%"
)
where git >nul 2>nul && (
git config --global http.proxy "%HTTP_PROXY_URL%"
git config --global https.proxy "%HTTP_PROXY_URL%"
)
echo Proxy is ON
echo HTTP/HTTPS: %HTTP_PROXY_URL%
echo SOCKS5: %SOCKS_PROXY_URL%
echo NO_PROXY: %NO_PROXY_LIST%proxy_off.cmd
@echo off
set "http_proxy="
set "https_proxy="
set "HTTP_PROXY="
set "HTTPS_PROXY="
set "all_proxy="
set "ALL_PROXY="
set "no_proxy="
set "NO_PROXY="
where git >nul 2>nul && (
git config --global --unset http.proxy >nul 2>nul
git config --global --unset https.proxy >nul 2>nul
)
echo Proxy is OFFgpu.cmd
@echo off
where nvidia-smi >nul 2>nul || (
echo nvidia-smi not found (need NVIDIA driver/tools)
exit /b 1
)
nvidia-smijump.cmd (CMD version of goto)
Persistent DB: %USERPROFILE%\.goto_paths (format: key|C:\abs\path).
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "DB=%USERPROFILE%\.goto_paths"
if not exist "%DB%" type nul > "%DB%"
if "%~1"=="" goto :list
if /i "%~1"=="ls" goto :list
if /i "%~1"=="list" goto :list
if /i "%~1"=="add" goto :add
if /i "%~1"=="rm" goto :rm
if /i "%~1"=="remove" goto :rm
if /i "%~1"=="del" goto :rm
if /i "%~1"=="clear" goto :clear
set "KEY=%~1"
for /f "tokens=1* delims=|" %%A in ('findstr /b /c:"%KEY%|" "%DB%" 2^>nul') do set "TARGET=%%B"
if not defined TARGET (
echo Unknown shortcut: %KEY%
echo Tip: jump list
exit /b 1
)
cd /d "%TARGET%"
exit /b 0
:list
echo Available shortcuts:
for /f "usebackq tokens=1* delims=|" %%A in ("%DB%") do (
if not "%%~A"=="" echo %%~A -^> %%~B
)
exit /b 0
:add
set "KEY=%~2"
if "%KEY%"=="" (
echo Usage: jump add ^<shortcut^> ^<path^>
exit /b 1
)
shift /1
shift /1
set "PATHVAL=%*"
if "%PATHVAL%"=="" (
echo Usage: jump add ^<shortcut^> ^<path^>
exit /b 1
)
if not exist "%PATHVAL%" (
echo Invalid path: %PATHVAL%
exit /b 1
)
set "TMP=%DB%.tmp"
findstr /v /b /c:"%KEY%|" "%DB%" > "%TMP%" 2>nul
echo %KEY%^|%PATHVAL%>> "%TMP%"
move /y "%TMP%" "%DB%" >nul
echo Added: %KEY% -^> %PATHVAL%
exit /b 0
:rm
set "KEY=%~2"
if "%KEY%"=="" (
echo Usage: jump remove ^<shortcut^>
exit /b 1
)
set "TMP=%DB%.tmp"
findstr /v /b /c:"%KEY%|" "%DB%" > "%TMP%" 2>nul
move /y "%TMP%" "%DB%" >nul
echo Removed: %KEY%
exit /b 0
:clear
type nul > "%DB%"
echo All shortcuts cleared.
exit /b 0