Devicely

io.github.sureshkumarm8由 GitHub 帳號 sureshkumarm8 發布v2.4.7更新於 Nov 7, 2026

Control real iOS & Android devices from AI agents; mirror one tap across a whole fleet.

已驗證STDIO僅桌面瀏覽器自動化開發者工具

概覽

AI 產生的概覽

Devicely 的 MCP 伺服器讓 AI 助理觀察並操控真實的 iOS 與 Android 裝置,包括點擊、輸入、啟動應用程式和重播錄製的流程。

可以做什麼
  • 檢視裝置:擷取螢幕快照、尋找元素、等待元素出現、讀取裝置日誌與操作日誌
  • 操作螢幕:點擊、長按、滑動、輸入文字、按鍵以及開啟網址
  • 管理應用程式:啟動、關閉、列出、安裝和解除安裝應用程式
  • 管理裝置:列出、連線、中斷連線、重新啟動裝置,設定密碼並執行環境檢查
  • 執行批次與流程工作:指定主控裝置、批次執行指令、儲存、列出和重播錄製、匯出測試程式碼
  • 啟動和停止 Android 模擬器與 iOS 模擬器
適用情境
適合讓助理操作真實手機或平板進行冒煙測試、跨裝置重現缺陷,或尋找測試程式碼所需的定位器。適用於已將裝置連接到 Mac 或 Linux 機器的 QA 與行動團隊。
執行需求
以本機程序方式執行,可透過 npx 或全域 npm 安裝;需要 macOS 或 Linux 上的 Node.js 20.9 以上(暫不支援 Windows)。Android 需要 PATH 中有 adb;iOS 需要安裝 Xcode 的 Mac,並在 Xcode 中簽署一次 WebDriverAgent。DEVICELY_URL 變數指向本機伺服器,未執行時會自動啟動。HTTP 傳輸與 REST API 需要 Bearer 權杖。
安裝前請注意
助理會操作真實裝置:安裝和解除安裝應用程式、重新啟動裝置、停止虛擬裝置以及設定密碼,不過破壞性工具預設關閉且可要求確認。建議限制助理只能操作指定裝置並檢視稽核日誌。託管儀表板會連線你的本機伺服器;若設定雲端 AI 供應商,指令會傳送給該供應商。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Devicely,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Devicely

Tap once. Every iPhone, iPad and Android follows.

Control a fleet of real iOS and Android devices from one screen — by hand, in plain English, or through AI agents over MCP. Save what you do as a Flow and replay it on every device, no code required. Runs locally on your machine, against your own devices.

[npm version] [npm downloads] [Platforms] [MCP] [License]

[Five iPhones, iPads and Androids switch to dark mode together from one Devicely screen]

▶ All demos · Quick start · First device · For QA teams · Flows · For AI agents · CLI · Supported platforms · Privacy


Quick start

macOS or Linux, Node.js 20.9+. Windows isn't supported yet.

bash
npm install -g devicelydevicely doctor      # checks Node, adb, Xcode and iOS tools; prints the install command for anything missingdevicely start       # starts Devicely and opens the Command Center

Can't install globally? On a locked-down work machine (no admin rights, global installs blocked, or install scripts turned off), run Devicely with npx instead. Nothing is installed globally, and every command works the same way:

bash
npx devicely@latest doctornpx devicely@latest start

The first run downloads about 185 MB; later runs start from the npm cache. Teams can pin a version (npx [email protected] start) so everyone runs the same one. If your company routes npm through a private registry (Artifactory, Nexus, Verdaccio), ask IT to allow the devicely package; npx and npm install both use that registry.

The Command Center opens at devicely-ai.vercel.app and talks to the server on your machine. With no devices connected, it opens on Add your first device, which walks you through USB or Wi-Fi setup for Android, iPhone, or a simulator/emulator.

No phone handy? Boot an Android emulator or iOS simulator with the server:

