# Strict Developer Environment Installer A robust, idempotent, and interactive bash script to bootstrap your macOS, Linux, or WSL development environment. This script follows a **"Strict Official Source"** philosophy. It fetches binaries and installers directly from official maintainers, or from the operating system vendor's signed repositories when upstream does not publish native binaries for that platform. ## ✨ Key Features * **Zero-Brew Dependency:** By default, it bypasses Homebrew entirely, using official APIs, release pages, and signed OS repositories (Homebrew is available as an optional install). * **Idempotent:** Safe to run multiple times. It intelligently checks if a tool is already installed before attempting to download it. * **Dynamic Versioning:** Uses official APIs (like GitHub Releases or `go.dev/VERSION`) when maintainers publish versioned binaries. OS-packaged tools track the supported distribution version and security updates. * **Auto-Path Management:** Intelligently injects paths into a dedicated `~/.pathrc` (or your `.bashrc`/`.zshrc`) without mangling your config files. * **Architecture Aware:** Automatically detects if you are running on Intel (`x86_64`) or Apple Silicon/ARM (`aarch64`/`arm64`) and downloads the correct binaries. ## 🚀 Usage You can launch the interactive installer directly from your terminal with a single command: ```bash bash -c "$(curl -fsSL https://tinyurl.com/4rskc9e7)" ``` Once the menu loads, simply **follow the interactive prompts**. You can select multiple tools at once by entering space-separated numbers (e.g., `1 3 8 12`). Choose **19) Update All Installed Software** to update every detected tool in the menu from its official source. Tools that are not installed are skipped. ## 🛠️ Included Tools ### Essentials & Package Managers * **Build Tools:** GCC, Make, Git, Curl, Unzip, and core libraries. * **Homebrew:** (Optional) Installed officially. ### Languages & Runtimes * **NVM (Node Version Manager):** Includes interactive prompt to install LTS or Latest Node.js immediately. * **Python 3:** Fetches Python.org's latest stable `.pkg` for macOS. Linux and WSL install precompiled Python, pip, and venv from the signed OS-vendor repository without source compilation or third-party repositories. * **Go:** Fetches the latest tarball and installs system-wide to `/usr/local/go`. * **SDKMAN:** For managing Java, Kotlin, and Gradle. * **.NET:** Installed via Microsoft's official script. ### Mobile Development * **Android SDK:** Installs command-line tools, platform tools, emulator, and current Android platform/build tools. ### Containers & Infrastructure * **Docker:** Downloads the official `.dmg` (macOS) or runs the official `get.docker.com` script (Linux) with auto-group assignment. * **Portainer:** Deploys Portainer CE as a Docker container with persistent storage. ### Cloud & App Platforms * **AWS CLI:** Fetches the official binaries directly from Amazon. * **Google Cloud CLI (gcloud):** Official Google setup script, installed at `/opt/google-cloud-sdk`. * **Firebase CLI:** Installs `firebase-tools` via NPM, so Node.js/NPM is required. ### Developer Productivity * **GitHub CLI (gh):** Downloaded directly from GitHub Releases to `/usr/local/bin`. ### Secrets & Security * **Infisical CLI:** Installs `@infisical/cli` via NPM for secret management, so Node.js/NPM is required. ### AI & Agentic Tools * **Claude Code CLI:** Anthropic's official agent. * **OpenAI Codex CLI:** Required NVM/Node.js to run. * **OpenCode:** AI agent orchestration installed from the official OpenCode installer. * **Augment Code CLI (Auggie):** Installed from Augment's official NPM package; requires Node.js 20 or later. * **CodeRabbit CLI:** Local AI code reviews installed from CodeRabbit's official installer. ## ⚠️ Important Notes & Troubleshooting * **Restart Your Shell:** After running the script for the first time, you should restart your terminal or run `source ~/.bashrc` (or `~/.zshrc`) to ensure all new PATH variables (like NVM, Go, or .NET) take effect. * **Docker Permissions (Linux):** The script automatically adds your user to the `docker` group. You will need to log out and log back in for this to take effect. * **AWS CLI on Linux:** Ensure you install **Build Tools (Option 1)** first if you are on a fresh Linux install, as the AWS installer requires `unzip` to extract the payload. * **Python Version on Linux:** Python follows the version supported by your distribution rather than the newest python.org patch release. This keeps installation precompiled, vendor-supported, and eligible for normal OS security updates. --- *Built for developers who want total control over their toolchain.*