skill
Neon Mirror
UnreviewedUse when the user wants to mirror an Android device, interact with an Android phone/tablet screen, view Android logcat, record touch macros, control display settings (DPI, resolution), or manage...
skill / neon-mirror
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