# appium-remote-debugger

> Appium proxy for Remote Debugger protocol

Latest version **17.4.2** (published 2026-09-02) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install appium-remote-debugger
pnpm add appium-remote-debugger
yarn add appium-remote-debugger
bun add appium-remote-debugger
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 17.4.2 |
| Published | 2026-09-02 |
| First published | 2015-08-21 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | ^20.19.0 \|\| ^22.12.0 \|\| >=24.0.0 |
| Dependencies | 6 |
| Unpacked size | 1.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 45 |
| Author | Appium Contributors |
| Maintainers | jlipps, nick.mokhnach, kazucocoa, imurchie, dangraham |
| Keywords | appium |

## Links

- npm: https://www.npmjs.com/package/appium-remote-debugger
- Repository: https://github.com/appium/appium-remote-debugger
- Homepage: https://github.com/appium/appium-remote-debugger#readme
- Issues: https://github.com/appium/appium-remote-debugger/issues
- npm.io page: https://npm.io/package/appium-remote-debugger

## Dependencies (6)

- [asyncbox](https://npm.io/package/asyncbox.md) ^6.4.3
- [async-lock](https://npm.io/package/async-lock.md) ^1.4.1
- [teen_process](https://npm.io/package/teen_process.md) ^4.2.0
- [@appium/support](https://npm.io/package/@appium/support.md) ^7.2.6
- [appium-ios-device](https://npm.io/package/appium-ios-device.md) ^3.1.22
- [@appium/base-driver](https://npm.io/package/@appium/base-driver.md) ^10.8.0

## Recent versions

- 17.4.2 (latest) — 2026-09-02
- 10.0.0-beta.2 (beta) — 2023-08-15
- 17.4.1 — 2026-08-31
- 17.4.0 — 2026-08-29
- 17.3.0 — 2026-08-29
- 17.2.1 — 2026-08-29
- 17.2.0 — 2026-08-28
- 17.1.0 — 2026-08-15
- 17.0.7 — 2026-08-13
- 17.0.6 — 2026-08-12
- 17.0.5 — 2026-08-12
- 17.0.4 — 2026-08-11
- 17.0.3 — 2026-08-11
- 17.0.2 — 2026-08-11
- 17.0.1 — 2026-08-10
- … 311 more at https://npm.io/package/appium-remote-debugger/versions

## README

# appium-remote-debugger

[![Release](https://github.com/appium/appium-remote-debugger/actions/workflows/publish.js.yml/badge.svg?branch=master)](https://github.com/appium/appium-remote-debugger/actions/workflows/publish.js.yml)

A Node.js frontend for the Remote Debugger protocol used by Appium to connect to iOS webviews and Safari. Written using ES6+.

## Safari's version of the WebKit API

Safari implements a wonky version of the WebKit API. It is not documented. The
JSON version of the protocol is documented in the WebKit source code, in
[Source/JavaScriptCore/inspector/protocol/](https://github.com/WebKit/webkit/tree/master/Source/JavaScriptCore/inspector/protocol).

There is good documentation for the closely related API from Chrome DevTools, to
be [found here](https://chromedevtools.github.io/devtools-protocol/).

## API

This is an event emitter, which emits a `RemoteDebugger.EVENT_PAGE_CHANGE` event when there has been a change to the page. This should be caught and handled as the calling code wishes. It also emits a `RemoteDebugger.EVENT_DISCONNECT` event when the server disconnects the last application connected.

The steps to using the `RemoteDebugger` involve instantiating an object, then running `connect` and `selectApp`. After this the instance will be listening for events from the server (i.e., the webview or browser).

## Selenium "atoms"

The remote debugger uses the standard [Selenium JavaScript atoms](https://github.com/SeleniumHQ/selenium/tree/trunk/javascript/atoms)
to interact with web pages. The source these atoms are compiled from is vendored under `atoms/src/`
and maintained directly in this repository (no live Selenium clone or Bazel dependency); the
compiled output lives in `atoms/`. To modify or rebuild them, run `npm run build:atoms` locally.
Full details are documented in **[docs/update-atoms.md](./docs/update-atoms.md)**.

## Test

```
npm test
npm run e2e-test
```

## Optional: CodeGraph for local code navigation

If you want a local semantic index for this repository, you can install [CodeGraph](https://github.com/colbymchenry/codegraph) locally and initialize it in the repo:

```bash
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/v1.5.0/install.sh | sh
cd "<project folder>"
codegraph install
codegraph init
```

CodeGraph builds a local knowledge graph of symbols and call paths so AI coding agents, like Cursor or Claude, can answer questions and navigate the codebase faster with fewer file reads and reduced token consumption.

---
_Source: https://npm.io/package/appium-remote-debugger · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
