{"id":29087992,"url":"https://github.com/bleulabs/bleuprint","last_synced_at":"2025-10-05T20:51:37.403Z","repository":{"id":301051625,"uuid":"1008010084","full_name":"bleulabs/bleuprint","owner":"bleulabs","description":"🎯 Modern Mac development environment template with 120+ tools using Nix-Darwin. Security-first, reproducible, one-command setup.","archived":false,"fork":false,"pushed_at":"2025-06-24T23:24:09.000Z","size":3835,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-24T23:28:20.513Z","etag":null,"topics":["cli-tools","configuration-management","darwin","developer-tools","development-environment","dotfiles-template","flake","homebrew","mac-bootstrap","macos","macos-setup","modern-unix","nix","nix-darwin","nix-flakes","rust-tools","template-repository"],"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/bleulabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["agustif"]}},"created_at":"2025-06-24T22:12:20.000Z","updated_at":"2025-06-24T23:24:12.000Z","dependencies_parsed_at":"2025-06-24T23:39:15.718Z","dependency_job_id":null,"html_url":"https://github.com/bleulabs/bleuprint","commit_stats":null,"previous_names":["bleulabs/bleuprint"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/bleulabs/bleuprint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleulabs%2Fbleuprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleulabs%2Fbleuprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleulabs%2Fbleuprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleulabs%2Fbleuprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bleulabs","download_url":"https://codeload.github.com/bleulabs/bleuprint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleulabs%2Fbleuprint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278518885,"owners_count":26000177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cli-tools","configuration-management","darwin","developer-tools","development-environment","dotfiles-template","flake","homebrew","mac-bootstrap","macos","macos-setup","modern-unix","nix","nix-darwin","nix-flakes","rust-tools","template-repository"],"created_at":"2025-06-28T03:00:16.901Z","updated_at":"2025-10-05T20:51:37.379Z","avatar_url":"https://github.com/bleulabs.png","language":"Shell","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/image.png\" alt=\"Bleuprint Logo\" width=\"100%\"/\u003e\n\u003c/div\u003e\n\n# Nix-Darwin Mac Setup Template\n\n\u003e 🎯 A **template repository** for bootstrapping a modern, reproducible Mac development environment with 120+ tools using Nix-Darwin.\n\n[![Use this template](https://img.shields.io/badge/Use%20this%20template-2ea44f?style=for-the-badge)](https://github.com/new?template_name=bleuprint\u0026template_owner=bleulabs)\n[![Website](https://img.shields.io/badge/Website-bleulabs.github.io/bleuprint-blue?style=for-the-badge)](https://bleulabs.github.io/bleuprint)\n[![Stars](https://img.shields.io/github/stars/bleulabs/bleuprint?style=social)](https://github.com/bleulabs/bleuprint/stargazers)\n[![Forks](https://img.shields.io/github/forks/bleulabs/bleuprint?style=social)](https://github.com/bleulabs/bleuprint/network/members)\n\n## ⭐ Star This Repository\n\nIf you find **bleuprint** helpful, please consider starring it! Your stars help others discover this template and motivate continued development.\n\n## ✨ Features\n\n- 🚀 **One-command setup** - Bootstrap a new Mac in ~15 minutes\n- 🔒 **Security-first design** - Safe for public repos, manual configuration required\n- 📦 **120+ modern CLI tools** - Including Rust-based replacements for traditional Unix tools\n- 🔄 **Fully reproducible** - Same command = same environment, every time\n- ⚡ **Instant rollbacks** - Break something? Roll back in seconds\n- 🎛️ **Highly configurable** - Modular design makes customization easy\n- 🛡️ **Security-first** - Git hooks prevent sensitive data leaks, Touch ID sudo, encryption tools\n\n## 🚀 Quick Start\n\n### 🏃‍♂️ Ultra-Quick Setup (For the Laziest)\n\n```bash\n# One-liner: Download and run with sensible defaults\ncurl -fsSL https://bleulabs.github.io/bleuprint/install.sh | bash\n```\n\n**What this does:**\n- ✅ Downloads the latest bleuprint template\n- ✅ Installs Nix (if not present)\n- ✅ Sets up all 120+ tools with sensible defaults\n- ✅ Configures modern shell aliases\n- ✅ No manual configuration required!\n\n\u003e ⚠️ **Note**: Uses sensible defaults (`Developer`, `dev@example.local`, hostname: `macbook`). For production use with your personal details, follow the template setup below.\n\n### 📋 Using This Template (Recommended)\n\n1. Click [\"Use this template\"](https://github.com/new?template_name=bleuprint\u0026template_owner=bleulabs) button above\n2. Clone your new repository\n3. Follow the [Setup Guide](./docs/SETUP.md)\n\n### 🔧 TL;DR for Experienced Users\n\n```bash\n# After creating from template, clone your new repository\ngit clone https://github.com/yourusername/your-dotfiles.git\ncd your-dotfiles\n\n# 🔒 REQUIRED: Update configuration (for security)\n# Option A: Environment file (recommended - keeps sensitive data out of repo)\ncp .env.example .env           # Copy template\nnano .env                      # Edit with your details\n./scripts/load-env-config.sh   # Apply configuration\n\n# Option B: Manual configuration\n# nano modules/home/default.nix  # Set Git name/email\n# nano flake.nix                 # Set hostname/username\n\n# Optional: Interactive configuration wizard\n./scripts/auto-configure.sh\n\n# Bootstrap your Mac\n./scripts/bootstrap-mac.sh\n\n# Verify installation\n./scripts/smoke-test.sh\n```\n\n\u003e **⚠️ Security Notice**: This template requires manual configuration of personal details. It will NOT automatically write sensitive information like emails or SSH keys to avoid security risks in public repositories.\n\n## 📁 Repository Structure\n\n```\n.\n├── flake.nix                    # Main configuration entry point\n├── scripts/                     # Setup and utility scripts\n│   ├── bootstrap-mac.sh         # One-click setup script\n│   ├── smoke-test.sh            # Verify installation\n│   ├── auto-configure.sh        # Interactive configuration wizard\n│   └── load-env-config.sh       # Environment-based configuration\n├── docs/                        # Documentation files\n│   ├── SETUP.md                 # Detailed setup guide\n│   ├── CONFIG_OPTIONS.md        # All configuration options\n│   └── CLI_CHEATSHEET.md        # Quick reference for tools\n├── assets/                      # Images and media files\n│   └── image.png                # Bleuprint logo\n└── modules/\n    ├── system/\n    │   ├── core.nix            # Languages, build tools, system settings\n    │   ├── cli-utils.nix       # 100+ CLI productivity tools\n    │   └── ml-stack.nix        # Optional ML/data science tools\n    ├── homebrew/\n    │   └── apps.nix            # GUI apps and Mac-specific tools\n    └── home/\n        ├── default.nix         # User configuration (shell, git, etc.)\n        └── aliases.nix         # Configurable modern tool aliases\n```\n\n## 📦 What's Included\n\n### Development Core (`modules/system/core.nix`)\n- **Languages**: Go 1.24, Rust (via rustup), Python 3.13, Node.js 22 LTS\n- **Build Tools**: CMake, Make, Just, Ninja\n- **Environment**: direnv, nix-direnv\n- **System Settings**: Touch ID sudo, fast key repeat, Nix hardening (fsync)\n\n### CLI Tools (`modules/system/cli-utils.nix`)\n- **Modern Replacements**: `eza`/`lsd` (ls), `bat` (cat), `fd` (find), `ripgrep` (grep), `erd` (tree)\n- **Productivity**: `fzf`/`sk`, `zoxide`, `tldr`, `atuin`/`mcfly`, `starship`\n- **Development**: `gh`, `lazygit`/`gitui`, `delta`, `httpie`/`xh`/`curlie`, `jq`/`yq`\n- **System Monitoring**: `btop`/`bottom`, `duf`, `dust`, `procs`, `bandwhich`\n- **Text Processing**: `sd`, `gron`, `choose`, `grex`, `hexyl`\n- **Security**: `age`, `sops`, `gpg`, `yubikey-manager`\n- **Containers**: `act`, `podman`, `dive`\n- **Performance**: `hyperfine`, `flamegraph`, `perf`\n- **Additional**: `helix`, `zellij`, `broot`, `silicon`, `mdbook`\n\n### GUI Apps (`modules/homebrew/apps.nix`)\n- **Essentials**: Raycast, VS Code, OrbStack, Kitty\n- **Productivity**: Obsidian, Slack, Notion\n- **Dev Tools**: GitHub Desktop, Insomnia, TablePlus\n- **Utilities**: Stats, Rectangle, iTerm2, WezTerm\n- **Security**: 1Password, 1Password CLI\n\n### Optional: ML/Data Science Stack (`modules/system/ml-stack.nix`)\n- **Deep Learning**: PyTorch, TensorFlow (with Metal support)\n- **Data Science**: scikit-learn, pandas, numpy, matplotlib\n- **Notebooks**: Jupyter, IPython\n- **Big Data**: Apache Spark, DuckDB, Polars\n- **Visualization**: Plotly\n\n### User Config (`modules/home/default.nix`)\n- **Shell**: Zsh with syntax highlighting, autosuggestions\n- **Git**: Delta diffs, useful aliases, better defaults\n- **Tmux**: Vi mode, better keybindings, mouse support\n- **SSH**: Connection multiplexing for speed\n\n## 🔧 Common Commands\n\n```bash\n# Apply changes after editing\ndarwin-rebuild switch --flake \".#testhost\"\n\n# Rollback to previous generation\ndarwin-rebuild rollback\n\n# Update all packages\nnix flake update\ndarwin-rebuild switch --flake \".#testhost\"\n\n# Search for packages\nnix search nixpkgs \u003cpackage-name\u003e\n\n# Clean old generations\nnix-collect-garbage -d\n```\n\n## 📝 Customization\n\n### Enable Modern Tool Replacements\nTo replace traditional commands with modern alternatives, edit `modules/home/default.nix`:\n```nix\n# Change from:\nprograms.modernTools.enable = false;\n\n# To:\nprograms.modernTools.enable = true;\n```\n\nThis will set up aliases like:\n- `ls` → `eza --icons`\n- `cat` → `bat`\n- `grep` → `rg`\n- `find` → `fd`\n- `top` → `btop`\n- `df` → `duf`\n- `du` → `dust`\n- And more...\n\n### Add a CLI tool\nEdit `modules/system/cli-utils.nix`:\n```nix\nenvironment.systemPackages = with pkgs; [\n  # ... existing packages ...\n  your-new-tool  # https://link-to-docs.com\n];\n```\n\n### Add a GUI app\nEdit `modules/homebrew/apps.nix`:\n```nix\ncasks = [\n  # ... existing casks ...\n  \"your-app-name\"\n];\n```\n\n### Change shell aliases\nEdit `modules/home/default.nix`:\n```nix\nshellAliases = {\n  # ... existing aliases ...\n  myalias = \"my-command\";\n};\n```\n\n### Enable ML/Data Science Stack\nEdit `flake.nix` to add the ML module:\n```nix\nmodules = [\n  ./modules/system/core.nix\n  ./modules/system/cli-utils.nix\n  ./modules/system/ml-stack.nix  # Add this line\n  ./modules/homebrew/apps.nix\n  # ...\n];\n```\n\n## 🔗 Quick Links\n\n- [**🌐 Official Documentation**](https://bleulabs.github.io/bleuprint)\n- [Configuration Options](./docs/CONFIG_OPTIONS.md) - All available settings\n- [CLI Cheatsheet](./docs/CLI_CHEATSHEET.md) - Quick command reference\n- [Setup Guide](./docs/SETUP.md) - Detailed installation instructions\n- [Nix-Darwin Documentation](https://github.com/LnL7/nix-darwin)\n- [Home Manager Options](https://nix-community.github.io/home-manager/options.html)\n- [Nix Package Search](https://search.nixos.org/packages)\n\n## 🤝 Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.\n\n## 📄 License\n\nThis template is available under the MIT License - see [LICENSE](./LICENSE) for details.\n\n## 🙏 Acknowledgments\n\n- [Nix-Darwin](https://github.com/LnL7/nix-darwin) for the excellent macOS Nix integration\n- [Home Manager](https://github.com/nix-community/home-manager) for user environment management\n- The Nix community for amazing packages and support\n\n## 💡 Pro Tips\n\n- Use `tldr \u003ccommand\u003e` for quick command examples\n- `z \u003cpartial-path\u003e` to jump to directories (via zoxide)\n- `Ctrl+R` for fuzzy history search (via fzf)\n- `lazygit` for visual Git operations\n- `btop` for beautiful system monitoring\n- Run `./test-modern-tools.sh` to see your current configuration\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ for the Mac development community\u003cbr\u003e\n  \u003ca href=\"https://github.com/YOUR-USERNAME/YOUR-REPO/stargazers\"\u003e⭐ Star this repo\u003c/a\u003e •\n  \u003ca href=\"https://github.com/YOUR-USERNAME/YOUR-REPO/issues\"\u003e🐛 Report an issue\u003c/a\u003e •\n  \u003ca href=\"https://github.com/YOUR-USERNAME/YOUR-REPO/discussions\"\u003e💬 Discussions\u003c/a\u003e\n\u003c/p\u003e ","funding_links":["https://github.com/sponsors/agustif"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbleulabs%2Fbleuprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbleulabs%2Fbleuprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbleulabs%2Fbleuprint/lists"}