A streamlined, modular setup for macOS and Unix environments. This repository provides a two-stage process: Installation of core developer tools and Configuration of those tools to match a specific workflow.
This repository is designed for developers who want a "batteries-included" terminal experience. It automates the installation of modern CLI tools, AI agents, and a pre-configured Neovim environment.
- Package Managers: Homebrew, FNM (Node), PyENV (Python), PNPM.
- Editor: NeoVim with NvChad for a blazing-fast, beautiful UI.
- AI Agents:
- Claude Code: Agentic coding in the terminal.
- GitHub Copilot: AI assistance for the CLI.
- Gemini: Google's AI power directly in your terminal.
The setup is split into two main scripts to separate concerns:
Handles the installation of all binary dependencies and language runtimes.
chmod +x setup.sh
./setup.shApplies personal preferences and environment settings once tools are present.
chmod +x config.sh
./config.shThe script ensures you aren't just using "System" languages, but manageable versions:
Uses FNM (Fast Node Manager) to handle versions. This allows for lightning-fast switching between Node releases and keeps your global environment clean.
Uses PyENV to manage multiple Python versions. This prevents conflicts between the macOS system Python and your project-specific requirements.
The configuration logic is modular and idempotent, ensuring that settings are applied only if they don't already exist, or updated if they do.
- Indentation Management:
- Uses Tabs instead of spaces.
- Configures
tabstop,shiftwidth, andsofttabstopto2. - Automatically adds a clean -- Indentation Settings header in
init.luaif missing.
- JavaScript Environment:
- LSP Integration: Configures vtsls using the native vim.lsp.config (Neovim 0.11+) standard.
- Formatting: Uses
conform.nvimto enforce prettier for both.jsand.jsxfiles.
- TypeScript Environment:
- Advanced LSP: Enables Inlay Hints (parameter names, variable types, enum values) for deep code clarity.
- DX Features: Enables updateImportsOnFileMove and function call suggestions.
- React Support: Full formatting and LSP support for .tsx files, including nvim-ts-autotag integration for JSX tags.
- Shell Script Environment:
- LSP Integration: Configures bashls for Bash, Sh, and Zsh support.
- Linting: Integrated support for shellcheck (via LSP) to catch common scripting pitfalls.
- Formatting: Uses shfmt through conform.nvim to keep scripts clean and readable.