WF-003: Multi-Machine Setup
DOCUMENT CONTROL
| Field | Value |
|---|---|
| WF ID | WF-003 |
| Version | 1.0 |
| Status | Active |
| Last Updated | December 2025 |
Overview
This workflow covers setting up Happy Coder across multiple development machines for maximum flexibility and parallel task execution.
Multi-Machine Architecture
┌─────────────────────────────────────────────────────────────────┐
│ MULTI-MACHINE SETUP │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ │
│ │ Happy Coder │ │
│ │ Mobile App │ │
│ └────────┬────────┘ │
│ │ │
│ ┌───────────────┼───────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Laptop │ │ Desktop │ │ VPS/Cloud │ │
│ │ (Development) │ │ (Heavy Build) │ │ (Deployment) │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
│ Optional: │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Raspberry Pi │ │ Mac Mini │ │ Home Server │ │
│ │ (Automation) │ │ (iOS Builds) │ │ (Background) │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘Workflow Phases
┌─────────────┬─────────────┬─────────────┬─────────────┐
│ PHASE 1 │ PHASE 2 │ PHASE 3 │ PHASE 4 │
│ INVENTORY │ INSTALL │ CONFIGURE │ OPTIMIZE │
├─────────────┼─────────────┼─────────────┼─────────────┤
│ List all │ Install │ Pair each │ Set up │
│ available │ happy-coder │ machine to │ git │
│ machines │ on each │ mobile app │ worktrees │
│ │ machine │ │ │
│ Identify │ Verify │ Test │ Create │
│ use cases │ Claude Code │ connections │ automation │
└─────────────┴─────────────┴─────────────┴─────────────┘Phase 1: Inventory Your Machines
Step 1: List Available Compute
Create an inventory of all machines:
| Machine | Location | Specs | Primary Use |
|---|---|---|---|
| MacBook Pro | Mobile | 16GB RAM | Development |
| Desktop PC | Office | 32GB RAM, GPU | Heavy builds |
| DigitalOcean | Cloud | 4GB RAM | Staging/Deploy |
| Raspberry Pi | Home | 4GB RAM | Automation |
Step 2: Define Use Cases
| Use Case | Best Machine | Why |
|---|---|---|
| Frontend dev | Laptop | Portability |
| ML training | Desktop | GPU access |
| CI/CD | VPS | Always online |
| Background jobs | Raspberry Pi | Low power |
| iOS builds | Mac Mini | Required |
Phase 2: Install on Each Machine
For Each Machine:
Step 1: SSH or access the machine
Step 2: Install Happy Coder:
bash
npm install -g happy-coderStep 3: Verify Claude Code is available:
bash
claude --versionStep 4: Test happy command:
bash
happy --versionPhase 3: Configure Connections
Pair Each Machine
For each machine, run:
bash
happy --authThen scan the QR code with your mobile app.
Verify All Connections
In the mobile app, check:
- [ ] All machines appear in session list
- [ ] Each shows correct hostname
- [ ] Status indicators working
Connection Checklist
| Machine | Paired | Tested | Notes |
|---|---|---|---|
| Laptop | ✅ | ✅ | Primary device |
| Desktop | ✅ | ✅ | Use for builds |
| VPS | ✅ | ✅ | Auto-reconnects |
| Raspberry Pi | ✅ | ✅ | Background tasks |
Phase 4: Optimize Setup
Set Up Git Worktrees
On each machine, create worktrees for parallel experimentation:
bash
# Create worktrees
git worktree add ../project-experiment-1 -b experiment-1
git worktree add ../project-experiment-2 -b experiment-2
git worktree add ../project-experiment-3 -b experiment-3Configure Auto-Start (Optional)
Linux (systemd):
bash
# /etc/systemd/system/happy.service
[Unit]
Description=Happy Coder Daemon
After=network.target
[Service]
Type=simple
User=youruser
WorkingDirectory=/home/youruser/project
ExecStart=/usr/local/bin/happy
Restart=always
[Install]
WantedBy=multi-user.targetEnable and start:
bash
sudo systemctl enable happy
sudo systemctl start happymacOS (launchd):
xml
<!-- ~/Library/LaunchAgents/com.happy.daemon.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.happy.daemon</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/happy</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>Custom Session Names
Set descriptive names for each machine:
bash
# On laptop
HAPPY_SESSION_NAME="laptop-frontend" happy
# On desktop
HAPPY_SESSION_NAME="desktop-backend" happy
# On VPS
HAPPY_SESSION_NAME="vps-deploy" happyUsage Patterns
Pattern 1: Parallel Exploration
Start the same experiment on multiple machines:
bash
# Machine 1: Approach A
cd ~/project-a && happy
# Machine 2: Approach B
cd ~/project-b && happy
# Machine 3: Approach C
cd ~/project-c && happyCompare results on your phone, pick the winner.
Pattern 2: Pipeline Distribution
| Stage | Machine | Task |
|---|---|---|
| 1 | Laptop | Write code |
| 2 | Desktop | Run tests |
| 3 | VPS | Deploy staging |
| 4 | Mobile | Approve production |
Pattern 3: Specialized Tasks
| Task Type | Machine | Why |
|---|---|---|
| Quick changes | Laptop | Fast access |
| Heavy builds | Desktop | More RAM/CPU |
| Long-running | VPS | Always online |
| Background automation | Raspberry Pi | Low power |
Success Criteria
- [ ] All machines paired successfully
- [ ] Sessions visible in mobile app
- [ ] Can switch between machines smoothly
- [ ] Push notifications from all machines
- [ ] Auto-reconnect working on all machines