bash
devicely emulators list            # shows installed AVDs and simulatorsdevicely start --launch <name>     # starts Devicely and boots that virtual device

Requirements: Node.js 20.9+ on macOS or Linux. Android needs adb (platform-tools) on your PATH. iOS and iPadOS devices need a Mac with Xcode — see iOS setup.

Using an AI agent? devicely mcp install <client> sets up Claude Code, Cursor, VS Code and others — see For AI agents.


First device in minutes

  1. devicely doctor shows ✓ / ! / ✗ per check, grouped by platform, with the command that fixes each ✗. It exits with code 1 when nothing usable is installed (--json for scripts).
  2. devicely start prints the local server URL and opens the Command Center.
  3. Follow "Add your first device" in the browser. Its checklist updates live as you plug in, tap Allow or Trust, and the device comes online.
You haveExpectWhat you need
Android phone or tabletabout 2 minutesadb, Developer options and USB debugging on. Wi-Fi pairing needs Android 11+. Android guide
iPhone or iPadabout 15 minutes the first timeA Mac with Xcode, an Apple ID (a free one works), WebDriverAgent signed once in Xcode. iOS guide
No devicea few minutes once Xcode or Android Studio is installedAn iOS simulator (Xcode + WebDriverAgent, no signing) or an Android emulator (an AVD from Android Studio)

Troubleshooting

ProblemFix
Android shows waiting for permission (unauthorized)Unlock the phone and tap Allow on the Allow USB debugging? prompt (tick Always allow). No prompt? Revoke USB debugging authorizations in Developer options and replug. More
No devices foundUse a data cable, not a charge-only one, and check adb devices / idevice_id -l. Run devicely doctor for missing tools. On Linux, no permissions means a udev rule is missing: fix
Browser can't reach the local serverMake sure devicely start is still running and open the exact link it prints. If the page says Devicely is running, but this page can't talk to it, your browser is blocking an HTTPS site from calling http://127.0.0.1: in Chrome or Edge allow Local network access for devicely-ai.vercel.app in site settings, in Brave lower Shields for the site, and on Safari use Chrome, Edge or Firefox. devicely start also prints a hint after 30 seconds when no browser has connected.
npm install -g fails with EACCES or permission denied, or is blocked at workUse npx devicely@latest start (and npx devicely@latest doctor); it needs no global install or admin rights. Behind a private registry, ask IT to allow the devicely package. Don't use sudo npm install -g.
Port already in usedevicely start -p 3002. On a non-default port, devicely start prints the full link to open, for example https://devicely-ai.vercel.app/?api=http://127.0.0.1:3002.
iPhone: WebDriverAgent signing failedDevicely names the reason (no signing team, provisioning, Developer Mode off, untrusted developer, device locked, timeout) and links the fix in the iOS guide.
Wi-Fi pairing failsGuest, hotel and corporate Wi-Fi usually block device-to-device traffic and mDNS, and VPNs reroute it. Use a home network or hotspot, or pair over USB first. More

Still stuck? devicely doctor --bundle writes a redacted support bundle to your disk (nothing is uploaded) that you can attach to an issue. See also Troubleshooting.


Why Devicely

Testing one flow on ten devices usually means doing it ten times by hand, renting cloud devices by the minute, or maintaining per-device scripts. Devicely takes a different approach: you drive one device, and the rest of your fleet does the same thing at the same moment.

DevicelyCloud device labsScript frameworks (Appium, Maestro, Detox)Screen mirroring (scrcpy, Vysor)
Live 1-to-many gestures (one tap → every device)✅❌❌❌
iOS and Android mixed in one live session✅❌❌❌
Uses your own devices, on your own machine✅❌✅✅
No code needed (UI, voice, plain English)✅Partial❌✅ (one device)
Record once as a Flow, replay on every device✅Partial❌ (you write code)❌
Built-in MCP server for AI agents✅VariesVaries❌
Exports Flows and locators to test code✅—✅❌

