After upgrading my equipment early this year, my old M2 Mac mini sat gathering dust in the corner for months. Until recently when OpenClaw went viral, I suddenly realized: this 24/7 running, performance-excessive little box could become a development powerhouse. Today I'm sharing my transformation experience.
Background: The Mac mini Dilemma
Many developers have similar experiences:
- Bought a Mac mini as a dev machine, later switched to MacBook Pro for mobility
- Put it at the office as a CI/CD server, but cloud servers are more convenient
- Want to sell it second-hand, but Mac retains value well, yet the price is unsatisfactory
M2 Mac mini characteristics:
- ✅ Powerful performance (8-core M2, 16GB RAM)
- ✅ Low power consumption (average 20W, ~$1.5/month electricity)
- ✅ Silent (virtually no fan noise)
- ❌ But no monitor, keyboard, gathering dust at home/office
Turning Point: The Emergence of OpenClaw
In January 2026, OpenClaw (formerly Clawdbot) suddenly went viral, with GitHub stars breaking 6 million within 72 hours. What is it?
OpenClaw is a self-hosted AI assistant that can:
- Connect to local file system (read/write files, execute commands)
- Integrate external APIs (GitHub, Notion, databases, etc.)
- Interact anytime via Telegram/WhatsApp/Discord
- Based on Claude API, but runs locally
The key point: OpenClaw needs a 24/7 running machine, and Mac mini fits perfectly!
My Transformation: 3-in-1 Productivity Tool
I transformed the Mac mini into:
- OpenClaw AI Assistant (interact anytime via Telegram)
- Remote Development Server (via VS Code Remote-SSH)
- Production Environment Server (running client projects' live services)
Architecture Diagram
MacBook Pro (Mobile Dev Machine)
│
│ Tailscale (Zero-config VPN)
▼
Mac mini (24/7 Running)
├── OpenClaw (AI Assistant)
│ ├── Connected to Claude API
│ ├── Access local files
│ └── Telegram Bot interaction
├── Development Environment (Docker)
│ ├── MySQL
│ ├── Redis
│ └── Node.js projects
└── Production Services (PM2)
├── API Server
├── Web Application
└── Scheduled Tasks
Implementation Steps (2 Hours Total)
Step 1: Install OpenClaw (10 minutes)
OpenClaw provides Homebrew installation:
# 1. Install OpenClaw
brew install openclawd
# 2. Configure
openclawd onboard
# Follow prompts to enter:
# - Claude API Key (from Anthropic website)
# - Telegram Bot Token (create from @BotFather)
Configuration file example (~/.openclaw/config.json):
{
"anthropic_api_key": "sk-ant-xxx",
"telegram": {
"bot_token": "123456:ABC-xxx",
"chat_id": "Your Telegram User ID"
},
"workspace": "/Users/ekt/code",
"allowed_paths": [
"/Users/ekt/code",
"/Users/ekt/Documents"
],
"tools": {
"file_system": true,
"terminal": true,
"browser": false
}
}
Start OpenClaw:
# Foreground (for testing)
openclawd start
# Background (recommended)
brew services start openclawd
# View logs
tail -f ~/Library/Logs/openclawd.log
Step 2: Configure Telegram Bot (5 minutes)
In Telegram:
- Find @BotFather, create new Bot
- Get Bot Token
- Get your Chat ID (via @userinfobot)
- Fill in OpenClaw configuration
Test:
You: "List package.json dependencies for current project"
OpenClaw: [Auto-reads file] "Project uses Next.js 14, React 18..."
You: "Create a README.md with project introduction"
OpenClaw: [Auto-writes file] "Created README.md"
You: "Run npm test"
OpenClaw: [Executes command] "Tests passed, 12 test cases"
Step 3: Configure Remote Development Environment (30 minutes)
3.1 Install Tailscale (Zero-config VPN)
# On Mac mini
brew install --cask tailscale
# Launch and login
# Also install on MacBook Pro
brew install --cask tailscale
Tailscale advantages:
- No router configuration needed
- Automatic NAT traversal
- Cross-platform support (Mac/Win/Linux/iOS/Android)
- Free tier supports 100 devices
3.2 Configure SSH Quick Access
On MacBook Pro, edit ~/.ssh/config:
Host macmini
HostName 100.xxx.xxx.xxx # Mac mini's Tailscale IP
User ekt
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
ControlPersist 10m
ForwardAgent yes
Test connection:
ssh macmini
# After success, press Ctrl+D to exit
3.3 Configure VS Code Remote-SSH
- Install extension:
ms-vscode-remote.remote-ssh - Press
⇧⌘P→Remote-SSH: Connect to Host→ selectmacmini - Open project folder (path on Mac mini)
Experience:
- Code editing latency
<30ms(feels like local) - Terminal, debugger all run remotely
- MacBook Pro fan doesn't spin, battery life extended 50%
Step 4: Deploy Production Services (30 minutes)
Use PM2 to manage production services:
# Install PM2 on Mac mini
npm install -g pm2
# Configure ecosystem.config.js
module.exports = {
apps: [
{
name: 'api-server',
cwd: '/Users/ekt/code/production/api',
script: 'npm',
args: 'start',
env: {
NODE_ENV: 'production',
PORT: 3001
},
instances: 2, // Utilize multi-core
exec_mode: 'cluster',
autorestart: true,
watch: false,
}
]
}
# Start services
pm2 start ecosystem.config.js
# Auto-start on boot
pm2 startup
pm2 save
# Monitor
pm2 monit
Step 5: Configure Monitoring & Alerts (20 minutes)
Use Uptime Kuma to monitor all services:
# Run with Docker on Mac mini
docker run -d \
--name uptime-kuma \
-p 3001:3001 \
-v ~/uptime-kuma:/app/data \
louislam/uptime-kuma:latest
# Visit http://macmini-ip:3001
# Add monitors: API health checks, database, Redis, etc.
# Configure alerts: Telegram Bot notifications
Real Usage Scenarios
Scenario 1: AI Programming Assistant Anytime, Anywhere
When out and about:
Me (via Telegram): "Check production logs for errors"
OpenClaw: [SSH to Mac mini] [Check PM2 logs] "No errors in past hour"
Me: "Yesterday's new feature, users report slow login, analyze it"
OpenClaw: [Reads code] [Checks DB queries] "Found N+1 query issue in login API, suggest..."
Scenario 2: Mobile Remote Development
At a coffee shop:
# 1. MacBook Pro connects to Tailscale
# 2. Open VS Code Remote-SSH
# 3. Connect to Mac mini
# 4. Code, compile, test all run remotely
# 5. Local only handles display, battery life extended 2-3 hours
Scenario 3: Stable Production Environment
Mac mini runs production services 24/7:
- API server (PM2 cluster mode, utilizing multi-core)
- Database (MySQL Docker container)
- Scheduled tasks (node-cron hourly data collection)
- Monitoring & alerts (Uptime Kuma)
Cost:
- Electricity: ~$1.5/month
- Network: $0 (Tailscale free)
- Compared to cloud server: AWS t3.small ~$15/month
Advanced OpenClaw Usage
1. Automated Operations
Me: "Send server statistics every morning at 9 AM"
OpenClaw: [Configures cron job] "Set up, starts tomorrow"
Me: "If API response time >2s, auto-restart service and notify me"
OpenClaw: [Sets monitoring script] "Alert rule configured"
2. Code Review Assistant
Me: "Review my recent Git commits"
OpenClaw: [Reads git log] [Analyzes code changes] "Found 3 potential issues:..."
3. Documentation Generation
Me: "Generate API docs based on current project"
OpenClaw: [Scans code] [Generates Markdown] "Created docs/API.md"
Cost & Benefits
One-time Investment
| Item | Cost |
|---|---|
| M2 Mac mini | Already owned (otherwise ~$600) |
| External 4TB HDD (optional) | $80 |
| UPS (optional, power backup) | $60 |
| Total | $140 (or $0 if hardware owned) |
Monthly Cost
| Item | Cost |
|---|---|
| Electricity (24h running) | $1.5 |
| Claude API | $3-8 (usage-based) |
| Tailscale | $0 (free tier) |
| Total | $4.5-9.5/month |
Comparison with Cloud Servers
| Solution | Monthly Cost | Performance | Latency |
|---|---|---|---|
| Mac mini Solution | $4.5-9.5 | M2 8-core 16GB | <30ms (local) |
| AWS t3.small | $15 | 2-core 2GB | 50-100ms |
| GitHub Codespaces | ~$45 | 4-core 8GB | 100-200ms |
Mac mini solution is 5-10x more cost-effective!
FAQ
Q1: Is Mac mini performance sufficient?
Absolutely!
My configuration: M2 8-core 16GB
Actual load:
- OpenClaw: CPU 5%, Memory 500MB
- Production services (3 Node.js processes): CPU 15%, Memory 4GB
- MySQL + Redis: CPU 7%, Memory 1.5GB
- VS Code Remote: CPU 5%, Memory 1GB
Total: CPU 30%, Memory 8GB, plenty of headroom
Q2: What about security?
Multiple safeguards:
- Tailscale encrypted tunnel: End-to-end encrypted, not via public internet
- OpenClaw permission control: Only allows access to specified directories
- SSH key authentication: Password login disabled
- Firewall: Only necessary ports opened
Q3: What if network disconnects?
Contingency plan:
- Tailscale auto-reconnects (recovers within 5 seconds)
- PM2 auto-restarts services
- MacBook Pro can temporarily run production services (same Docker Compose config)
Q4: Will OpenClaw leak code?
No!
- OpenClaw only runs locally, code never leaves Mac mini
- Only instructions you send and Claude API responses are transmitted
- Can configure
allowed_pathsto limit access scope
Summary
Transforming an idle Mac mini into a OpenClaw AI assistant + remote development + production server 3-in-1 tool brings:
- AI Programming Assistant: Interact via Telegram anywhere, helps write code, check logs, analyze issues
- Remote Development: Seamlessly switch between coffee shop, home, office, MacBook Pro battery life extended 50%
- Production Server: $1.5/month cost (electricity), saves $13.5/month vs cloud servers
- Learn New Tech: Experience AI assistants, remote development, DevOps, and other cutting-edge technologies
ROI: If you already own a Mac mini, transformation cost is nearly $0, immediately usable.
If you also have an idle Mac mini, give this solution a try!
About the Author: ekent, Technical Lead at ek Studio, focusing on development tools and productivity improvements.
Related Resources: