Files
Armin Ronacher caf6dfe731 feat(tui): Simplify clipboard handling (#9163)
Replace the external clipboard dependency with small macOS, Windows,
and X11 helpers and integrate them into coding-agent.

Run native clipboard operations on worker threads and make command
fallbacks asynchronous. Preserve incremental X11 transfers, legacy text
encodings, native image formats, and existing Wayland and platform tools.

Include native prebuilds with ARM64 page alignment, packaging updates,
and regression coverage.
2026-09-05 23:52:32 +02:00

3.0 KiB

Termux (Android) Setup

Pi runs on Android via Termux, a terminal emulator and Linux environment for Android.

Prerequisites

  1. Install Termux from GitHub or F-Droid (not Google Play, that version is deprecated)
  2. Install Termux:API from GitHub or F-Droid for clipboard and other device integrations

Installation

# Update packages
pkg update && pkg upgrade

# Install dependencies
pkg install nodejs termux-api git

# Install pi
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

# Create config directory
mkdir -p ~/.pi/agent

# Run pi
pi

Clipboard Support

Clipboard operations use termux-clipboard-set and termux-clipboard-get when running in Termux. The Termux:API app must be installed for these to work.

Image clipboard is not supported on Termux (the ctrl+v image paste feature will not work).

Example AGENTS.md for Termux

Create ~/.pi/agent/AGENTS.md to help the agent understand the Termux environment:

# Agent Environment: Termux on Android

## Location
- **OS**: Android (Termux terminal emulator)
- **Home**: `/data/data/com.termux/files/home`
- **Prefix**: `/data/data/com.termux/files/usr`
- **Shared storage**: `/storage/emulated/0` (Downloads, Documents, etc.)

## Opening URLs
```bash
termux-open-url "https://example.com"
```

## Opening Files
```bash
termux-open file.pdf          # Opens with default app
termux-open --chooser image.jpg      # Choose app
```

## Clipboard
```bash
termux-clipboard-set "text"   # Copy
termux-clipboard-get          # Paste
```

## Notifications
```bash
termux-notification -t "Title" -c "Content"
```

## Device Info
```bash
termux-battery-status         # Battery info
termux-wifi-connectioninfo    # WiFi info
termux-telephony-deviceinfo   # Device info
```

## Sharing
```bash
termux-share -a send file.txt # Share file
```

## Other Useful Commands
```bash
termux-toast "message"        # Quick toast popup
termux-vibrate                # Vibrate device
termux-tts-speak "hello"      # Text to speech
termux-camera-photo out.jpg   # Take photo
```

## Notes
- Termux:API app must be installed for `termux-*` commands
- Use `pkg install termux-api` for the command-line tools
- Storage permission needed for `/storage/emulated/0` access

Limitations

  • No image clipboard: Termux clipboard API only supports text
  • Storage access: To access files in /storage/emulated/0 (Downloads, etc.), run termux-setup-storage once to grant permissions

Troubleshooting

Clipboard not working

Ensure both apps are installed:

  1. Termux (from GitHub or F-Droid)
  2. Termux:API (from GitHub or F-Droid)

Then install the CLI tools:

pkg install termux-api

Permission denied for shared storage

Run once to grant storage permissions:

termux-setup-storage

Node.js installation issues

If npm fails, try clearing the cache:

npm cache clean --force