Laptop is a shell script that turns your Mac OS X laptop into an awesome development machine.
Switch branches/tags
Nothing to show
Pull request Compare This branch is 46 commits behind thoughtbot:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Laptop is a script to set up an OS X laptop for web development.

It can be run multiple times on the same machine safely. It installs, upgrades, or skips packages based on what is already installed on the machine.


We support:

  • OS X Mavericks (10.9)
  • OS X Yosemite (10.10)
  • OS X El Capitan (10.11)

Older versions may work but aren't regularly tested. Bug reports for older versions are welcome.


Download, review, then execute the script:

curl --remote-name
less mac
sh mac 2>&1 | tee ~/laptop.log

Optionally, install thoughtbot/dotfiles.


Your last Laptop run will be saved to ~/laptop.log. Read through it to see if you can debug the issue yourself. If not, copy the lines where the script failed into a new GitHub Issue for us. Or, attach the whole log file as an attachment.

OS X El Capitan (10.11)

You may have problems installing Homebrew for the first time on OS X El Capitan due to permission changes to the /usr directory (within which the Homebrew installation is typically located). See the Homebrew El Capitan troubleshooting instructions for steps to resolve the permissions issues that interfere with Homebrew's installation.

What it sets up

  • Bundler for managing Ruby libraries
  • Exuberant Ctags for indexing files for vim tab completion
  • Foreman for managing web processes
  • hub for interacting with the GitHub API
  • Heroku Toolbelt for interacting with the Heroku API
  • Homebrew for managing operating system libraries
  • ImageMagick for cropping and resizing images
  • Node.js and NPM, for running apps and installing JavaScript packages
  • Postgres for storing relational data
  • Qt for headless JavaScript testing via Capybara Webkit
  • Rbenv for managing versions of Ruby
  • RCM for managing company and personal dotfiles
  • Redis for storing key-value data
  • Ruby Build for installing Rubies
  • Ruby stable for writing general-purpose code
  • The Silver Searcher for finding things in files
  • Tmux for saving project state and switching between projects
  • Zsh as your shell

It should take less than 15 minutes to install (depends on your machine).

Customize in ~/.laptop.local

Your ~/.laptop.local is run at the end of the Laptop script. Put your customizations there. For example:


brew_tap 'caskroom/cask'
brew_install_or_upgrade 'brew-cask'

brew cask install dropbox
brew cask install google-chrome
brew cask install rdio

gem_install_or_update 'parity'

brew_install_or_upgrade 'tree'
brew_install_or_upgrade 'watch'

Write your customizations such that they can be run safely more than once. See the mac script for examples.

Laptop functions such as fancy_echo, brew_install_or_upgrade, and gem_install_or_update can be used in your ~/.laptop.local.

See the wiki for more customization examples.


Edit the mac file. Document in the file. Follow shell style guidelines by using ShellCheck and Syntastic.

brew install shellcheck

Thank you, contributors!

By participating in this project, you agree to abide by the thoughtbot code of conduct.


Laptop is © 2011-2015 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About thoughtbot


Laptop is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

We are passionate about open source software. See our other projects. We are available for hire.