Ask anything about this post!
Get Openclaw up and running in GitHub Codespaces with this quick guide! You'll learn how to manually start the gateway (since systemd isn't supported) and approve device pairing requests to fix the "pairing required" error caused by Codespaces' proxy. Follow these steps to easily access your Openclaw dashboard in your cloud development environment.
This guide helps you set up and troubleshoot Openclaw in GitHub Codespaces environments.
openclaw status
Expected Issue: Gateway shows "unreachable (connect failed: connect ECONNREFUSED 127.0.0.1:18789)"
GitHub Codespaces dev containers don't support systemd, so the gateway won't auto-start.
Verify this:
openclaw gateway start
# Will show: "systemd not installed" or similar error
Since systemd isn't available, start the gateway directly in the background:
clawdbot gateway run &
Wait 2-3 seconds for it to initialize, then verify:
clawdbot status
Expected Output: Gateway should now show "reachable" with response time (e.g., "17ms")
Generate the tokenized dashboard URL:
clawdbot dashboard
Output Example:
Dashboard URL: http://127.0.0.1:18789/?token=b7da479bc4c733b80eaf30aa8cac0d78928fb438365bf97e
GitHub Codespaces automatically forwards port 18789. You'll get a URL like:
https://your-codespace-name.app.github.dev/?token=YOUR_TOKEN_HERE
Important: Open this URL in your browser.
When you open the dashboard, you'll see:
disconnected (1008): pairing required
This happens because Codespaces uses a proxy, and Clawdbot requires device pairing for remote connections.
Back in the terminal, run:
clawdbot devices list
Expected Output:
Pending (1)
┌──────────────────────────────────────┬───────────┬──────────┬────────────┬────────┐
│ Request │ Device │ Role │ IP │ Age │
├──────────────────────────────────────┼───────────┼──────────┼────────────┼────────┤
│ 182856e5-2b08-4970-8d0e-5f04ea6b0ba8 │ e69a3a... │ operator │ 27.60.8.26 │ 2m ago │
└──────────────────────────────────────┴───────────┴──────────┴────────────┴────────┘
Copy the Request ID from the pending list and approve it:
clawdbot devices approve <REQUEST_ID>
Example:
clawdbot devices approve 182856e5-2b08-4970-8d0e-5f04ea6b0ba8
Expected Output:
Approved e69a3af30196991afece999d587a70fbb25aa11f276199c1098b2257e0890310
Go back to your browser and:
✅ Success! The dashboard should now connect without errors.
clawdbot gateway run &
clawdbot status
clawdbot dashboard
clawdbot devices list
clawdbot devices approve <REQUEST_ID>
clawdbot logs --follow
pkill -f "clawdbot gateway"
clawdbot gateway run & manually each timeSolution: Run in background with nohup:
nohup clawdbot gateway run > /tmp/gateway.log 2>&1 &
Solution: Try opening the dashboard URL again to trigger a new pairing request, then check:
clawdbot devices list
Solution: Stop existing gateway processes:
pkill -f "clawdbot gateway"
sleep 2
clawdbot gateway run &
The key difference in Codespaces is:
Follow steps 1-9 above and you'll have Clawdbot running successfully! 🦞
Thank you for reading our blog!
We have a Discord community where you can ask questions and get help from the community.
No comments yet. Be the first to share your thoughts!