Devicely doesn't replace your test framework. It shortens the slow parts around it: exploring, reproducing bugs across devices, smoke-testing builds, and finding the locators you'll put in your tests.


For QA teams

Commander Mode — one-to-many control

  • Live mirror of the commander device, with every follower shown alongside it.
  • Every gesture is broadcast: tap, long-press, swipe (speed preserved) and typed text go to all followers at once.
  • Element-aware, not pixel-blind. Followers find the element the commander touched — by accessibility ID, label, type and position in the UI tree — so a tap on an iPhone hits the same button on an iPad or a Pixel, even when the layouts differ.
  • Swap the commander from a dropdown on the mirror, without restarting the session.
  • Include or exclude individual followers with one click.
  • Fast iOS mirroring over WebDriverAgent MJPEG: about 170 KB per frame, compared with about 5.8 MB for a screenshot poll. Each iOS device gets its own WDA port, so several iPhones don't collide.
  • Real-device feel: a fingertip cursor and a ripple where you touch, on the commander only.
  • Swipe controls in the action bar go to every targeted device at once.
  • Immersive full screen, with the command bar overlaid at the bottom so you never leave the mirror.

Flows — no-code automation

Do it once by hand; Devicely saves it as a Flow you can replay on one device or the whole fleet, and export as test code when you're ready.

  • Steps are recorded as locators (accessibilityId, resourceId, text, type, bounds), not raw coordinates.
  • Auto-wait: on replay, each step waits up to 10 s for its element to appear, so animations and slow networks don't break the run.
  • Coordinate fallback: if an element can't be found, Devicely taps its scaled position instead and marks the step fallback, so you can see what drifted.
  • Replay on one device or the whole fleet in parallel.
  • Export a Flow to Maestro, Appium (Python or Java) or WebdriverIO, ready for CI with no AI involved.
  • Manage Flows in a list or grid view with search and tag filters. A details drawer shows each step's locator, timing and result; the editor lets you add, edit, reorder and delete steps.

Plain English and voice

Type or say "launch settings, scroll down, open camera". Devicely turns it into the right action for each platform — for example com.apple.Preferences on iOS and com.android.settings on Android — and runs it on every selected device at once. Voice input waits for a 2-second pause before it runs, so you can speak naturally.

  • Grounded in the real screen. Before planning, the AI reads what's on the device, so it taps buttons that are actually there instead of guessing.
  • Review before it runs. The plan appears as a card you can check, edit or cancel. Turn review off from the command palette (⌘K) once you trust it.
  • Safe by default. An AI plan stops at the first failed step, and waits for each element to appear rather than relying on fixed delays.

Choose your AI provider in Settings → AI Config, and use Test connection to check the key and model with a real request:

ProviderNotes
OllamaRuns locally. No API key, and no prompt leaves your machine.
Google Gemini, GroqOffer free tiers — the easiest way to start.
OpenAI, Anthropic ClaudeBring your own API key.
GitHub CopilotUses your Copilot subscription.

Each provider lists its current models in the settings screen. Devicely uses only the provider you choose; it never falls back to another one behind your back.

Quick actions, inspector and code export

  • Command palette (⌘K): run any action, pick target devices, switch the commander or jump anywhere, by typing a few letters.
  • Quick Actions panel: send text, tap an element by name or x,y, and launch apps with autocomplete. Arrow keys cycle through what you typed before.
  • UI Inspector: hover over any element to see its accessibility ID, resource ID, XPath and bounds.
  • One-click export of a selector as a Devicely command, WebdriverIO, Appium Python or Appium Java code.

Devices that stay connected

  • Wireless pairing (Android 11+): scan a QR code from the Command Center or enter the 6-digit pairing code — no IP addresses to type. If pairing fails, Devicely checks whether your network blocks discovery (mDNS) and tells you. From a terminal: devicely wifi pair <ip:port> <code>, then devicely wifi connect <ip:port>.
  • Clear device states: an Android device waiting for you to tap Allow shows as waiting for permission instead of disappearing.
  • Health monitoring spots an unplugged cable, a reboot or a driver failure within seconds and cleans up the session.
  • Auto-reconnect brings a device back as soon as it reappears on USB or Wi-Fi. It's on by default; set DEVICELY_AUTO_RECONNECT=0 to turn it off.
  • Virtual devices: start and stop Android emulators and iOS simulators from the UI or the CLI, next to your physical devices.

For AI agents (MCP server)

Devicely includes a Model Context Protocol server, so coding agents can see and control real devices.

Your agent is the brain; Devicely is the hands. Over MCP, Devicely doesn't call any AI of its own: your agent reads the screen, decides, acts and checks the result. No second model, no extra API key, and nothing to configure in Devicely's AI settings.

bash
devicely mcp install claude-code      # prints the `claude mcp add` command to rundevicely mcp install cursor           # also: vscode, windsurf, gemini, claude-desktopdevicely mcp doctor                   # checks the backend, token and transports

Or install the Claude Code plugin, from inside Claude Code:

/plugin marketplace add sureshkumarm8/Devicely/plugin install devicely@devicely

Or add it to Claude Code by hand:

bash
claude mcp add devicely -- npx -y devicely mcp

