gittech. site

for different kinds of informations and explorations.

Omakos – Setup your macOS for development

Published at
2 days ago

Omakos

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 | bash

Option 2: Manual Install

If you prefer to review the code first:

  1. Download the repo:
git clone https://github.com/yatish27/omakos.git && cd omakos
  1. Review the scripts (please don't run scripts you don't understand):
less setup.sh
  1. 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

Development Environment

  • Cursor - AI-powered code editor
  • Ghostty - Modern terminal emulator
  • Docker for containerization
  • OrbStack for Docker and Linux development on macOS
  • PostgreSQL 17 with libpq for database management
  • Redis for in-memory data store
  • jemalloc for memory allocation
  • vips for image processing (automatically installs configured runtimes if ~/.mise.toml exists)
  • Ollama for local AI models
  • Overmind for process management
  • Mise for runtime version management
  • UV for Python packaging
  • pnpm and yarn for Node.js package management

Productivity & Communication

Fonts

  • Cascadia Code & Cascadia Mono
  • DM Sans
  • Fira Code
  • Hack
  • IBM Plex Mono & IBM Plex Sans

Features

Modular Scripts

Each script in the scripts/ directory can be run independently:

# Run individual scripts
./scripts/mac_setup.sh     # Only configure macOS settings
./scripts/git_setup.sh     # Only setup Git configuration
./scripts/cursor_setup.sh  # Only configure Cursor editor
./scripts/mise.sh         # Only setup mise and install configured runtimes
./scripts/dotfiles_setup.sh # Only setup dotfiles
./scripts/ssh_setup.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_setup.sh     # Cursor editor configuration
β”‚   β”œβ”€β”€ dotfiles_setup.sh   # Dotfiles management
β”‚   β”œβ”€β”€ git_setup.sh        # Git configuration
β”‚   β”œβ”€β”€ mac_setup.sh        # macOS system preferences
β”‚   β”œβ”€β”€ mise.sh             # Mise runtime manager setup
β”‚   β”œβ”€β”€ ssh_setup.sh        # SSH configuration
β”‚   β”œβ”€β”€ utils.sh            # Utility functions
β”‚   └── zsh_setup.sh        # ZSH shell setup
β”œβ”€β”€ configs/
β”‚   β”œβ”€β”€ Brewfile            # Homebrew packages list
β”‚   β”œβ”€β”€ cursor/             # Cursor editor settings
β”‚   β”œβ”€β”€ git/                # Git configuration files
β”‚   β”œβ”€β”€ ssh/                # SSH configuration files
β”‚   β”œβ”€β”€ gemrc              # Ruby gems configuration
β”‚   β”œβ”€β”€ ghostty.conf       # Ghostty terminal config
β”‚   β”œβ”€β”€ mise.toml          # Mise runtime versions config
β”‚   └── rubocop.yml        # Ruby code style config
└── README.md

Configuration Files

The configs/ directory contains all config files.

Customization

The script is designed to be customizable. You can:

Contributing

Feel free to submit issues and enhancement requests!

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: