NeonMirror — Android Device Mirroring for Gallia Viewer
Mirror a USB-connected Android device in Gallia Viewer with touch/keyboard interaction, logcat streaming, macro recording, and display settings control.
What the user asked
$ARGUMENTS
Step 1: Display NeonMirror in Gallia Viewer
mcp__adom-viewer__gv_display({ url: 'https://<neon-mirror-url>.adom.cloud/', title: 'NeonMirror' })
Replace <container-slug> with the actual neon-mirror service container slug.
Step 2: Guide the User
- Start Mirror — Click "Start Mirror" to begin screen mirroring
- Touch/Click — Click on the mirrored screen to tap, drag to swipe
- Keyboard — Focus the mirror canvas and type to send keystrokes
- Logcat — Switch to the Logcat tab, enter a package name, and click Start
- Macros — Switch to the Macros tab, name a macro, and click Record. Perform touch actions, then click Stop.
- Display Settings — Change DPI, resolution, or toggle screen on/off from the Settings tab
- Console — View raw adb/scrcpy output in the Console tab
Features
- Real-time MJPEG screen mirroring via scrcpy
- Touch and keyboard input forwarding
- Auto-reconnect on device disconnect with retry loop
- USB device detection (polls adb devices every 3 seconds)
- Logcat viewer with package name and log level filtering
- DPI and resolution override controls
- Screen on/off and stay-awake-while-plugged toggle
- Touch macro recording and replay
- Raw console output from adb, scrcpy, and ffmpeg
Service Health Check
GET https://<neon-mirror-url>.adom.cloud/health
Returns: { ok, service, state, device, mirroring, uptime }
WebSocket API
Connect to wss://<service-url>/ws for real-time communication.
Commands (client to server)
| Type | Fields | Description |
|---|---|---|
start_mirror | maxFps?, bitRate?, maxSize? | Start mirroring |
stop_mirror | — | Stop mirroring |
touch | action, x, y, width, height | Touch event |
key | keyCode | Android keyevent |
text | text | Type text |
start_logcat | packageName?, level? | Start logcat |
stop_logcat | — | Stop logcat |
set_density | dpi | Change DPI |
set_size | width, height | Change resolution |
reset_display | — | Reset display settings |
screen_on / screen_off | — | Wake/sleep screen |
stay_awake | enabled | Toggle stay on while plugged |
macro_start | name | Start recording macro |
macro_stop | — | Stop recording |
macro_play | name | Replay macro |
macro_list | — | List saved macros |
macro_delete | name | Delete macro |
Troubleshooting
- No device detected: Ensure USB debugging is enabled on the Android device and the device is connected via USB to the service container
- Mirror won't start: Check that adb, scrcpy, and ffmpeg are installed (
install-deps.sh) - Black screen: The device may need to be unlocked first. Use "Screen On" in Settings
- High latency: Reduce bitrate or max size in Settings tab