Two transports are available: stdio (devicely mcp, which starts the backend if it isn't running) and Streamable HTTP, protected by a Bearer token. Run devicely mcp doctor to see the HTTP endpoint.

30 tools

GroupTools
Observedevicely_snapshot, devicely_find_elements, devicely_wait_for, devicely_get_device_logs, devicely_get_action_log
Actdevicely_tap, devicely_long_press, devicely_swipe, devicely_type_text, devicely_press_key, devicely_open_url
Appsdevicely_launch_app, devicely_close_app, devicely_list_apps, devicely_install_app, devicely_uninstall_app
Devicesdevicely_list_devices, devicely_connect_device, devicely_disconnect_device, devicely_restart_device, devicely_set_passcode, devicely_doctor
Fleet and flowsdevicely_commander, devicely_run_commands, devicely_export_test
Virtual devicesdevicely_launch_virtual_device, devicely_stop_virtual_device
Flowsdevicely_save_recording, devicely_list_recordings, devicely_replay_recording

Prompts for common jobs: smoke_test, reproduce_bug and write_test. Resources with live context: devicely://devices, devicely://apps, devicely://docs/command-language and devicely://docs/agent-guide.

Safety controls

Set these in Settings → AI Agents (stored in ~/.devicely/mcp.json):

  • Destructive tools are off by default: install_app, uninstall_app, restart_device and stop_virtual_device. When enabled, they can also require confirmation. set_passcode is allowed by default; add it to disabledTools in ~/.devicely/mcp.json to block it.
  • Limit agents to specific devices (allowedDevices), turn off individual tools, and redact sensitive values from output.
  • Every agent action is logged to an audit trail.

REST API

The same capabilities are available over HTTP at /api/v1, using the same Bearer token — useful for CI pipelines and custom harnesses. View or rotate the token with devicely mcp token [--rotate]; it's saved in ~/.devicely/mcp-token.

Example

"Take a snapshot of the Pixel, check that the Login button is visible, tap it, and confirm the welcome screen appears."

The agent calls devicely_snapshot and devicely_find_elements, taps with devicely_tap, and checks the result with devicely_wait_for.


CLI reference

CommandWhat it does
devicely startStart the server (binds to loopback 127.0.0.1) and open Command Center
devicely start --host <addr>Bind to a specific interface (e.g. --host 0.0.0.0 for LAN access)
devicely start -p <port>Use another port (for example when 3001 is taken). Prints the full Command Center link with ?api= for that port
devicely start --no-browserDon't open a browser (CI, headless machines); open the printed link yourself
devicely start --usb-only / --wifi-onlyOnly detect devices on USB, or only on Wi-Fi
devicely start --launch <name>Boot a virtual device when the server starts
devicely start --debugTurn on debug logging
devicely start --https --ssl-key <key.pem> --ssl-cert <cert.pem>Serve over HTTPS/WSS (or set DEVICELY_HTTPS=true, DEVICELY_SSL_KEY, DEVICELY_SSL_CERT). Refuses to start if the certificate can't be loaded. Use a locally trusted cert (e.g. mkcert localhost 127.0.0.1); browsers silently block self-signed ones
devicely list [--verbose]List connected iOS and Android devices
devicely exec "<command>" [-d <name>]Run a command on all devices, or on one with -d
devicely doctorCheck Node, adb, Xcode and iOS tools, with a fix command for each failure. Exits 1 when nothing usable is installed
devicely doctor --jsonThe same checks as JSON, for scripts and CI
devicely doctor --bundleWrite a redacted support bundle to disk (nothing is uploaded)
devicely wifi pair <ip:port> <code>Pair an Android 11+ device using the code from Wireless debugging › Pair device with pairing code
devicely wifi connect <ip:port>Connect to a paired Android device over Wi-Fi (the address shown under Wireless debugging)
devicely telemetry status|enable|disableShow or change the opt-in setup diagnostics setting (details)
devicely emulators listList Android emulators and iOS simulators (alias: devicely virtual)
devicely emulators start <name> [--headless]Boot a virtual device
devicely emulators stop <name>Shut down a virtual device
devicely mcp [--url <url>] [--no-autostart]Run the MCP stdio server
devicely mcp doctorCheck MCP readiness
devicely mcp token [--rotate]Show or rotate the agent token
devicely mcp install <client>Configure claude-code, claude-desktop, cursor, vscode, windsurf or gemini

Canonical Command Set (DSL)

Devicely executes a deterministic, multi-line or semicolon-separated Command DSL across iOS and Android:

VerbSyntaxPlatformsDescription
launchlaunch <app|package>iOS, AndroidLaunch an application by preset name or bundle/package ID
killkill <app|package>iOS, AndroidForce-stop/terminate an application
clickclick <text|x,y>iOS, AndroidTap an element by text, accessibility ID, or coordinate pair
longpresslongpress <text|x,y>iOS, AndroidLong-press an element or coordinate
swipeswipe <up|down|left|right>iOS, AndroidPhysical finger gesture (Note: scroll down maps to swipe up)
typetype <text>iOS, AndroidType text into the currently focused input field
enterenterAndroidPress Enter / Submit key (on iOS, type presses Return for you)
homehomeiOS, AndroidNavigate to home screen
backbackiOS, AndroidNavigate back
screenshotscreenshotiOS, AndroidCapture device screen
lock / unlocklock, unlockiOS, AndroidLock or wake/unlock device screen
urlurl <https://...>iOS, AndroidOpen a URL in default browser
WAITWAIT <ms>iOS, AndroidPause execution for specified milliseconds
notificationsnotificationsiOS, AndroidOpen Notification Center / the notification shade
quicksettingsquicksettingsiOS, AndroidOpen Control Center / quick settings
recentrecentiOS, AndroidOpen the app switcher
rotaterotateiOSRotate the screen
volumevolume <up|down>AndroidChange the volume
getLocatorsgetLocatorsAndroidDump current screen UI accessibility tree
install / clearinstall <apk>, clear <package>AndroidInstall an APK, or clear an app's data
uninstalluninstall <app|package>iOS, AndroidRemove an application
restart / shutdownrestart, shutdowniOS, AndroidReboot or power off the device

Example commands for exec:

bash
devicely exec "launch settings"devicely exec "launch settings; swipe up; launch camera"devicely exec "url https://github.com" -d "Pixel 8"

Supported platforms

Supported
Host machinemacOS and Linux, Node.js 20.9+. Windows isn't supported yet.
AndroidPhones, tablets and emulators via ADB and UIAutomator2. Wireless debugging needs Android 11+.
iOS / iPadOSiPhones, iPads and simulators on iOS/iPadOS 17 or later, via WebDriverAgent. Needs a Mac with Xcode. Physical devices need Developer Mode turned on.

iOS setup

iPhones, iPads and simulators are controlled through WebDriverAgent (WDA), Appium's open-source test runner. Get it with one click in Add your first device, or clone it yourself into the Devicely data folder:

bash
git clone https://github.com/appium/WebDriverAgent ~/.devicely/WebDriverAgent

($DEVICELY_DATA_DIR/WebDriverAgent if you set DEVICELY_DATA_DIR; WDA_PATH points Devicely at a checkout anywhere else.) Simulators need nothing more.

A physical device also needs WDA signed once in Xcode with your Apple ID. A free Apple ID works, but its signature expires after 7 days. The in-app guide walks you through trusting the computer, turning on Developer Mode and signing, and if a connect fails it names the reason (no signing team, provisioning, Developer Mode off, untrusted developer, device locked, timeout) with a link to the fix. Full walkthrough: iOS device guide. Android devices don't need signing.


Privacy and security

  • Runs locally. The Devicely server runs on your machine and talks to your devices directly. Your apps, screenshots and test data aren't uploaded anywhere.
  • Loopback binding by default. The server binds to 127.0.0.1 by default, protecting your host machine from unintended local network exposure.
  • Origin & Host guard. Requests to the REST API and WebSocket endpoints are guarded against untrusted Host and Origin headers, protecting against DNS rebinding and cross-origin attacks.
  • Local AI is an option. Use Ollama to keep prompts and screen data on your machine. With a cloud AI provider, your commands go to that provider under your own API key.
  • API keys stay on your machine. AI keys you add in Settings are stored in ~/.devicely/.env (or $DEVICELY_DATA_DIR/.env), readable only by you (0600). They are sent only to the AI provider you chose.
  • Agents need a token. MCP over HTTP and the REST API require a 32-byte Bearer token.
  • Analytics: the local server sends no telemetry. The hosted dashboard at devicely-ai.vercel.app uses anonymous Vercel page-view analytics and connects to your local server; device data isn't sent to Vercel.
  • Setup diagnostics are opt-in. The Command Center asks once whether to share anonymous setup events (for example "doctor check failed: adb missing" or "first device action succeeded"). They are fixed codes only: no serials, IP addresses, device or app names, or file paths. Nothing is sent unless you say yes, and DO_NOT_TRACK=1 or DEVICELY_TELEMETRY_DISABLED=1 turns it off. Check or change it with devicely telemetry status|enable|disable. Every event and field is listed in TELEMETRY.md.

Full details: what Devicely can and cannot see. Found a vulnerability? Email [email protected] instead of opening a public issue.


What's new in 2.4.0

  • Flows: Recordings are now Flows — record once, replay on every device, export to Maestro, Appium or WebdriverIO.
  • Grounded AI commands: the AI reads the screen before planning, shows the plan for review, stops at the first failed step and waits for elements instead of fixed delays.
  • A redesigned Command Center: compact command bar, ⌘K command palette, fleet-wide swipe controls, immersive full screen and real-device touch feedback.
  • MCP, simplified: your agent plans every step itself; Devicely no longer calls its own AI over MCP.
  • AI providers: latest Gemini and Groq models, a real Test connection, no silent fallback. Cohere and Mistral were removed.
  • iOS 26 fixes: lock and unlock work again, plus iOS tunnel support for newer versions.
  • Security: all known dependency vulnerabilities fixed. Node.js 20.9 or later is now required.

License

Free to use. Closed source. Devicely is free to install and use, for yourself or inside your company. The software is proprietary: you may not copy, modify, reverse engineer or redistribute it, offer it as a hosted service, or use it to train AI models. See the Devicely Free Use License.

If Devicely saves you time, star it on GitHub.

來源:README.md,提交 c149539

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.4.7最新Nov 7, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。