Bridge Setup
The Bridge is a lightweight agent that connects your Meticulous machine to the Hub, enabling remote control via Claude.
Overview
┌─────────────┐ ┌─────────────┐ ┌─────────────────┐
│ Claude.ai │────▶│ Hub API │────▶│ Bridge Agent │
│ │ │ (WebSocket) │ │ (Your Network) │
└─────────────┘ └─────────────┘ └────────┬────────┘
│
▼
┌─────────────────┐
│ Meticulous │
│ Machine │
└─────────────────┘
The Bridge:
- Runs on your local network (Raspberry Pi, home server, etc.)
- Maintains a secure WebSocket connection to the Hub
- Forwards commands from the Hub to your machine
- Sends machine responses back to the Hub
Prerequisites
- A device on the same network as your Meticulous (Linux, macOS, or Windows)
- Your machine's IP address or hostname
- A Device Token from the Hub dashboard
Installation Options
Docker (Recommended)
docker run -d \
--name meticulous-bridge \
--restart unless-stopped \
-e METICULOUS_DEVICE_TOKEN=mt_xxx \
-e METICULOUS_SERVER_URL=wss://api.meticuloushub.com/bridge \
-e METICULOUS_API_URL=http://192.168.1.100:8080 \
ghcr.io/naticha/meticulous-bridge:latest
Docker Compose
version: '3.8'
services:
meticulous-bridge:
image: ghcr.io/naticha/meticulous-bridge:latest
restart: unless-stopped
environment:
- METICULOUS_DEVICE_TOKEN=mt_xxx
- METICULOUS_SERVER_URL=wss://api.meticuloushub.com/bridge
- METICULOUS_API_URL=http://192.168.1.100:8080
Binary Download
Download from GitHub Releases:
# Linux ARM64 (Raspberry Pi)
wget https://github.com/NatiCha/meticulous-bridge/releases/latest/download/meticulous-bridge-linux-arm64
chmod +x meticulous-bridge-linux-arm64
./meticulous-bridge-linux-arm64
# Linux x64
wget https://github.com/NatiCha/meticulous-bridge/releases/latest/download/meticulous-bridge-linux-amd64
# macOS (for testing)
wget https://github.com/NatiCha/meticulous-bridge/releases/latest/download/meticulous-bridge-darwin-arm64
Systemd Service
For automatic startup on Linux:
sudo nano /etc/systemd/system/meticulous-bridge.service
[Unit]
Description=Meticulous Bridge
After=network.target
[Service]
Type=simple
User=pi
Environment=METICULOUS_DEVICE_TOKEN=mt_xxx
Environment=METICULOUS_SERVER_URL=wss://api.meticuloushub.com/bridge
Environment=METICULOUS_API_URL=http://192.168.1.100:8080
ExecStart=/home/pi/meticulous-bridge
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl enable meticulous-bridge
sudo systemctl start meticulous-bridge
Configuration
| Variable | Description | Example |
|---|---|---|
METICULOUS_DEVICE_TOKEN | Token from Hub dashboard | mt_abc123... |
METICULOUS_SERVER_URL | Hub WebSocket endpoint | wss://api.meticuloushub.com/bridge |
METICULOUS_API_URL | Your machine's local URL | http://192.168.1.100:8080 |
Finding Your Machine's IP
Your Meticulous machine typically uses mDNS. Try:
# Using the machine's hostname
ping meticulousXXXXXX.local
# Or find it on your network
nmap -sn 192.168.1.0/24 | grep -i meticulous
Security
The Bridge uses several security measures:
- TLS encryption for all Hub communication
- Token authentication - each device has a unique token
- API allowlist - only specific machine endpoints are accessible
- No inbound connections - the Bridge only makes outbound connections
Troubleshooting
Bridge won't connect to Hub
# Check logs
docker logs meticulous-bridge
# Or for systemd
journalctl -u meticulous-bridge -f
Common issues:
- Invalid device token
- Network firewall blocking outbound WebSocket connections
- DNS resolution issues
Bridge can't reach machine
# Test machine connectivity
curl http://192.168.1.100:8080/api/v1/machine
Common issues:
- Wrong IP address
- Machine not on the same network
- Machine's API not responding
Device shows offline in dashboard
- Verify the Bridge is running
- Check the device token matches
- Look for connection errors in Bridge logs