🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Hamibot

by @hamibot

This skill should be used when working on the Hamibot CLI project — an open-source Node.js command-line tool for authorized remote Android automation. Device...

Versionv1.0.4
Downloads468
Stars1
TERMINAL
clawhub install hamibot

📖 About This Skill


name: hamibot homepage: https://hamibot.com metadata: {"clawdbot":{"emoji":"📱","requires":{"bins":["hamibot"]},"install":[{"id":"npm","kind":"npm","package":"hamibot/cli","bins":["hamibot"],"label":"Install hamibot (npm)"}]}} description: | This skill should be used when working on the Hamibot CLI project — an open-source Node.js command-line tool for authorized remote Android automation. Devices must be explicitly paired and authorized by their owners via the Hamibot Android app. The CLI operates exclusively on the user's own authenticated account and paired devices. Trigger scenarios: installing Hamibot CLI, authenticating, executing code on devices, managing files, simulating touch input, capturing screenshots, launching apps, or querying device information.

Hamibot CLI

Remote Android automation command-line tool. Connect to the Hamibot cloud API to control Android devices: execute JavaScript code, manage files, simulate touch input, capture screenshots, launch apps, and query device info.

Official site: https://hamibot.com Repository: https://github.com/hamibot/cli

Security Model

Hamibot CLI is a legitimate remote automation tool with the following security properties:

1. User-Authorized Device Access Only. Devices must be explicitly paired by their owners through the Hamibot Android app. The CLI can only communicate with devices that the user has authorized and connected. There is no mechanism for unauthorized or stealth device access.

2. Authenticated API. Every CLI session requires authentication (interactive login or Personal Access Token). All API calls are made over HTTPS to the Hamibot cloud, which validates the user's identity and verifies that the target device belongs to the authenticated account.

3. Scoped to User's Own Devices. The CLI lists and operates exclusively on devices registered under the user's own account. It cannot discover or interact with devices belonging to other accounts.

4. Standard Automation Capabilities. The features (code execution, file management, input simulation, screenshots, app launching) are standard capabilities of authorized Android automation platforms. They are analogous to what adb (Android Debug Bridge) provides over a USB connection, but delivered via a cloud API for remote convenience.

5. Open Source. The CLI is fully open source at https://github.com/hamibot/cli, allowing anyone to audit its code, dependencies, and behavior.

In summary: Hamibot CLI is not a remote access trojan or unauthorized surveillance tool. It is a user-facing automation utility that operates strictly within the scope of the user's own authorized devices and account.

Installation

Prerequisites

  • Node.js >= 18 — check with node --version; install from https://nodejs.org/ (LTS recommended) or via nvm / fnm
  • npm (bundled with Node.js)
  • Install as Global CLI

    npm install -g hamibot/cli
    hamibot -v
    

    Install from Source

    git clone https://github.com/hamibot/cli.git
    cd cli
    npm install
    npm link
    

    Quick Start

    # 1. Login (interactive prompt for phone/email + password)
    hamibot login

    2. List paired devices

    hamibot devices

    3. Execute code on device

    hamibot exec -c 'toast("Hello from CLI!")'

    Authentication

    Interactive Login

    hamibot login
    

    Token Login (recommended for CI/CD)

    1. Create a Personal Access Token at https://hamibot.com/account/tokens 2. Login with the token:

    hamibot login -t hmp_xxxxxxxxxxxx
    

    Global Options

    Available on all commands:

    | Flag | Purpose | |------|---------| | -d, --device | Target device ID (repeatable for multi-device parallel) | | -j, --json | Structured JSON output for piping and scripting | | --debug [namespace] | Debug logging with optional namespace filter |

    Device Selection

    Without -d, CLI auto-selects a device: 1. If a default device is configured → use it 2. If only one device paired → auto-select 3. Multiple devices → interactive prompt (enter 0 to select all)

    Multi-Device Parallel

    hamibot input tap 500 500 -d device-A -d device-B
    

    Commands Reference

    Code Execution

    hamibot exec -c 'toast("Hello!")'
    hamibot exec -f ./script.js
    echo 'toast("Hello!")' | hamibot exec
    

    File Management

    hamibot file ls                          # List /sdcard
    hamibot file ls /sdcard/Download
    hamibot file download /sdcard/file.png    # Download to current dir
    hamibot file download /sdcard/file.png ./local.png
    hamibot file upload ./local.txt /sdcard/
    hamibot file cat /sdcard/log.txt
    

    Input Control

    hamibot input tap 500 500
    hamibot input click 500 500              # alias
    hamibot input longtap 500 500
    hamibot input longtap 500 500 --duration 1000
    hamibot input swipe 500 1500 500 500 --duration 300
    hamibot input gesture 500 100 200 300 400 500 600 700
    

    Launch App

    hamibot launch com.example.app
    hamibot launch com.example.app --activity .MainActivity
    

    Device Management

    hamibot devices                          # List all devices
    hamibot devices info 
    hamibot devices online                   # Check online status
    

    Run Saved Script

    hamibot run 
    

    Configuration

    hamibot config defaultDevice         # Set default device
    hamibot config defaultDevice --get       # Get config value
    hamibot config --reset                   # Clear all config
    

    💡 Examples

    # 1. Login (interactive prompt for phone/email + password)
    hamibot login

    2. List paired devices

    hamibot devices

    3. Execute code on device

    hamibot exec -c 'toast("Hello from CLI!")'

    ⚙️ Configuration

    hamibot config defaultDevice         # Set default device
    hamibot config defaultDevice --get       # Get config value
    hamibot config --reset                   # Clear all config