A lightweight mobile interface that lets you monitor and control Kiro IDE agent sessions from your phone over LAN, with a live preview of chat, tasks, and code via Chrome DevTools Protocol.
- 📱 Mobile-optimized web interface with tab navigation
- 🔑 OTP Authentication - 6-digit access code generated on server startup
- 💬 Chat - View and send messages to Kiro's agent
- 📝 Code - Browse file explorer and view files with syntax highlighting
- 📋 Tasks - View and navigate Kiro spec task files
- 🔄 Real-time updates via WebSocket with adaptive polling
- Node.js 18+ (uses ES modules)
- Kiro IDE
The bridge needs an workspace session to detect and connect to.
Open Kiro with the remote debugging port enabled:
Run Kiro with debugging port on CMD/Terminal:
kiro --remote-debugging-port=9000Start the bridge server inside the Kiro terminal
npx kiro-mobile-bridgegit clone
cd kiro-mobile-bridge
npm install
npm startYou'll see output like:
Kiro Mobile Bridge
─────────────────────
Local: http://localhost:3000
Network: http://192.168.16.106:3000
🔑 Access Code: 847291
Enter this code on your device to connect.
- Make sure your phone is on the same WiFi network as your computer
- Open the Network URL (e.g.,
http://192.168.1.100:3000) in your phone's browser - Enter the 6-digit access code shown in the terminal
- The interface will connect and show your Kiro session
- Use the tabs to switch between Chat, Code, and Tasks panels
Note: The access code is single-use — only one device can authenticate per server session. Restart the server to generate a new code.
For trusted environments where you want the original no-auth experience:
npx kiro-mobile-bridge --no-auth┌─────────────────┐ CDP ┌─────────────────┐
│ Kiro IDE │◄────────────►│ Bridge Server │
│ (port 9000-9003)│ │ (port 3000) │
└─────────────────┘ └────────┬────────┘
│
HTTP + WebSocket
│
┌────────▼────────┐
│ Mobile Client │
│ (browser) │
└─────────────────┘
- Discovery: Server scans ports 9000-9003, 9222, 9229 for Kiro instances (adaptive: 10s → 30s when stable)
- Connection: Connects to Kiro via CDP WebSocket
- Snapshots: Captures chat, editor, and tasks with adaptive polling (1s active → 3s idle)
- Messages: Injects text into Kiro's chat input via CDP
- Make sure Kiro is running with
--remote-debugging-port=9000 - Check that Kiro has a chat/agent session open
- Wait a few seconds for discovery
- Ensure phone and computer are on the same network
- Check your firewall allows connections on port 3000
- Try the IP address shown in the server output (not
localhost)
Root Cause: Node.js firewall rule only allows Public networks by default. If your network is set to Private, mobile devices can't connect.
Quick Fix - Option 1: Change Network to Public (Easiest)
- Open Settings → Network & Internet
- Click your connection (WiFi or Ethernet)
- Under "Network profile type", select Public network (Recommended)
- Try accessing from mobile again
Quick Fix - Option 2: Update Firewall Rule (Better for home networks)
Run this command as Administrator (Win + X → Terminal Admin):
netsh advfirewall firewall set rule name="Node.js JavaScript Runtime" new profile=private,publicIf you're on Linux and can't connect from your phone, your firewall may be blocking port 3000. Allow it with:
# UFW (Ubuntu, Arch, etc.)
sudo ufw allow 3000/tcp
# Or with iptables directly
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT- A 6-digit access code is generated on each server startup and displayed in the terminal
- The code is single-use — once a device authenticates, the code is consumed and all other devices are immediately locked out
- New devices opening the login page during lockout or after the code is consumed will see a locked UI immediately
- Sessions use HttpOnly cookies — tokens are not exposed to client-side JavaScript
- Use
--no-authto disable authentication for fully trusted environments
MIT