Laptop is a script for setting up macOS dev environment.
Set up macOS dev environment by running the following command:
sh <(curl -s https://raw.githubusercontent.com/dskecse/laptop/main/mac) 2>&1 | tee ~/laptop.logThe above mentioned command's last run will be saved to ~/laptop.log.
Read through it if there's a need to debug the issue yourself.
If that's not feasible for some reason, feel free to open up a new GitHub issue and attach the whole log file.
macOS tools:
- Rosetta 2 for running apps that contain
x86_64instructions on Apple Silicon processors - Homebrew for managing packages on macOS
- Xcode Command Line Tools for installing compilers, build tools, and Unix utilities necessary for software development on macOS, e.g. Apple LLVM compiler (
clang), linker, and Make
Unix tools:
- Git for version control
- Tig for easier browsing of changes in a Git repo and cherry-picking commits
- OpenSSL for Transport Layer Security (TLS)
- RCM for managing dotfiles
- Ag (aka "The Silver Searcher") for finding things in files, a faster alternative to
grepandack - Tmux for saving project state and switching between projects
- Zsh as a default shell
- Oh My Zsh for managing Zsh configuration
- watch for executing a program periodically and showing the output fullscreen
- duff for finding duplicate files
- jq for processing JSON
- yq for processing YAML
- Graphviz for visualizing graphs
- Nmap for network discovery and security auditing
- dos2unix for converting text between DOS, UNIX, and Mac formats
- HTTPie a command-line HTTP and API testing client
- ShellCheck for finding bugs in shell scripts
- cloc for counting lines of code
- samply a command-line CPU profiler with Firefox Profiler compatible reports
Terminal:
GitHub tools:
- GitHub CLI for interacting with the GitHub API
- gist for uploading Gists
Editors:
- Vim
- Universal Ctags for indexing files for vim tab completion and locating indexed items
Databases:
- Postgres 18 for storing relational data
- Redis 8 for storing key-value data
- MongoDB 8 for storing document-oriented data
Database clients:
- Postico 2 for managing Postgres databases
Image tools:
- ImageMagick for cropping and resizing images
Programming languages, package managers and prerequisites:
- jemalloc a general purpose
malloc(3)implementation that emphasizes fragmentation avoidance and scalable concurrency support - LibYAML for parsing and emitting YAML, external Ruby dependency
- Coreutils for basic file, shell and text manipulation utilities expected to exist on every operating system, see more info
- Readline for maintaining a list of previously-entered command lines, recalling and reediting those lines, external Ruby dependency
- Ruby latest for writing general-purpose code
- ruby-install for installing Ruby
- chruby for changing the current Ruby
- Node.js and npm for running JavaScript apps and installing JavaScript packages
- Yarn for managing JavaScript packages
- Python 3.14
- Go
- OpenJDK for compiling Clojure apps to JVM bytecode and running it
- Clojure
- Leiningen for managing Clojure projects and dependencies
- Haskell
- Cabal for managing Haskell projects and dependencies
- Wasmtime for running WebAssembly (Wasm) code, see more info
AI tools:
Media tools:
- Cyberduck for uploading media files to S3 buckets and browsing cloud storage
- LAME for encoding MPEG Audio Layer III (MP3)
- FFmpeg for recording, converting and streaming audio and video
- ExifTool for reading and writing EXIF metadata
- HandBrake for converting video from nearly any format to a selection of modern, widely supported codecs
- IINA a modern media player for macOS
Browsers and related tools:
- Firefox
- ChromeDriver for automated testing of webapps using Google Chrome
Containers & orchestration tools:
- OrbStack for faster, lighter, and easier way to run Docker containers, a replacement for Docker Desktop
- Kubernetes CLI for communicating with a Kubernetes cluster's control plane, using the Kubernetes API
- kind for running local Kubernetes clusters using Docker
- Helm for managing Kubernetes packages and apps
Cloud management tools:
- gcloud CLI for managing resources and applications hosted on Google Cloud
- Hashicorp Vault for managing secrets and protecting sensitive data
OpenPGP encryption & signing tools:
- GPG2 for encrypting and signing data, e.g. Git commits, see more info
- pinentry-mac for entering PINs or GPG passphrases in a native-looking pop-up window and preventing them from being logged, see more info
- Keychain for launching only one instance of a GPG agent and sharing the agent across every shell, see more info
VPNs:
- TunnelBear VPN
- OpenVPN Connect for accessing organization's network resources securely
Misc: