synkin
v0.3.1
Published
Instantly test local web apps on Android over USB. No firewall changes. No manual ADB.
Maintainers
Readme
Synkin — Test Localhost on Android over USB
Instantly preview your local web apps on Android — over USB.
Install · Usage · Vist our Website · Report an issue
Synkin is a free open-source npm CLI that lets developers test localhost websites on Android over USB using ADB Reverse.
It automatically detects React, Vite, Next.js, Express, FastAPI, Flask, Django and HTML projects, forwards localhost ports, launches Chrome on Android and supports backend APIs without Wi-Fi or local IP configuration.
Synkin is a lightweight CLI that bridges your local development server to an Android device over USB using ADB. It automatically discovers your running dev server, forwards the required ports, and opens Chrome on your connected device.
No IP addresses. No firewall configuration. No Wi-Fi setup. Plug in your phone, run one command, and you're live on-device.
npm install -g synkinsynkin runFor a visual walkthrough, check out the website.
Contents
- Features
- Requirements
- Installation
- Usage
- Typical workflow
- Supported frameworks
- Project detection
- Static HTML projects
- Notes for Vite users
- Troubleshooting
- Roadmap
- Contributing
- License
Features
| | | |---|---| | 🚀 One-command setup | Run a single command and the bridge configures itself. | | 🔌 USB-only connection | No Wi-Fi, no shared network, no exposed ports. | | 📱 Automatic Chrome launch | Opens your project on the device the moment it's ready. | | 🔍 Automatic project detection | Recognizes your framework by scanning the current directory. | | ⚡ Automatic port discovery | Finds the ports your servers are running on — nothing to specify. | | 🔄 Frontend + backend together | Bridges both at once, in a single run. | | 🌐 Works with localhost APIs | Backend requests are tunneled through ADB Reverse. | | 🧹 Cleans up on exit | Disconnect the cable or stop Synkin and everything unwinds automatically. | | 💻 Cross-project support | Use it in any project directory, no per-project config. |
Requirements
- Node.js 18+
- An Android device
- A USB cable
- USB debugging enabled on the device
- Android Platform Tools (ADB)
Verify ADB is installed:
adb versionVerify your device is recognized:
adb devicesExpected output:
List of devices attached
2201116PI deviceInstallation
Install globally with npm:
npm install -g synkinVerify the installation:
synkin --versionTo update later:
npm update -g synkinUsage
1. Start your frontend
npm run dev2. Start your backend (optional)
npm run dev3. Connect your Android phone via USB
4. Run Synkin
synkin runSynkin will then:
- Detect your Android device
- Discover your running project
- Detect frontend and backend ports
- Configure ADB Reverse
- Launch Chrome automatically
- Open your project on the phone
Typical workflow
# Terminal 1
cd frontend
npm run dev# Terminal 2
cd backend
npm run dev# Terminal 3
synkin runThat's it — your project is live on-device.
Notes for Vite users
Your Vite server must be reachable through ADB Reverse. If it's only listening on 127.0.0.1, Android Chrome can't reach it through the bridge — enable server.host in vite.config.ts:
server: {
host: true,
},Troubleshooting
Device not detected
Check the connection:
adb devicesMake sure these are enabled on the device:
- USB debugging
- File transfer mode
Chrome doesn't open
Confirm Google Chrome is installed on the Android device.
Project not found
Run Synkin from inside your project folder:
cd my-project
synkin runBackend requests fail
Make sure your backend server is running before starting Synkin.
if chrome say -site can't be reached
Make sure to check vite.config.js has this:
server{
host: true
},
Supported frameworks
| Frontend | Backend | Database | |---|---|---| | React | Express.js | MongoDB | | Vite | NestJS | PostgreSQL | | Next.js | FastAPI | MySQL | | Angular | Flask | SQLite | | Static HTML | Django | |
Database support means Synkin doesn't interfere with your backend's own connection — as long as your backend server is running, its database connection works exactly as it would locally.
More frameworks will be added in future releases.
Project detection
Synkin automatically detects supported projects by scanning the current directory — no configuration required.
React
Vite
Next.js
Angular
Express
NestJS
FastAPI
Flask
Django
HTMLStatic HTML projects
Synkin also supports simple static sites. Serve your files however you like:
python -m http.server 5500npx serve .Then run:
synkin runSummary
Synkin lets you access localhost on Android over USB.
Unlike Wi-Fi based solutions, Synkin uses ADB Reverse so backend APIs continue working without changing your application's base URL.
Contributing
Suggestions, and bug reports are welcome. If you find a bug or have an idea for an improvement, open an issue.
License
Released under the MIT License.
Made with ❤️ by Samarpan ~ owsam22
