Skip to main content

Quick Start

Welcome

Welcome to Tango ADB's developer documentation! 🎉

Tango is a TypeScript re-implementation of ADB (Android Debug Bridge) client for Web browsers and Node.js.

If you are looking for our Tango Web application where you can control your Android devices, please click here.

Features

  • Zero dependencies: Don't use any third-party libraries to provide a lightweight and secure solution.
  • Cross platform: Runs on all recent versions of Node.js and Web browsers (supported connection methods vary).
  • Independent: Doesn't require Google ADB server to connect to devices (but can also work with it).
  • Extensible: Supports custom connection methods and ADB commands.
note

The public API is not stable. Check GitHub Releases page for changes.

If you have any questions, feel free to open a discussion on GitHub ❤️

Installation

Tango is split into multiple packages to support different runtime environments. First, install the two core packages:

  1. @yume-chan/adb: The platform-independent ADB client implementation
  2. @yume-chan/stream-extra: Type definitions and utilities for Web Streams API.
npm i @yume-chan/adb @yume-chan/stream-extra

First Step

Tango provides an Adb class, which contains high-level APIs for ADB commands, and also allows custom commands to be added.

The end goal is to create an Adb instance, but first, an AdbTransport object is required.

The AdbTransport interface defines how to communicate with ADB Daemons (basically, your devices). ADB Daemon is the program on Android devices (when USB Debugging or Wireless Debugging options are enabled) that handles incoming ADB connections and commands.

Tango provides two built-in transports: Daemon Transport and Server Transport, and also accepts custom transport implementations.

Answer several questions to determine which transport you need:

1. Where does you app run?