Omakos turns your macOS laptop into a fully functional development machine in a single command. A shell script to setup a new mac.
Omakos is inspired by Basecamp's Omakub project. The name is a combination of "omakase" (ใไปปใ, Japanese for "I leave it up to you") and "macOS", reflecting its purpose of providing a curated development environment setup for macOS.
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.
Install
You can install Omakos using one of these two methods:
Option 1: Direct Install (Recommended)
Run this single command in your terminal:
curl -L https://raw.githubusercontent.com/yatish27/omakos/main/install.sh | bashOption 2: Manual Install
If you prefer to review the code first:
- Download the repo:
git clone https://github.com/yatish27/omakos.git && cd omakos
- Review the scripts (please don't run scripts you don't understand):
- Run the setup:
./setup.sh 2>&1 | tee ~/omakos.log
Just follow the prompts and you'll be fine. ๐
What it sets up
The setup process will install and configure the following tools and applications.
All packages are managed through Homebrew and defined in configs/Brewfile.
Command Line Tools
- XCode Command Line Tools for developer essentials
- Git for version control
- Homebrew for managing operating system libraries
- ZSH with Oh My Zsh for a better shell experience
- coreutils for GNU file, shell and text manipulation utilities
- curl and wget for downloading files
- fzf for command-line fuzzy finding
- jq for JSON processing
- btop for system resource monitoring
- fastfetch for system information display
- ffmpeg for video processing
- gh for GitHub CLI integration
- libyaml for YAML parsing
Development Environment
- Cursor - AI-powered code editor
- Neovim with LazyVim - Modern Vim-based editor
- Zed - High-performance code editor
- Ghostty - Modern terminal emulator
- Docker for containerization
- OrbStack for Docker and Linux development on macOS
- PostgreSQL 17 with
libpqfor database management - Redis for in-memory data store
- jemalloc for memory allocation
- vips for image processing (automatically installs configured runtimes if
~/.mise.tomlexists) - Ollama for local AI models
- Overmind for process management
- Mise for runtime version management. The Mise configuration is present in mise.toml. It installs
- Python
- Ruby
- Rust
- Go
- Node
- UV for Python packaging
- pnpm for Node.js package management
Productivity & Communication
- 1Password for password management
- Brave Browser for web browsing
- ChatGPT for AI assistance
- Claude for AI assistance
- Discord for communication
- IINA for media playback
- iTerm2 for terminal emulation
- LocalSend for cross-platform file sharing
- NetNewsWire for RSS reading
- Obsidian for note-taking
- Mole for Mac maintenance and cleaning
- Raycast for productivity launcher
- Rectangle for window management
- Slack for team communication
- SuperWhisper for voice transcription
- WhatsApp for messaging
- Zoom for video conferencing
Fonts
- Cascadia Code
- Cascadia Mono
- Commit Mono
- DM Sans
- Fira Code
- Geist
- Geist Mono
- Google Sans Code
- Hack
- IBM Plex Mono
- IBM Plex Sans
- Work Sans
Enhanced macOS Settings
The setup applies developer-optimized macOS configurations including:
- Performance: Near-instant window animations and faster Mission Control
- Finder: Opens to home directory, searches current folder by default, shows hidden files
- Text Editing: Key repeat enabled in all apps, faster cursor movement
- Screenshots: Organized in
~/Desktop/Screenshots/folder without shadows - Trackpad: Three-finger drag enabled for better window management
- Keyboard: Fastest repeat rates for efficient coding
- System: Disabled automatic corrections, expanded dialogs, local saves by default
Features
Modular Scripts
Each script in the scripts/ directory can be run independently:
# Run individual scripts ./scripts/mac.sh # Only configure macOS settings ./scripts/git.sh # Only setup Git configuration ./scripts/cursor.sh # Only configure Cursor editor ./scripts/nvim.sh # Only configure Neovim with LazyVim ./scripts/zed.sh # Only configure Zed editor ./scripts/mise.sh # Only setup mise and install configured runtimes ./scripts/rubocop.sh # Only setup Rubocop configuration ./scripts/gemrc.sh # Only setup Gem configuration ./scripts/irbrc.sh # Only setup IRB configuration ./scripts/zshrc.sh # Only setup Zsh configuration ./scripts/ssh.sh # Only configure SSH settings
The scripts are designed to be:
- Independent: Each script can run on its own
- Idempotent: Safe to run multiple times
- Configurable: Easy to modify for your needs
Code Structure
The project follows a modular structure where each component is responsible for a specific setup task. You can run any script individually if you only want to set up specific parts of your system.
omakos/
โโโ setup.sh # Main setup script
โโโ scripts/
โ โโโ ascii.sh # ASCII art for terminal output
โ โโโ brew.sh # Homebrew package installation
โ โโโ cursor.sh # Cursor editor configuration
โ โโโ gemrc.sh # Gem configuration
โ โโโ ghostty.sh # Ghostty terminal configuration
โ โโโ git.sh # Git configuration
โ โโโ irbrc.sh # IRB configuration
โ โโโ mac.sh # macOS system preferences
โ โโโ mise.sh # Mise runtime manager setup
โ โโโ nvim.sh # Neovim configuration
โ โโโ rubocop.sh # Rubocop configuration
โ โโโ ssh.sh # SSH configuration
โ โโโ utils.sh # Utility functions
โ โโโ zed.sh # Zed editor configuration
โ โโโ zsh.sh # ZSH shell setup
โ โโโ zshrc.sh # Zshrc configuration
โโโ configs/
โ โโโ Brewfile # Homebrew packages list
โ โโโ cursor/ # Cursor editor settings
โ โโโ git/ # Git configuration files
โ โโโ nvim/ # Neovim configuration with LazyVim
โ โโโ ssh/ # SSH configuration files
โ โโโ zed/ # Zed editor settings
โ โโโ gemrc # Ruby gems configuration
โ โโโ ghostty.conf # Ghostty terminal config
โ โโโ irbrc # IRB (Interactive Ruby) configuration
โ โโโ mise.toml # Mise runtime versions config
โ โโโ rubocop.yml # Ruby code style config
โ โโโ zshrc # Zsh shell configuration
โโโ README.md
Configuration Files
The configs/ directory contains all config files.
Customization
The script is designed to be customizable. You can:
- Modify the
Brewfileto add/remove packages - Adjust macOS settings in
scripts/mac.sh - Modify the configuration files in
configs/directory
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
Inspiration and code was taken from many sources, including:
