Guides

ASD on Android (Termux)

Overview

ASD CLI runs natively on Android devices through Termux, a terminal emulator for Android. You can expose local services, manage tunnels, and access the full ASD TUI dashboard directly from your phone or tablet — no desktop required.

All ASD helper binaries ship with ARM64 variants, so everything installs and runs automatically on modern Android hardware.

Requirements

Before you begin, make sure you have:

  • Android device with ARM64 processor (virtually all devices from 2017 onward)
  • Termux installed from F-Droid

Important: Install Termux from F-Droid, not the Google Play Store. The Play Store version is outdated and may not work correctly with ASD.

Installation

Step 1: Install Termux

Download and install Termux from the F-Droid app store. If you do not have F-Droid installed, you can download it from f-droid.org.

Step 2: Update Packages

Open Termux and update the package manager to ensure you have the latest versions of all system packages:

pkg update && pkg upgrade -y

Step 3: Install ASD CLI

You have two options for installing ASD:

Option A: Install script (recommended)

This is the fastest path. Install curl if it is not already present, then run the install script:

pkg install curl
curl -fsSL https://raw.githubusercontent.com/asd-engineering/asd-cli/main/install.sh | bash

The installer automatically detects ARM64 and downloads the correct binary.

Option B: From source via Bun (for development)

If you want to work with ASD source code or contribute to development:

pkg install bun git
git clone --recursive https://github.com/your-org/your-project.git
cd your-project
bun install

Replace your-org/your-project with your actual repository URL.

Step 4: Initialize Your Project

Navigate to your project directory and initialize ASD:

cd your-project
asd init

This downloads all required ARM64 helper binaries and creates the workspace directory structure. Once complete, you can open the network TUI:

asd net

Termux-Specific Notes

File System Paths

Termux uses a sandboxed file system that differs from standard Linux:

LocationPath
Home directory (~)/data/data/com.termux/files/home
ASD binaries~/.local/share/asd/bin/
SSH keys~/.ssh/
External storageAccessible after running termux-setup-storage

Your project files, ASD workspace state, and all configuration live inside Termux’s home directory. This directory persists across Termux sessions but is removed if you uninstall the app.

Binary Storage

ASD stores helper binaries in Termux’s standard data directory:

~/.local/share/asd/bin/

All binaries are ARM64-native and require no emulation layer. They are downloaded automatically during asd init.

What Works and What Does Not

FeatureStatusNotes
asd net TUIWorksFull ANSI color and interactive navigation
asd initWorksAll ARM64 binaries install correctly
asd exposeWorksCreate tunnels and share local services
Tunnel connectionsWorksRequires authentication (login or token)
SSH key generationWorksKeys stored in ~/.ssh/
asd net openLimitedNo browser integration from CLI; copy the URL manually

The main limitation is the asd net open command, which cannot automatically open URLs in a browser from within Termux. Instead, copy the tunnel URL from the TUI output and paste it into your mobile browser or share it via any messaging app.

Verified ARM64 Binaries

All ASD helper binaries have been tested and verified on ARM64 (aarch64) devices. They install automatically during asd init:

BinaryPurpose
CaddyLocal reverse proxy with automatic HTTPS
ttydWeb-based terminal access
DbGateDatabase management UI
GitHub CLI (gh)GitHub integration from the command line
mitmproxyNetwork traffic inspection and debugging

You do not need to install these manually — ASD handles downloading and placing the correct architecture variant.

Troubleshooting

“Permission denied” on Binaries

If you see permission errors when ASD tries to run a helper binary:

chmod +x ~/.local/share/asd/bin/*

This grants execute permission to all ASD binaries. The install script normally handles this, but Android’s file system permissions can occasionally reset.

Storage Access

To access files on your device’s external storage (SD card, shared storage, Downloads folder), you need to grant Termux storage permission:

termux-setup-storage

Android will prompt you to allow Termux access. After granting permission, external storage is available at ~/storage/.

Network and Wake Lock

Android aggressively suspends background processes to save battery. If tunnel connections drop when your screen turns off or Termux moves to the background, acquire a wake lock:

termux-wake-lock

This prevents Android from suspending Termux’s network connections. Remember that keeping a wake lock active will increase battery consumption. Release it when you no longer need persistent connections:

termux-wake-unlock

Terminal Colors Not Displaying Correctly

If the TUI or colored output looks garbled, set the terminal type explicitly:

export TERM=xterm-256color

To make this permanent, add it to your shell configuration:

echo 'export TERM=xterm-256color' >> ~/.bashrc

Tunnel Not Connecting

If asd expose fails to establish a tunnel:

  1. Verify you are authenticated: asd auth status
  2. Check your network connection — mobile data and some Wi-Fi networks may block SSH outbound
  3. Try acquiring a wake lock if on a spotty connection: termux-wake-lock
  4. Re-initialize if binaries seem corrupted: asd init

Tips for Mobile Development

  • Use a Bluetooth keyboard for extended coding sessions. Termux supports full keyboard input including function keys and modifier combinations.
  • Split-screen mode on tablets lets you run Termux alongside a browser to test your tunnel URLs in real time.
  • Termux:Widget (available on F-Droid) lets you create home screen shortcuts for common ASD commands like asd expose 3000.
  • Pair with ttyd to get a web terminal you can access from another device, turning your Android into a portable development server.

Related Guides

  • Getting Started — Complete walkthrough from installation to your first public URL, applicable to all platforms including Android
  • Built-in Services — Web terminal, VS Code server, and database UI setup