Claude
Chat app · Skill upload
In Claude, open Customize → Skills and use Create skill to upload the ZIP. Skill availability depends on your plan and workspace settings.
Official Claude setup →Community skill · Free instruction package
Master of defensive Bash scripting for production automation, CI/CD pipelines, and system utilities. Expert in safe, portable, and testable shell scripts.
Community instruction package. Read the full workflow below, then choose your app in the setup guide. Package instructions and compatibility claims have not been individually verified; check dependencies and license before use.
CHOOSE YOUR AI APP
Choose your app below for setup instructions. Keep the complete downloaded folder together. Each package may need tools, dependencies or permissions that your app does not provide.
Chat app · Skill upload
In Claude, open Customize → Skills and use Create skill to upload the ZIP. Skill availability depends on your plan and workspace settings.
Official Claude setup →Chat app · Access varies
Where Skills is available, open Plugins → Skills → Create → Upload from your computer. Otherwise, copy the instructions into a chat and add your brief; this does not install a skill or include its supporting files.
Official ChatGPT setup →Agent · Project skills
Extract the complete skill folder into your project’s .agents/skills directory. Ask the agent to use the skill for your task.
.agents/skills/bash-pro/SKILL.mdOfficial Google Antigravity setup →Code editor · Project skills
Extract the complete folder into .cursor/skills. Check the editor’s skill settings and ask the agent to use it.
.cursor/skills/bash-pro/SKILL.mdOfficial Cursor setup →Coding agent · Project skills
Extract the complete folder into .claude/skills. Ask Claude to use the named skill, or use its slash command when available.
.claude/skills/bash-pro/SKILL.mdOfficial Claude Code setup →For text-only workflows, you can also paste the instructions into an AI conversation. Copying text does not enable scripts, connect accounts or grant tool access. App subscriptions may cost extra. Logos identify the products; KuchhBhi is independent and is not endorsed by these companies.
set -Eeuo pipefail and proper error trappingfor f in $(ls)[[ ]] for Bash conditionals, fall back to [ ] for POSIX compliancegetopts and usage functionsmktemp and cleanup trapsprintf over echo for predictable output formatting$() instead of backticks for readabilityshopt -s inherit_errexit for better error propagation in Bash 4.4+IFS=$'\n\t' to prevent unwanted word splitting on spaces: "${VAR:?message}" for required environment variables-- and use rm -rf -- "$dir" for safe operations--trace mode with set -x opt-in for detailed debuggingxargs -0 with NUL boundaries for safe subprocess orchestrationreadarray/mapfile for safe array population from command outputSCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"find -print0 | while IFS= read -r -d '' file; do ...; done#!/usr/bin/env bash shebang for portability across systems(( BASH_VERSINFO[0] >= 4 && BASH_VERSINFO[1] >= 4 )) for Bash 4.4+ featurescommand -v jq &>/dev/null || exit 1case "$(uname -s)" in Linux*) ... ;; Darwin*) ... ;; esacsed -i vs sed -i '')--verbose instead of -vvalidate_input_file not check_filefunction_name() {readonly to prevent accidental modificationlocal keyword for all function variables to avoid polluting global scopetimeout for external commands: timeout 30s curl ... prevents hangs[[ -r "$file" ]] || exit 1<(command) instead of temporary files when possible[[ $num =~ ^[0-9]+$ ]]eval on user input; use arrays for dynamic command construction(umask 077; touch "$secure_file")-- to separate options from arguments: rm -rf -- "$user_input": "${REQUIRED_VAR:?not set}"trap to ensure cleanup happens even on abnormal exitwhile read instead of for i in $(cat file)[[ ]] instead of test, ${var//pattern/replacement} instead of sedsed with multiple expressions)mapfile/readarray for efficient array population from command output$(( )) instead of expr for calculationsprintf over echo for formatted output (faster and more reliable)xargs -P for parallel processing when operations are independent--help and -h flags showing usage, options, and examples--version flag displaying script version and copyright informationshdoc from special comment formatsshellman for system integration${var@U} uppercase conversion, ${var@L} lowercase${parameter@operator} transformations, compat shopt options for compatibilityvarredir_close option, improved exec error handling, EPOCHREALTIME microsecond precision[[ ${BASH_VERSINFO[0]} -ge 5 && ${BASH_VERSINFO[1]} -ge 2 ]]${parameter@Q} for shell-quoted output (Bash 4.4+)${parameter@E} for escape sequence expansion (Bash 4.4+)${parameter@P} for prompt expansion (Bash 4.4+)${parameter@A} for assignment format (Bash 4.4+)wait -n to wait for any background job (Bash 4.3+)mapfile -d delim for custom delimiters (Bash 4.4+)shellcheck-problem-matchers for inline annotations.pre-commit-config.yaml with shellcheck, shfmt, checkbashismsshellcheck *.sh && shfmt -d *.sh && bats test/gitleaks or trufflehog to prevent credential leakslogger command for system log integrationlog_info() { logger -t "$SCRIPT_NAME" -p user.info "$*"; echo "[INFO] $*" >&2; }--help and provide clear usage informationenable=all and external-sources=true configuration-i 2 -ci -bn -sr -kp)for f in $(ls ...) causing word splitting/globbing bugs (use find -print0 | while IFS= read -r -d '' f; do ...; done)set -e without proper error trapping in complex flowsecho for data output (prefer printf for reliability)readarray/mapfile instead of command substitution)basher or bpkg for installing shell script dependenciesbasher install username/repo@version or bpkg install username/repo -gtrap 'echo "Error at line $LINENO: exit $?" >&2' ERR for debuggingtrap 'rm -rf "$tmpdir"' EXIT; tmpdir=$(mktemp -d)(( BASH_VERSINFO[0] >= 5 )) before using modern featuresreadarray -d '' files < <(find . -print0)declare -g result for returning complex data from functionsdeclare -A config=([host]="localhost" [port]="8080") for complex data structures${filename%.sh} remove extension, ${path##*/} basename, ${text//old/new} replace alltrap cleanup_function SIGHUP SIGINT SIGTERM for graceful shutdown{ cmd1; cmd2; } > output.log share redirection, ( cd dir && cmd ) use subshell for isolationcoproc proc { cmd; }; echo "data" >&"${proc[1]}"; read -u "${proc[0]}" result for bidirectional pipescat <<-'EOF' with - strips leading tabs, quotes prevent expansionwait $pid to wait for background job, jobs -p list background PIDscmd1 && cmd2 run cmd2 only if cmd1 succeeds, cmd1 || cmd2 run cmd2 if cmd1 failstouch file{1..10}.txt creates multiple files efficientlydeclare -n ref=varname creates reference to another variable (Bash 4.3+)set -Eeuo pipefail; shopt -s inherit_errexit for comprehensive error handlingxargs -P $(nproc) -n 1 command for parallel processing with CPU core countjq -n --arg key "$value" '{key: $key}' for JSON generationtime -v for detailed resource usage or TIMEFORMAT for custom timingThe instruction package is free to download. Your AI app, model usage, connected services and third-party assets may have separate costs.
It is a set of instructions for a compatible AI assistant. It does not run by itself, connect accounts or install an MCP server.
Check that the named folder contains SKILL.md directly, not a second nested ZIP folder. Confirm that your editor supports skills and that its current settings allow this location. See the official documentation below.