This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a personal development environment setup tool that automates the installation and configuration of common development tools (zsh, nvim, screen, go) on Linux/Mac systems. It creates a consistent development environment with a focus on Go development.
makeormake all- Install all tools (zsh, nvim, tmux, go)make zsh- Install zsh with zinit, powerlevel10k, and pluginsmake nvim- Configure neovim for Go developmentmake tmux- Setup tmux with gpakosz/.tmux configurationmake go- Create Go directory structuremake help- Show available targets
,b- Build Go files (GoBuild or GoTestCompile),r- Run current Go file,c- Toggle code coverage,s- Show implementations,e- Rename symbol,i- Show type infoCtrl+n/Ctrl+m- Navigate between errors- Files are automatically formatted with goimports and linted with golangci-lint on save
-
base - Shared utilities script that:
- Detects OS (ubuntu, arch, darwin)
- Provides colored output functions
- Handles file backups
- Loads configuration from
configfile
-
Individual setup scripts (*.sh files):
- Each tool has its own setup script
- Scripts are independent but share common functions from
base - All scripts use
set -efor error handling
-
Configuration storage:
- Tool configs are stored in subdirectories (zsh/, nvim/, tmux/)
- Central configuration in
configfile controls backup behavior and paths
DT_BACKUP- Whether to backup existing files (default: true)DT_DIR- Where to install devtools binaries ($HOME/.devtools)DT_GOPATH- Go workspace directory ($HOME/go)- vim-go uses gopls for language server features
- golangci-lint replaces the deprecated gometalinter
The scripts only work on systems with OS ID of:
ubuntuarchdarwin(macOS)
To add support for other distros, modify the case statement in the base file around line 49.
- Never requires sudo - users must install system packages first
- kubectl is conditionally loaded in zshrc to prevent errors if not installed
- The nvim Go setup requires golangci-lint to be installed separately
- gopls is automatically installed by vim-go on first use