Android Viewer
ใช้ทำอะไรได้
ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ
- ต่อแบบ ติดตั้งในเครื่อง
- บัญชีหรือคีย์ ไม่ต้องใส่คีย์
- หมวด เครื่องมือนักพัฒนา
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Drive Android emulators: screenshots, taps, swipes, keys, text, rotation and foldable postures.ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
สมัครและสร้างคีย์ของ Android Viewer
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
เปิดไฟล์ตั้งค่าของแอป Claude บนคอม
SettingsDeveloperEdit Config
วางค่าตั้งนี้แล้วบันทึกไฟล์
{ "mcpServers": { "android-viewer": { "command": "npx", "args": [ "-y", "@acertijosapps/android-viewer", "mcp" ], "env": { "ANDROID_VIEWER_URL": "ใส่ค่าของคุณ", "ANDROID_HOME": "ใส่ค่าของคุณ" } } } }วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ปิดแอป Claude แล้วเปิดใหม่
ลองเลย
ใช้ Android Viewer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ Android Viewer หรือมีชื่อเครื่องมือของ Android Viewer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ Android Viewer ไม่ได้
Android Viewer ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Android Viewer ได้
- ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
- ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ข · ตัวอื่นในหมวด เครื่องมือนักพัฒนา ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
สมัครและสร้างคีย์ของ Android Viewer
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
เปิด Terminal
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
วางคำสั่งนี้แล้วกด Enter
claude mcp add --scope user android-viewer --env ANDROID_VIEWER_URL='ใส่ค่าของคุณ' --env ANDROID_HOME='ใส่ค่าของคุณ' -- npx -y @acertijosapps/android-viewer mcpแก้ “ใส่ค่าของคุณ” เป็นคีย์ของคุณก่อนกด Enter
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
พิมพ์ /mcp ใน Claude Code
ต้องเห็น Android Viewer ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ลองเลย
ใช้ Android Viewer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ Android Viewer หรือมีชื่อเครื่องมือของ Android Viewer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
สมัครและสร้างคีย์ของ Android Viewer
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
ใส่คีย์ในช่องที่ว่างไว้
ในค่าตั้งของ Android Viewer ช่อง ANDROID_VIEWER_URL, ANDROID_HOME ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
เปิดแชตของ AI ใน Cursor โหมด Agent
ลองเลย
ใช้ Android Viewer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ Android Viewer หรือมีชื่อเครื่องมือของ Android Viewer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ Android Viewer (สร้างที่เว็บของผู้ทำ) · ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
สมัครและสร้างคีย์ของ Android Viewer
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
ใส่คีย์ในช่องที่ว่างไว้
ในค่าตั้งของ Android Viewer ช่อง ANDROID_VIEWER_URL, ANDROID_HOME ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
เปิดแชตของ AI ใน VS Code โหมด Agent
ลองเลย
ใช้ Android Viewer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ Android Viewer หรือมีชื่อเครื่องมือของ Android Viewer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON
ติดตั้งในเครื่อง
Claude Code
claude mcp add --scope user android-viewer --env ANDROID_VIEWER_URL='ใส่ค่าของคุณ' --env ANDROID_HOME='ใส่ค่าของคุณ' -- npx -y @acertijosapps/android-viewer mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"android-viewer": {
"command": "npx",
"args": [
"-y",
"@acertijosapps/android-viewer",
"mcp"
],
"env": {
"ANDROID_VIEWER_URL": "ใส่ค่าของคุณ",
"ANDROID_HOME": "ใส่ค่าของคุณ"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"android-viewer": {
"command": "npx",
"args": [
"-y",
"@acertijosapps/android-viewer",
"mcp"
],
"env": {
"ANDROID_VIEWER_URL": "ใส่ค่าของคุณ",
"ANDROID_HOME": "ใส่ค่าของคุณ"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"android-viewer": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@acertijosapps/android-viewer",
"mcp"
],
"env": {
"ANDROID_VIEWER_URL": "ใส่ค่าของคุณ",
"ANDROID_HOME": "ใส่ค่าของคุณ"
}
}
}
}ค่าที่ต้องใส่เอง
ANDROID_VIEWER_URLenvViewer to show actions live (default http://localhost:8093); without it, adb is used directlyANDROID_HOMEenvAndroid SDK location, if adb and emulator are not found automatically
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
สรุป
- ดาวน์โหลดต่อสัปดาห์i
- 657/สัปดาห์
- การเชื่อมต่อ
- รันบนเครื่อง
- รุ่นล่าสุดi
- 1.0.2
- ส่งเข้า registryi
- 3 พ.ย. 2569
- แก้โค้ดล่าสุดi
- 3 พ.ย. 2569
- ผู้ทำ
- acertijosapps
- แพ็กเกจ
npm: @acertijosapps/android-viewer- เว็บผู้ทำ
- github.com
- สถานะใน registry
- ใช้งานอยู่
ใช้กับโปรแกรมไหนได้
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
คู่มือที่เกี่ยวข้อง
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub acertijosapps ซึ่งเป็นเจ้าของ repo
- ✓ ผ่าน
ยังมีคนดูแล
มีการแก้โค้ดล่าสุด 10 วันที่ผ่านมา
- ✓ ผ่าน
มีสัญญาอนุญาต (license)
ใช้ MIT
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
พูดคุย
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
รีวิวจากผู้ใช้
ยังไม่มีรีวิว
เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi
- ดาวมากกว่า 0% ของอีก 5851 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 69% ของอีก 5851 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 5851 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
Android Viewer ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด 10 วันที่ผ่านมา และส่งรุ่นล่าสุด (1.0.2) เข้า registry 10 วันที่ผ่านมา
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ตัวอื่นในหมวดเดียวกัน
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
@acertijosapps/android-viewer
Live Android emulator viewer for the browser, plus an MCP server so an AI agent can drive it. Built for the browser pane of AI coding tools (such as Claude Code): you and the agent watch and control the same emulator, in real time, including foldable postures.
- Live video:
adb exec-out screenrecord(H.264) over WebSocket, decoded in the browser with WebCodecs. - Input: click, drag, long press and scroll become
adb shell inputcommands. - Every AVD on your machine: pick a running emulator or start a stopped one from the viewer.
- Emulator controls: Back, Home, Recents, Power, Volume, Rotate, full-resolution screenshot.
- Foldables: Closed / Half-opened / Opened / Rear display. On emulators they move the simulated hinge, like the emulator's own controls; the stream follows the active display when you fold or rotate.
- MCP server: the same actions as tools, so the agent's taps show up live in the viewer.
- Nothing to install on the device: no APK, no server push; only
adb.
Requirements
- Node.js 18 or later.
- Android SDK platform tools (
adb) and, to list and start AVDs, the emulator. Found throughANDROID_HOME,ANDROID_SDK_ROOTor the default SDK location; override withADBandEMULATOR. - A browser with WebCodecs (Chromium-based browsers, Safari 16.4+, Firefox 130+).
- Works on macOS, Linux and Windows.
Quick start
npx @acertijosapps/android-viewer
Open http://localhost:8093 and pick a device. Deep links: ?avd=Pixel_10 or ?serial=emulator-5554.
android-viewer [options] Start the viewer
android-viewer mcp [options] Start the MCP server on stdio
-p, --port Viewer port (default 8093, env PORT) --host Interface to bind (default 127.0.0.1, env HOST) --viewer-url Viewer the MCP talks to (default http://localhost:8093)
Other environment variables: MAX_DIM (longest side of the encoded video, default 1024), BIT_RATE (default 6M), SCREENSHOT_MAX (longest side of MCP screenshots, default 1024) and DEBUG=1 (logs every input command).
Use it with an AI agent (MCP)
Claude Code:
claude mcp add android-viewer -- npx -y @acertijosapps/android-viewer mcp
Any other MCP client:
{
"mcpServers": { "android-viewer": { "command": "npx", "args": ["-y", "@acertijosapps/android-viewer", "mcp"] } } }
Also listed in the official MCP Registry as io.github.acertijosapps/android-viewer.
Keep the viewer running (npx @acertijosapps/android-viewer) to watch what the agent does. Without it, the MCP drives the device through adb directly.
| Tool | What it does |
|---|---|
list_devices | AVDs on the machine (with serial and booted when running) and other adb devices |
launch_avd | Start an AVD by name |
get_state | Display size, rotation, current posture, available postures and the viewer URL |
screenshot | PNG of the active display, longest side ≤ 1024 px |
tap | input tap |
swipe | input swipe; same start and end with ≥ 500 ms is a long press |
press_key | back, home, recents, power, wakeup, volup, voldown, enter, delete, tab, escape |
type_text | input text (printable ASCII) |
rotate | Rotate 90° left or right (emulators) |
set_posture | closed, half_opened, opened, rear_display, a state id, or reset; returns the new state |
Coordinates are normalized to 0–1 over the screenshot (x = pixel_x / image_width), so they hold in any posture or orientation. serial is optional when only one device is connected.
In the Claude Code browser pane
Add the viewer to .claude/launch.json and open it with preview_start android-viewer:
{
"version": "0.0.1", "configurations": [ { "name": "android-viewer", "runtimeExecutable": "npx", "runtimeArgs": ["-y", "@acertijosapps/android-viewer"], "port": 8093, "autoPort": false } ] }
HTTP API
The MCP uses the viewer's API; you can call it too. serial goes in the query string or the body and is optional with a single device. POST requests require content-type: application/json and a local origin, so other websites can't drive your devices.
| Endpoint | ||
|---|---|---|
GET /api/devices | [{ avd, serial, booted, model }]: serial: null = stopped, booted: null = didn't answer in time | |
GET /api/state | Display size, rotation, displayId, posture and available postures | |
GET /api/screenshot?max= | PNG; real screen size in X-Screen-Width / X-Screen-Height | |
POST /api/tap | { x, y } | |
POST /api/swipe | { x1, y1, x2, y2, ms } | |
POST /api/key | { key } | |
POST /api/text | { text } | |
POST /api/posture | { posture } | |
POST /api/rotate | `{ direction: "left" \ | "right" }` |
POST /api/launch | { avd } |
When a viewer tab is watching the device, actions go through its live session: the viewer updates at once and a watchdog restarts the stream if a gesture produces no frames.
How it works
- One session per device, shared by every tab, stopped when the last one closes.
- Every second it reads
dumpsys display(size, rotation and the physical display behind logical display 0) andcmd device_state state. When the display changes, it waits for it to settle and restartsscreenrecordwith--display-idof the new panel: folding a device switches panels. screenrecordonly emits frames when the screen changes, so the viewer keeps the GOP since the last IDR for late joiners and sends a screenshot while there is no video.- Only one
screenrecordruns per device at a time: two of them exhaust the emulator's software encoder (err=-38). Restarts requested by clients are rate-limited. - Screenshots use raw
screencap(compressing PNG inside the emulator is slow under load), are scaled down by area averaging and encoded as PNG withnode:zlib, with no native dependencies.
Limitations
- Drags are sent on release (one
input swipewith the real duration), not live. - No keyboard passthrough or audio yet; use
type_textandpress_key. - Higher latency than a native client such as scrcpy.
- The software encoder slows down with several emulators recording at once; with little free RAM (emulators paged out to swap) every
adb shellcall can take seconds. - If an app requests its own posture (
DeviceStateManager.requestState), it wins overset_posturewhile it is in the foreground. Flip_Horizontal_Foldstyle AVDs with a single physical display change state when closed, but the picture stays the same.
Why not ws-scrcpy?
ws-scrcpy was tried first: streaming and input work, but the video freezes on a posture change until you reload (its scrcpy 1.19 server stays bound to the previous display), and it has no posture controls.
Contributing
Branching model (main · beta), Conventional Commits and releases are described in CONTRIBUTING.md; changes are listed in CHANGELOG.md.
Author
Made by AcertijosApps. See the rest of our libraries at acertijosapps.com/librerias.
Questions or proposals: acertijos.contacto@gmail.com or open an issue.
License
MIT