{"id":36638649,"url":"https://github.com/26zl/macos-dev-setup","last_synced_at":"2026-02-16T19:16:34.622Z","repository":{"id":324633874,"uuid":"1072271539","full_name":"26zl/MacOS-Dev-Setup","owner":"26zl","description":"Automated MacOS setup for development","archived":false,"fork":false,"pushed_at":"2026-02-10T19:47:23.000Z","size":2298,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-10T21:23:40.127Z","etag":null,"topics":["automation","cybersecurity","development","dotfiles","dotfiles-macos","macos","script","shell","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/26zl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T13:45:34.000Z","updated_at":"2026-02-10T19:27:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"4dc6e064-1544-404d-9e5e-f3762cca9d37","html_url":"https://github.com/26zl/MacOS-Dev-Setup","commit_stats":null,"previous_names":["26zl/macos_basic_setup","26zl/macos-dev-setup"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/26zl/MacOS-Dev-Setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/26zl%2FMacOS-Dev-Setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/26zl%2FMacOS-Dev-Setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/26zl%2FMacOS-Dev-Setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/26zl%2FMacOS-Dev-Setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/26zl","download_url":"https://codeload.github.com/26zl/MacOS-Dev-Setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/26zl%2FMacOS-Dev-Setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29377897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T18:59:55.292Z","status":"ssl_error","status_checked_at":"2026-02-12T18:59:44.289Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cybersecurity","development","dotfiles","dotfiles-macos","macos","script","shell","zsh"],"created_at":"2026-01-12T09:50:14.946Z","updated_at":"2026-02-12T19:01:16.941Z","avatar_url":"https://github.com/26zl.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# macOS Development Environment Setup\n\n[![Checks](https://github.com/26zl/MacOS-Dev-Setup/workflows/Checks/badge.svg)](https://github.com/26zl/MacOS-Dev-Setup/actions)\n[![Security Scan](https://github.com/26zl/MacOS-Dev-Setup/workflows/Security%20Scan/badge.svg)](https://github.com/26zl/MacOS-Dev-Setup/actions)\n[![macOS Test](https://github.com/26zl/MacOS-Dev-Setup/workflows/macOS%20Test/badge.svg)](https://github.com/26zl/MacOS-Dev-Setup/actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**One-command setup** for a complete macOS development environment with automated tool management.\n\n![Terminal preview](background/image.png)\n\n## Quick Start\n\n**One-liner install:**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/26zl/MacOS-Dev-Setup/main/bootstrap.sh | zsh\n```\n\n**Or clone manually:**\n\n```bash\ngit clone https://github.com/26zl/MacOS-Dev-Setup.git\ncd MacOS-Dev-Setup\n./install.sh        # Installs shell setup and system package managers\n./dev-tools.sh      # Installs language tools (optional)\nsource ~/.zshrc\n```\n\n**Daily usage:**\n\n```bash\nupdate    # Update all tools\nverify    # Check status\nversions  # Show versions\n```\n\n## Features\n\n- **One Command Updates**: Update Homebrew, Python, Node.js, Ruby, Rust, Go, Swift, .NET, and more\n- **Beautiful Terminal**: Powerlevel10k, syntax highlighting, autosuggestions\n- **Safe \u0026 Smart**: Protects system files, graceful error handling\n- **Multi-Language**: Python (pyenv), Node.js (nvm), Ruby (chruby), Rust (rustup), Swift (swiftly), Go, Java, .NET\n- **CI/CD Safe**: Non-interactive mode support\n\n## Installation\n\n### Basic Setup\n\n```bash\n./install.sh\nsource ~/.zshrc\n```\n\n**Installs**: Xcode CLT, Git, Homebrew, Oh My Zsh, Powerlevel10k, ZSH plugins, maintain-system script\n\n**Optional**: MacPorts, mas, Nix, FZF (interactive prompts)\n\n### Development Tools\n\n```bash\n./dev-tools.sh          # Interactive installation\n./dev-tools.sh check    # Dry-run\n./dev-tools.sh test     # Test detection\n```\n\n**Installs**: Conda, pipx, pyenv, nvm, chruby, rustup, swiftly, Go, Java, .NET\n\n## Usage\n\n### Commands\n\n- `update` - Update all tools, package managers, and language runtimes\n- `verify` - Check status of all installed tools\n- `versions` - Display versions of all tools\n\n### What Gets Updated\n\n**Package Managers**: Homebrew, MacPorts, Nix, mas, Conda, pipx\n\n**Languages**: Python (pyenv), Node.js (nvm), Ruby (chruby), Rust (rustup), Swift (swiftly), Go, Java, .NET\n\n**Global Packages**: npm, Cargo, Go tools, Python packages, RubyGems\n\n**Note**: Only global/system packages are updated. Project files (`package.json`, `go.mod`, etc.) are never modified.\n\n### Configuration\n\nEnvironment variables:\n\n- `MAINTAIN_SYSTEM_CLEAN_PYENV=0` - Disable Python cleanup\n- `MAINTAIN_SYSTEM_CLEAN_NVM=0` - Disable Node.js cleanup\n- `MAINTAIN_SYSTEM_CLEAN_CHRUBY=0` - Disable Ruby cleanup\n- `MAINTAIN_SYSTEM_PYENV_KEEP=\"3.11.8,3.10.14\"` - Keep specific Python versions\n- `MAINTAIN_SYSTEM_NVM_KEEP=\"v18.19.1\"` - Keep specific Node.js versions\n- `MAINTAIN_SYSTEM_CHRUBY_KEEP=\"ruby-3.4.6\"` - Keep specific Ruby versions\n- `MAINTAIN_SYSTEM_SWIFT_SNAPSHOTS=1` - Enable Swift snapshots\n\n## Supported Tools\n\n**Package Managers**: Homebrew, MacPorts, Nix, mas, Conda, pipx\n\n**Languages**: Python (pyenv), Node.js (nvm), Ruby (chruby), Rust (rustup), Swift (swiftly), Go, Java, .NET\n\n**Databases**: MySQL, MongoDB, PostgreSQL (detection only)\n\n**Other**: Docker, C/C++ (via Xcode CLT)\n\n## Terminal\n\nPre-configured with Oh My Zsh, Powerlevel10k, syntax highlighting, autosuggestions, and FZF.\n\n### Ghostty Setup (Optional)\n\n```bash\nbrew install --cask ghostty\nmkdir -p ~/.config/ghostty\ncp \"Ghostty config.txt\" ~/.config/ghostty/config\ncp background/terminal-background.png ~/.config/ghostty/terminal-background.png\n```\n\n## FAQ\n\n**Will this modify my project files?**\nNo! Only global/system packages are updated. Project files are never modified.\n\n**Is it safe for CI/CD?**\nYes! Set `NONINTERACTIVE=1` or `CI=1` for automated runs.\n\n**Does it work on Intel and Apple Silicon?**\nYes! Automatically detects architecture.\n\n**What if tools are missing?**\nThe `update` command gracefully skips missing tools and shows installation instructions.\n\n## Compatibility\n\n| Requirement | Details |\n|---|---|\n| **macOS** | macOS 13 Ventura or later (may work on older versions) |\n| **Architecture** | Apple Silicon (M1/M2/M3/M4) and Intel x86_64 |\n| **Shell** | Zsh (default on macOS since Catalina) |\n| **Disk space** | ~15-30GB free (Xcode CLT + Homebrew + dev tools) |\n| **Network** | Required for all installations (downloads from GitHub, Homebrew, etc.) |\n| **Permissions** | Some optional tools (MacPorts, Nix) require sudo |\n\n## Security\n\n- Input validation and sanitization\n- Selective error handling\n- Safe directory navigation\n- HTTPS-only downloads with TLS verification\n\n**Note**: Scripts download external content. Review scripts before running for maximum security.\n\n## Contributing\n\n1. Run `./quick-test.sh` to verify syntax\n2. Ensure ShellCheck passes\n3. Test on both Intel and Apple Silicon Macs\n\n**CI/CD**: ShellCheck, Gitleaks, Trivy, syntax checks, comprehensive macOS tests.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\nIf this project helped you, please consider giving it a star!\n\n[![GitHub stars](https://img.shields.io/github/stars/26zl/MacOS-Dev-Setup?style=social\u0026label=Star)](https://github.com/26zl/MacOS-Dev-Setup/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/26zl/MacOS-Dev-Setup?style=social\u0026label=Fork)](https://github.com/26zl/MacOS-Dev-Setup/fork)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F26zl%2Fmacos-dev-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F26zl%2Fmacos-dev-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F26zl%2Fmacos-dev-setup/lists"}