Stay tethered to your development environment from anywhere.
DevTether is a mobile companion app for Cursor IDE that lets you monitor AI agents, sync chats, view code, and control tasks remotely from your Android device.
- Real-time agent monitoring with live progress and status updates
- Chat syncing to view and continue conversations with your AI assistant
- Code browser to view workspace files with syntax highlighting
- Terminal control to execute commands remotely
- Push notifications when agents complete or encounter errors
- QR code scanning for quick connection setup
- Embedded HTTP and WebSocket server with no external dependencies
- Direct VS Code API integration for workspace, files, and terminals
- Optional API key authentication
- Status bar controls for quick access
+------------------+ HTTP/WS +------------------+
| |<---------------->| |
| DevTether App | | DevTether Ext |
| (Android) | | (Cursor) |
| | | |
+--------+---------+ +--------+---------+
| |
| FCM | VS Code API
v v
+------------------+ +------------------+
| Firebase | | Cursor IDE |
| Cloud Messaging | | Workspace |
+------------------+ +------------------+
- Cursor IDE (or VS Code) installed on your development machine
- Node.js 18 or later for extension development
- Android Studio for app development, or use the pre-built APK
- Both devices must be on the same local network
cd extension
npm install
npm run compileThen install the extension in Cursor:
- Open Cursor
- Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)
- Type "Extensions: Install from VSIX..."
- Select the generated .vsix file
For development, open the extension folder in Cursor and press F5 to launch the Extension Development Host.
- Open the Command Palette (Cmd+Shift+P or Ctrl+Shift+P)
- Run "DevTether: Start Server"
- Note the URL displayed, for example http://192.168.1.100:8080
- Install DevTether on your Android device
- Open the app and enter the server URL
- Add your API key if you configured one
- Tap Connect
You can also use the QR code method:
- Run "DevTether: Show QR Code" in Cursor
- Scan the QR code with the DevTether app
| Setting | Default | Description |
|---|---|---|
| devtether.port | 8080 | Server port number |
| devtether.apiKey | (empty) | Optional API key for authentication |
| devtether.autoStart | false | Start server automatically when Cursor opens |
| Command | Description |
|---|---|
| DevTether: Start Server | Start the DevTether server |
| DevTether: Stop Server | Stop the DevTether server |
| DevTether: Show QR Code | Display QR code for quick connection |
| DevTether: Copy Connection URL | Copy server URL to clipboard |
| DevTether: Show Status | Show current server status |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/status | Health check and server info |
| GET | /api/agents | List all agents |
| POST | /api/agents | Start a new agent |
| GET | /api/agents/:id | Get agent details |
| POST | /api/agents/:id/continue | Continue agent conversation |
| POST | /api/agents/:id/stop | Stop running agent |
| GET | /api/chat | List conversations |
| GET | /api/chat/:id | Get conversation messages |
| GET | /api/files | List workspace files |
| GET | /api/files/* | Get file content |
| POST | /api/terminal | Execute terminal command |
Connect to /ws and add ?apiKey=YOUR_KEY if authentication is enabled.
Messages from client to server:
- ping: Health check
- subscribe: Subscribe to specific events
Messages from server to client:
- connected: Connection confirmed
- pong: Ping response
- agent-update: Agent status changed
- agent-started: New agent started
- agent-completed: Agent finished
- agent-error: Agent encountered error
| Screen | Description |
|---|---|
| Setup | First launch connection configuration |
| Agents | List and manage AI agents |
| Agent Detail | View logs, continue, or stop agents |
| Chat | Browse conversation history |
| Chat Detail | View and send messages |
| Files | Browse workspace files |
| File Viewer | View file contents with syntax |
| Settings | App and connection settings |
cd extension
npm install
npm run watchPress F5 in Cursor to launch the Extension Development Host.
- Open the app folder in Android Studio
- Copy google-services.json.example to google-services.json and add your Firebase credentials
- Sync Gradle files
- Run on emulator or device
The app uses:
- Kotlin
- Jetpack Compose with Material 3
- Hilt for dependency injection
- Retrofit and OkHttp for networking
- DataStore for preferences
- Firebase Cloud Messaging for push notifications
cd app
./gradlew assembleDebugThe APK will be at app/build/outputs/apk/debug/app-debug.apk
DevTether is designed for local network use only. Here are some things to keep in mind:
- All communication stays on your local network
- Enable API key authentication for additional security
- Consider restricting firewall access to the server port
- Do not expose the server to the public internet
Contributions are welcome. Feel free to submit a pull request.
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
- Inspired by the need for mobile AI agent monitoring
- Built for the Cursor IDE community
- Uses the VS Code Extension API