Back to home@lijiajia96

dsh-tool-adb

DeepSeek Harness (DSH) plugin exposing Android Debug Bridge (adb) operations as model-facing tools: devices, shell, install, uninstall, screenshot, push/pull, logcat

Stars
0
Language
TypeScript
Created
Aug 20, 2026
Updated
Aug 20, 2026

Introduction

@deepseek-ai/dsh-tool-adb

DeepSeek Harness plugin that exposes Android Debug Bridge (adb) operations as model-facing tools.

Features

ToolDescription
adb_devicesList connected Android devices and emulators
adb_shellExecute shell commands on a device
adb_installInstall APK files onto a device
adb_uninstallUninstall apps from a device
adb_screenshotCapture device screenshots to local workspace
adb_pullCopy files/directories from device to local
adb_pushCopy files/directories from local to device
adb_logcatCapture logcat output (with optional tag filter)

Installation

Prerequisites

  • Android SDK platform-tools (adb on PATH)
    • macOS: brew install android-platform-tools
    • Linux: sudo apt install android-sdk-platform-tools
    • Windows: download from developer.android.com

As a local plugin (development)

Add to your profile's cordis.patch.yml:

- insert:
    - id: tool-adb
      name: /absolute/path/to/packages/android/tool-adb/lib/index.js
      config:
        devices: true
        shell: true
        install: true
        uninstall: true
        screenshot: true
        fileTransfer: true
        logcat: true
        timeoutMs: 30000

Or launch with a patch file:

dsh web --patch ./adb-plugin-patch.yml

Configuration

OptionTypeDefaultDescription
devicesbooleantrueRegister adb_devices
shellbooleantrueRegister adb_shell
installbooleantrueRegister adb_install
uninstallbooleantrueRegister adb_uninstall
screenshotbooleantrueRegister adb_screenshot
fileTransferbooleantrueRegister adb_pull and adb_push
logcatbooleantrueRegister adb_logcat
timeoutMsnumber30000Per-command timeout in milliseconds

Usage Pattern

The model should always call adb_devices first to obtain a device serial, then pass that serial to other tools.

Example workflow:

  1. adb_devices → find serial ABC123
  2. adb_shell device=ABC123 command=pm list packages | grep com.example
  3. adb_screenshot device=ABC123 → saves screenshot locally
  4. adb_logcat device=ABC123 filter=MyApp:D *:S → capture filtered logs

Development

# Typecheck
pnpm --filter @deepseek-ai/dsh-tool-adb exec tsc --noEmit

# Build
pnpm --filter @deepseek-ai/dsh-tool-adb exec tsc

# Smoke test (requires adb on PATH)
node --import tsx packages/android/tool-adb/tests/smoke.test.ts

License

MIT