Skip to content

7. Install AI tools

Package manager
Homebrew
Runtimes
Node, Python (uv)
AI tools
Cursor, Cursor worker, Claude, Claude Code

Install everything as the account that will run your agents. Official installers change occasionally — if a command here fails, check the linked page for the current one.

Homebrew installs developer tools and keeps them updated. It also installs Apple’s Command Line Tools (git, compilers) if they’re missing.

Terminal window
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

On Apple silicon, Homebrew lives in /opt/homebrew. Add it to your shell as the installer tells you:

Terminal window
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
brew doctor

Useful basics for a server:

Terminal window
brew install git tmux jq ripgrep

tmux lets you start a long-running terminal session over SSH, disconnect, and reattach later — ideal for interactive agents.

Many AI tools and MCP servers need Node.

Terminal window
brew install node
node --version && npm --version

If your projects need different Node versions, use a version manager such as fnm (brew install fnm) instead, and follow its shell-setup instructions.

Leave the system Python alone. uv installs Python versions and manages virtual environments quickly:

Terminal window
brew install uv
uv python install 3.13
uv venv && source .venv/bin/activate # inside a project folder

Install the Cursor editor from cursor.com/download (or brew install --cask cursor), sign in, and add it to Login Items if you want it open after a restart.

The Cursor CLI (agent) runs Cursor’s agent in a terminal and powers self-hosted workers:

Terminal window
curl https://cursor.com/install -fsS | bash
agent --version
agent login # opens a browser to sign in; do this once while at the desktop or over Screen Sharing

The installer puts agent in ~/.local/bin; make sure that’s on your PATH (the installer tells you if it isn’t).

A self-hosted worker lets Cursor’s Cloud Agents run their tool calls — terminal commands, file edits, browser actions — on your Mac mini, while the agent loop runs in Cursor’s cloud. The worker makes an outbound HTTPS connection to Cursor; you don’t open any ports.

Start a personal worker (“My Machines”) in the project folder it should work in:

Terminal window
cd ~/code/my-project
agent worker start --name "your-mac-mini"
  • No browser on the Mac? Create a personal API key in Cursor’s dashboard and pass it: agent worker --api-key "$CURSOR_API_KEY" --name "your-mac-mini" start.
  • Team pools (a shared fleet on an Enterprise plan) use a service-account key and agent worker --pool start, after an admin enables self-hosted workers.
  • Computer use: agent worker --computer-use --name "your-mac-mini" start lets agents click, type and take screenshots. The first start installs a Cursor Computer Use helper app; grant that app Accessibility and Screen & System Audio Recording in System Settings → Privacy & Security.
  • Keep it running with a LaunchAgent — the template and install-launchagent.sh examples do exactly this.
  • Keep the CLI current with agent update.

See Cursor’s docs on self-hosted machines for plan requirements and the full flag reference.

Claude desktop app: download from claude.ai/download (or brew install --cask claude), sign in, and add it to Login Items.

Claude Code (the command-line coding agent) — the native installer needs no Node and updates itself:

Terminal window
curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude # first run signs you in

For long sessions over SSH, run it inside tmux so it survives disconnects:

Terminal window
tmux new -s claude # start a session, then run: cd ~/code/my-project && claude
# detach with Ctrl-b d; later reattach with:
tmux attach -t claude
  • Containers: Docker Desktop or OrbStack, if your projects use containers. Both can start at login.
  • Local models: Ollama or LM Studio run open-weight models on the Mac’s GPU. Size memory accordingly (see hardware).
  • GitHub CLI: brew install gh then gh auth login, for agents that open pull requests.

A Brewfile makes rebuilding the server — or a second one — a single command:

Terminal window
brew bundle dump --file ~/Brewfile --force # save
brew bundle install --file ~/Brewfile # restore on a new Mac
Terminal window
brew --version; git --version; node --version; python3 --version; uv --version
agent --version; claude --version