SamXiaBing/dsh-adb

ADB device & bench operations for DSH: device discovery, structured logcat (background streaming), apk install, file pull/push, and dumpsys performance snapshots.

Bundle verified MIT TypeScript Unknown
Bundle verified

Listed

2

Tools

Bundle verified

VersionUnknown
LanguageTypeScript
LicenseMIT
View on GitHub

What it does

ADB device & bench operations for DSH: device discovery, structured logcat (background streaming), apk install, file pull/push, and dumpsys performance snapshots.

Best for

  • Android or automotive-bench teams that need device discovery, APK deployment, and file transfer from DSH.
  • Debugging workflows that need filtered or background-streamed logcat, crash reports, and structured device health reports.
  • Performance investigations that compare memory, graphics, jank, and battery snapshots against saved baselines.

Not ideal for

  • Projects that do not operate Android devices or ADB-accessible bench rigs.
  • Workflows that need vendor-specific protocols or non-ADB device control.
  • Environments without an available ADB executable or an accessible target device.

README

dsh-adb

ADB device & bench operations for DeepSeek Harness

Give DSH agents direct control over Android devices and automotive bench rigs: device discovery, structured logcat, APK install, file pull/push, and performance snapshots. Built for on-vehicle and bench debugging workflows — generic within the domain (no Unity, no vendor protocol lock-in).

English 简体中文

Install

dsh plugin --profile web add dsh-adb

Or install directly from GitHub: dsh plugin --profile web add github:SamXiaBing/dsh-adb

Web device panel (v1.1.0)

A “设备” tab in the conversation view ring (next to chat / trajectory / automation): device list with status, package autocomplete (fuzzy search), live streaming logcat window (level/keyword/package/pid filters, pause/clear/auto-scroll), device info card, process list, performance snapshot, and a one-click health report (设备体检: device identity, top-RSS processes, crash buffer, W/E/F logcat window, storage — persisted under reportDir, sendable to the conversation for diagnosis). The report turns raw evidence into signal before it reaches the model: crash-buffer entries are classified into real crashes (with stack chains) vs. MediaTek boot markers, repetitive logcat is aggregated by tag (“AOSP-MdnsDiscoveryManag ×3264” instead of 3k identical lines), and a compact health summary (verdict + issues) is attached — so the agent reasons from conclusions, not 17k raw lines. Plus harness synergy: send any logcat/snapshot/report to the conversation (the agent analyzes it), a live strip of the agent’s adb operations, and a registered crash-analysis skill (dsh-adb-crash-analysis) for automation pipelines. Data flows over the package RPC channel; install into a web profile and restart the GUI (see scripts/restart-web.ps1 for a one-click restart).

Ecosystem

Topics: dsh-plugin dsh adb android automotive bench

Tools

Tool Description
adb_devices List devices (serial/state/product/model); run first to discover serials
adb_connect / adb_disconnect Wireless bench connection (host:port, default 5555)
adb_logcat Filtered read (tag/level/keyword/time-window/tail); run_in_background streams continuously as a job — read deltas with job_output, stop with job_kill
adb_install Install APKs (-r/-d/-g options); validates the local file exists
adb_file pull / push / ls / rm, per-device isolation
adb_perf_snapshot Structured dumpsys meminfo / gfxinfo / battery snapshots (PSS, frame percentiles, jank rate, battery)
adb_perf_baseline Perf regression: save a snapshot as a baseline (label/tags), compare current state and get a numeric diff (PSS, janky %, percentiles), list/delete baselines (stored locally under baselineDir)
adb_crash_report One-call crash scene: parsed logcat crash buffer + dropbox excerpt + process state + memory summary
adb_device_report One-click health report: device identity + top-RSS processes + crash buffer (real crashes w/ stacks vs. boot markers) + W/E/F logcat aggregated by tag + storage + health verdict; each section degrades independently; persisted under reportDir

Errors are structured AdbError with stable codes: ADB_NOT_FOUND, ADB_UNAVAILABLE, DEVICE_NOT_FOUND, NO_DEVICES, CONNECT_FAILED, INSTALL_FAILED, ADB_EXIT_<code>, etc.

Configuration

Set the config block in cordis.patch.yml (or a profile patch):

- id: dsh-adb
  name: dsh-adb
  config:
    adbPath: C:\Users\me\AppData\Local\Android\Sdk\platform-tools\adb.exe
    defaultSerial: emulator-5554
    timeoutMs: 30000
Key Description Default
adbPath Absolute path to the adb executable Auto-detect PATH / ANDROID_HOME / ANDROID_SDK_ROOT/platform-tools
defaultSerial Default target device serial none
timeoutMs Per-command timeout 30000
baselineDir Directory for adb_perf_baseline storage ~/.dsh/storages/dsh-adb
reportDir Directory for adb_device_report storage <baselineDir>/reports

Development

npm install            # add --include=dev when NODE_ENV=production
npm run build          # tsc → lib/
npm test               # parser/classification unit tests (node --test)
npm pack --dry-run     # verify publish contents (lib/ + cordis.patch.yml)

Testing & Verification

  • Principle: ship only what is tested — every committed feature has unit and/or end-to-end coverage.
  • Verified on: Android 13 automotive bench + Android 13 phone.
  • Per-version changes and verification: CHANGELOG.md; test methodology and coverage: docs/TESTING.md (Chinese).

Project Docs (bilingual; for AI agents & contributors)

License

MIT

Frequently Asked QuestionsFAQ

Use the verified command dsh plugin --profile default add github:SamXiaBing/dsh-adb in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.