https://github.com/yatish27/omakos
Opinionated macOS setup
https://github.com/yatish27/omakos
cursor development-setup fresh-installs ghostty homebrew laptop laptop-setup macos mise ollama zsh
Last synced: 11 days ago
JSON representation
Opinionated macOS setup
- Host: GitHub
- URL: https://github.com/yatish27/omakos
- Owner: yatish27
- License: mit
- Created: 2025-02-18T06:11:50.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-04-20T00:34:20.000Z (30 days ago)
- Last Synced: 2025-05-09T00:53:06.293Z (11 days ago)
- Topics: cursor, development-setup, fresh-installs, ghostty, homebrew, laptop, laptop-setup, macos, mise, ollama, zsh
- Language: Shell
- Homepage:
- Size: 425 KB
- Stars: 64
- Watchers: 1
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://github.com/basecamp/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:
```sh
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:
```sh
git clone https://github.com/yatish27/omakos.git && cd omakos
```2. Review the scripts (please don't run scripts you don't understand):
```sh
less setup.sh
```3. Run the setup:
```sh
./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`](configs/Brewfile).### Command Line Tools
- [XCode Command Line Tools](https://developer.apple.com/xcode/downloads/) for developer essentials
- [Git](https://git-scm.com/) for version control
- [Homebrew](http://brew.sh/) for managing operating system libraries
- [ZSH](https://www.zsh.org/) with [Oh My Zsh](https://ohmyz.sh/) for a better shell experience
- [coreutils](https://www.gnu.org/software/coreutils/) for GNU file, shell and text manipulation utilities
- [curl](https://curl.se/) and [wget](https://www.gnu.org/software/wget/) for downloading files
- [fzf](https://github.com/junegunn/fzf) for command-line fuzzy finding
- [jq](https://stedolan.github.io/jq/) for JSON processing
- [btop](https://github.com/aristocratos/btop) for system resource monitoring
- [fastfetch](https://github.com/fastfetch-cli/fastfetch) for system information display### Development Environment
- [Cursor](https://cursor.sh/) - AI-powered code editor
- [Ghostty](https://github.com/mitchellh/ghostty) - Modern terminal emulator
- [Docker](https://www.docker.com/) for containerization
- [OrbStack](https://orbstack.dev/) for Docker and Linux development on macOS
- [PostgreSQL 17](https://www.postgresql.org/) with `libpq` for database management
- [Redis](https://redis.io/) for in-memory data store
- [jemalloc](https://jemalloc.net/) for memory allocation
- [vips](https://www.libvips.org/) for image processing (automatically installs configured runtimes if `~/.mise.toml` exists)
- [Ollama](https://ollama.ai/) for local AI models
- [Overmind](https://github.com/DarthSim/overmind) for process management
- [Mise](https://mise.jdx.dev/) for runtime version management. The Mise configuration is present in [mise.toml](configs/mise.toml). It installs
- Python
- Ruby
- Rust
- Go
- Node
- [UV](https://github.com/astral-sh/uv) for Python packaging
- [pnpm](https://pnpm.io/) and [yarn](https://yarnpkg.com/) for Node.js package management### Productivity & Communication
- [1Password](https://1password.com/)
- [Brave Browser](https://brave.com/)
- [Discord](https://discord.com/)
- [iTerm2](https://iterm2.com/)
- [Obsidian](https://obsidian.md/)
- [Raycast](https://www.raycast.com/)
- [Rectangle](https://rectangleapp.com/)
- [Claude](https://claude.ai/)
- [NetNewsWire](https://netnewswire.com/)
- [PearCleaner](https://www.pearcleaner.com/)
- [VLC](https://www.videolan.org/)
- [WhatsApp](https://www.whatsapp.com/)
- [Zoom](https://zoom.us/)### Fonts
- Cascadia Code
- Cascadia Mono
- DM Sans
- Fira Code
- Hack
- IBM Plex Mono
- IBM Plex Sans
- Other Nerd fonts## Features
### Modular Scripts
Each script in the [`scripts/`](scripts/) directory can be run independently:
```sh
# 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/`](configs/) directory contains all config files.
## Customization
The script is designed to be customizable. You can:
- Modify the [`Brewfile`](configs/Brewfile) to add/remove packages
- Adjust macOS settings in [`scripts/mac_setup.sh`](scripts/mac_setup.sh)
- Modify the dotfiles in [`configs/`](configs/) directory## Contributing
Feel free to submit issues and enhancement requests!
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgements
Inspiration and code was taken from many sources, including:
- [Formation](https://github.com/minamarkham/formation) by Mina Markham
- [Omakub](https://github.com/basecamp/omakub)