Turn your phone into a wireless keyboard for VS Code and any other application on your computer.
- Features
- Prerequisites
- Installation
- Usage
- How It Works
- Special Keys
- Keyboard Shortcuts
- Troubleshooting
- Tips
- Security Note
- Contributing
- License
- Real-time keyboard input from your phone to your computer
- Support for special keys (Enter, Tab, Escape, Backspace, Arrow keys)
- Support for modifier keys (Ctrl, Alt, Shift, Cmd/Meta)
- Beautiful, responsive web interface optimized for mobile
- Auto-reconnection if connection is lost
- Works on the same WiFi network
- Node.js (v14 or higher)
- Your phone and computer must be on the same WiFi network
- Python and build tools (required for robotjs)
macOS:
xcode-select --installWindows:
npm install --global windows-build-toolsLinux (Ubuntu/Debian):
sudo apt-get install libxtst-dev libpng++-dev- Install dependencies:
npm installNote: robotjs may take a few minutes to build from source.
- Start the server:
npm start- The terminal will display URLs like:
=================================
Phone Keyboard Server Started
=================================
Local: http://localhost:3000
Network: http://192.168.1.100:3000
=================================
-
Open the Network URL on your phone's browser
-
Start typing on your phone - the input will appear in your VS Code or any focused application
- Server: Runs an Express server with WebSocket support
- Phone Interface: A responsive web page that captures your keystrokes
- Keyboard Simulation: Uses robotjs to simulate actual keyboard input on your computer
The interface includes buttons for:
- Enter
- Tab
- Escape
- Backspace
Arrow keys can be triggered using your phone's keyboard if available.
All standard keyboard shortcuts work:
- Cmd/Ctrl + S (Save)
- Cmd/Ctrl + C (Copy)
- Cmd/Ctrl + V (Paste)
- And any other shortcuts
Make sure you have the required build tools installed (see Prerequisites section).
- Ensure both devices are on the same WiFi network
- Check your firewall settings - port 3000 needs to be open
- Try disabling VPN if active
- Make sure VS Code or your target application is focused
- Check the server console for error messages
- On macOS, grant accessibility permissions if prompted
On macOS, you may need to grant accessibility permissions:
- Go to System Preferences > Security & Privacy > Privacy > Accessibility
- Add Terminal (or your terminal app) to the list
- Restart the server
- Keep your phone screen on to maintain the connection
- Use landscape mode for a larger keyboard
- The preview shows the last key you pressed
- Connection status is shown at the top
This tool broadcasts on your local network. Only use it on trusted networks.
ISC
Contributions are welcome! Please read our Contributing Guidelines for details on:
- Code of Conduct
- Development setup
- Pull request process
- Coding standards
- Reporting bugs and suggesting features
Feel free to submit issues and pull requests!