Get desktop control working in 5 minutes!
-
Desktop Agent (
packages/desktop/src/electron/agent.ts)- Executes commands on your computer
- Supports: Steam, CS2, Spotify, Faceit, Cursor, Chrome, Discord
- Cross-platform (Windows, macOS, Linux)
-
Agent Service (
packages/desktop/src/electron/agent-service.ts)- Polls backend for commands every 3 seconds
- Executes commands and reports results
- Handles authentication
-
Backend API (
packages/backend/src/routes/desktop-agent.ts)/api/desktop-agent/command- Mobile sends commands/api/desktop-agent/poll- Desktop polls for commands/api/desktop-agent/result- Desktop reports results
-
Mobile Service (
packages/mobile/src/services/desktop-control.ts)- Send commands to desktop
- Natural language parsing
- Command history
-
Mobile Screen (
packages/mobile/src/screens/main/DesktopControlScreen.tsx)- Quick action buttons
- Custom command input
- Real-time status
cd packages/backend
npm run devBackend will run on http://localhost:3000
cd packages/desktop
npm run devDesktop app will:
- Connect to backend
- Start polling for commands
- Execute commands when received
cd packages/mobile
npm start
# or
npx expo startNavigate to Desktop Control screen and send commands!
From Mobile:
- Open Desktop Control screen
- Tap "🎮 Open Steam"
- Steam should open on your desktop!
From Mobile:
- Tap "🔫 Launch CS2"
- Steam opens and launches CS2!
From Mobile:
- Type: "open spotify"
- Tap "Send Command"
- Spotify opens on desktop!
The desktop agent can also be triggered from chat! Update the AI agent to recognize commands:
// In packages/backend/src/ai/agent.ts
// When user says "open steam" in chat, trigger desktop command
if (message.includes('open steam')) {
// Queue command for desktop
await queueDesktopCommand(userId, {
type: 'open_app',
target: 'steam'
});
}Add Desktop Control to your mobile app navigation:
// In packages/mobile/src/navigation/AppNavigator.tsx
import { DesktopControlScreen } from '../screens/main/DesktopControlScreen';
// Add to stack navigator
<Stack.Screen
name="DesktopControl"
component={DesktopControlScreen}
options={{ title: 'Desktop Control' }}
/>Scenario: You're on the couch, want to play CS2
From Mobile:
1. Open BIL mobile app
2. Go to Desktop Control
3. Tap "Launch CS2"
4. Desktop opens Steam → Launches CS2
5. Grab controller and play!
With Voice:
1. Say: "Hey BIL, launch CS2"
2. BIL sends command to desktop
3. CS2 launches
4. Play!
- All commands require authentication
- Desktop and mobile must be logged in with same account
- Commands are encrypted in transit
- No passwords stored on server
- Desktop agent validates all commands
- Check desktop app is running
- Check backend is running
- Check both logged in with same account
- Check console for errors
- Verify application is installed
- Check application name matches your system
- Try custom command with full path
- Install
sshpassfor password auth - Use SSH keys instead
- Check server is accessible
- Test basic commands - Open Steam, Spotify, etc.
- Try custom commands - SSH, scripts, etc.
- Integrate with chat - "Hey BIL, open Steam"
- Add voice control - Voice commands from mobile
- Deploy to Railway - Control from anywhere!
// Open applications
"open steam"
"launch cs2"
"open spotify"
"open cursor"
// SSH
"ssh to user@server.com"
"connect to my dev server"
// Custom
"run npm dev in ~/projects/myapp"
"git pull in ~/projects/myapp"Ready to control your desktop? Start the apps and try it out! 🎉