Skip to content
/ laptop Public

A script for setting up macOS dev environment

Notifications You must be signed in to change notification settings

dskecse/laptop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

build

Laptop

Laptop is a script for setting up macOS dev environment.

Setup

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.log

Debugging

The 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.

What it sets up

macOS tools:

  • Rosetta 2 for running apps that contain x86_64 instructions 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 grep and ack
  • 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:

Database clients:

Image tools:

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:

  • Ollama for creating and running LLMs locally
  • OpenCode an open source AI coding agent

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:

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:

Misc:

About

A script for setting up macOS dev environment

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages