A shell script which turns your OS X laptop into an awesome fullstack web development machine using Python. Inspired by ThoughtBot's laptop for Ruby on Rails
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A shell script which turns your OS X laptop.py into an awesome fullstack web development machine using Python. Inspired by ThoughtBot's laptop.py for Ruby on Rails

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:

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 https://raw.githubusercontent.com/andela-bojengwa/laptop.py/master/mac
less mac #review the content of the script file
sh mac 2>&1 | tee ~/laptop.log


Your last laptop.py 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 me. Or, attach the whole log file as an attachment.

What it sets up

  • PIP for managing Python packages
  • Exuberant Ctags for indexing files for vim tab completion
  • Foreman for managing web processes
  • gh 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
  • Postgres for storing relational data
  • Qt for headless JavaScript testing via Capybara Webkit
  • RCM for managing company and personal dotfiles
  • Redis for storing key-value data
  • 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.py.local

Your ~/.laptop.local is run at the end of the laptop.py 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.py functions such as fancy_echo, brew_install_or_upgrade, and gem_install_or_update can be used in your ~/.laptop.py.local.

See the wiki for more customization examples.


laptop.py is maintained by Bernard Ojengwa.

Thank you, contributors!

Special thanks to thoughtbot for the awesome tool, laptop


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

brew install shellcheck


laptop.py is © 2015 Bernard Ojengwa. It is free software, and may be redistributed under the terms specified in the LICENSE file.

Bitdeli Badge