Wear Term
>_ Wear OS · native Linux userland

A real terminal on your wrist,
and everything behind it.

Wear Term is a terminal emulator for Wear OS with a real pty, a real shell, and zbd, a package manager that installs 146 tools straight onto the watch. No root, no companion phone app.

The repositories

Three repos, three jobs. The app runs on the watch; the manager decides what's installable; the repository holds the archives it installs from.

The terminal emulator itself — Compose for Wear OS, a native pty, xterm emulation with truecolour and scrollback, a tile and a complication.

Kotlin · C · CMake
zbdPackage manager

The zbd package manager bundled inside the app, plus its site at zbd.com.tr. Resolves dependencies depth-first and verifies every archive by SHA-256.

HTML · CSS · JS
wearterm-repoPackage repository

The static index and .zbd archives — 146 packages repackaged from Termux, plus the wt-api script catalogue installable straight onto the watch.

Python · Shell

How it fits together

One request on the watch, three repos doing the work.

WearTermzbd install git
zbdresolve · verify · unpack
wearterm-repoindex-$ARCH.json + .zbd

Runs on:

aarch64x86_64

146 packages, 12 categories

Repackaged from Termux, resolved depth-first over their dependencies, verified by SHA-256 before anything touches the prefix.

146packages
12categories
SHA-256verified on install
offlinecached index still installs

bash, busybox, coreutils, ncurses, ncurses-utils, readline…

grep, sed, gawk, findutils, less, most…

tar, gzip, bzip2, xz-utils, zstd, unzip…

vim, nano, micro, hexcurse

tmux, screen, asciinema

htop, procps, ncdu, util-linux, lsof, strace…

ripgrep, fzf, fd, silversearcher-ag

curl, wget, wget2, openssh, mosh, ca-certificates…

nmap, rustscan, dirb, testssl.sh, crunch, dnsmap…

git, git-lfs, tig, python, perl, lua54…

mandoc, tealdeer

cowsay, figlet, fortune, sl, cmatrix, toilet…

No root, no companion app

Everything runs on the watch. A foreground service holds the session, an LD_PRELOAD shim routes around Android's exec restrictions, and the index is cached with ETag revalidation so a stale index still installs.