Skip to content

uusense/devicebase-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Devicebase CLI

A cross-platform Go CLI tool that wraps the Devicebase HTTP API for remote device control. Supports tap, swipe, input text, launch apps, screenshots, and more.

Requirements

  • Go 1.24+
  • Devicebase API server running and accessible
  • API credentials (API KEY)

Environment Variables

Set these before running the CLI:

Variable Description
DEVICEBASE_BASE_URL Base URL of the Devicebase API (e.g. https://api.devicebase.cn)
DEVICEBASE_API_KEY API KEY for authentication

Quick Start

# Build locally
go build -o devicebase ./cmd/devicebase

# Run
DEVICEBASE_BASE_URL=https://api.devicebase.cn \
DEVICEBASE_API_KEY=your_api_key \
  ./devicebase -s <serial> tap 100,200

Installation

Pre-built Binaries

Download from the build/ directory after running the build script.

Build from Source

# Clone and build
go build -o devicebase ./cmd/devicebase

# Cross-platform build (macOS/Linux/Windows, amd64/arm64)
./build.sh

The cross-platform build produces static binaries with no CGO dependencies.

Usage

All commands require the -s <serial> flag to specify the target device.

Touch Interactions

# Tap at coordinates
devicebase -s <serial> tap 100,200

# Double tap
devicebase -s <serial> double-tap 100,200

# Long press
devicebase -s <serial> long-press 100,200

# Swipe from (x1,y1) to (x2,y2)
devicebase -s <serial> swipe 100,200,300,400

Navigation

# Press back button
devicebase -s <serial> back

# Press home button
devicebase -s <serial> home

App Management

# Launch an app by name
devicebase -s <serial> launch-app com.example.app

# Get the current foreground app
devicebase -s <serial> current-app

Text Input

# Input text
devicebase -s <serial> input "Hello World"

# Clear text field
devicebase -s <serial> clear-text

Device Information

# Get device info
devicebase -s <serial> device-info

# Dump UI hierarchy (Android accessibility tree)
devicebase -s <serial> dump-hierarchy

# Take a screenshot
devicebase -s <serial> screenshot

# Save screenshot to a file
devicebase -s <serial> screenshot -o screenshot.jpg

Global Flags

Flag Short Description
--serial -s Device serial number (required)
--help -h Show help
--version Show version

Architecture

cmd/devicebase/main.go     # Entry point
internal/
  api/
    client.go              # HTTP client: auth, request/response handling
    device.go              # All API method wrappers
  commands/
    root.go                # Root cobra command, --serial flag
    register.go            # Registers all subcommands
    helper.go              # mustCreateClient(), printResult()
    tap.go                 # tap command, parsePoint()
    swipe.go               # swipe command, parseBounds()
    screenshot.go          # screenshot with --output flag
    ...                    # One file per subcommand

Development

# Run tests
go test ./...

# Run tests with coverage
go test -cover ./...

# Run tests with race detection
go test -race ./...

# Format code
go fmt ./...

# Lint
go vet ./...

License

MIT

About

A cross-platform Go CLI tool that wraps the Devicebase HTTP API for remote device control. Supports tap, swipe, input text, launch apps, screenshots, and more.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors