install.emin.ch
A single command turns a freshly unboxed Apple Silicon Mac into a working dev environment. Safe to re-run on any existing setup.
$
Apple Silicon
Idempotent
~30 min unattended
No npm-pipe-bash sketchiness
What you get
ZedNative editor + ACP agents
XcodeLatest, via xcodes
Android StudioAndroid IDE
Claude CodeAnthropic agentic CLI
CodexOpenAI agentic CLI
oMLXLocal LLMs on Apple MLX
BraveDaily-driver browser
1PasswordPassword manager
WhatsAppMessenger
TelegramMessenger
SignalEncrypted messenger
DiscordChat
SteamGames
HomebrewPackage manager
CLI tools
ripgrep
fd
gh
stow
ffmpeg
xcodes
aria2
pnpm
node (via pnpm env)
go
claude
codex
codex-acp
Auth, set up for you
→GitHub via
gh auth login
→SSH via 1Password agent (Touch ID), public key uploaded to GitHub
→Claude Code OAuth
→Codex sign-in
→Apple ID for Xcode
Inside the script
- Sanity check.macOS, Apple Silicon, not root, not truncated.
- Xcode Command Line Tools.Triggers the GUI installer if missing.
- Homebrew.Installs and wires up
brew shellenv. - Clone the repo.HTTPS, so it works before any auth is set up.
- Brew bundle.Every tool and cask declared in the Brewfile.
- GitHub auth.Device-code login plus
gh auth setup-gitas credential helper. - SSH via 1Password.Wires
~/.ssh/configto the 1Password SSH agent and uploads the public key (viaop+gh) to your GitHub account. - Stow.Symlinks zsh, git, and Ghostty configs into
$HOME. - Override stubs.Creates empty
.gitconfig.local,.zshrc.local,config.local. - Claude + Codex sign-in.Launches each CLI for interactive auth.
- Xcode.The long pole —
xcodes install --latest --select.
What you still do by hand
The one thing the script can't do for you:
- Sign in to apps with GUI-only auth (1Password, Brave sync)