Most commands available in Linux are accessible in Termux, as well as built-in Bash commands. There are several other shells available, such as Zsh and tcsh.[3]
Overview
Packages are cross-compiled with Android NDK and have compatibility patches to get them working on Android. Since all files are installed in the application directory, rooting is not required.[4]
There are more than one thousand packages available, and users can submit requests for new ones.
Alternatively, packages can be compiled from source, as Termux supports a variety of build tools including CMake, Meson, GNU Autotools, as well as compilers for C++, Rust, Go, Swift, and other programming languages.
Termux can also install interpreters for languages like Ruby, Python, and JavaScript.
Another popular use case for Termux is its ability to run containers of various Linux distributions which would normally use the chroot command without requiring root privileges by using PRoot.[6] This provides access to many more packages through the package manager of the distribution of choice than would directly be accessible in Termux, though popular application container formats such as Flatpak and Snap can't be used without root access as they require filesystem mounting permissions.
User interface
Termux's user interface is fairly simple, only displaying the extra keys row and the terminal output. Color scheme and font can be changed through Termux: Styling.
The extra-keys row can also be customized. Users can add more function keys and controls by editing ~/.termux/termux.properties.
Termux has mouse/touch support which can be used to interact with programs such as htop and other ncurses-based applications. Scrolling is done by swiping up or down in the terminal buffer.
Configuration
Users configure Termux by editing ~/.termux/termux.properties.
Add-ons
Termux also includes 7 add-ons:
Termux:API: exposes Android functionality to CLI applications
Termux:Styling: allows changing the color scheme and font of the terminal
Termux:Boot: executes Termux commands at boot
Termux:GUI: allows for some Termux apps to have a GUI using default Android resources; does not work with X11/Wayland apps
Termux:Widget: lets users run scripts in a dedicated widget or a shortcut in the Home screen
Termux:Float: runs terminal session in a floating window
Add-ons must be installed from the same source as the application so that the same User ID is used.
History
Termux was initially released in 2015. Support for requesting packages and features was added through GitHub issues in the app's repository. People can also contribute to the project by adding new features and packages.
In January 2020, the Termux development team ended support for devices running Android 5-6, making Android version 7 the minimum OS requirement.
Termux v0.101 was the last version to be updated in the Google Play Store. Since November 2020, Google Play has enforced apps targeting API level 29, which breaks the execution of binaries in private application directories. According to Google:
Untrusted apps that target Android 10 cannot invoke exec() on files within the app's home directory. This execution of files from the writable app home directory is a W^X violation. Apps should load only the binary code that's embedded within an app's APK file.[7]
The Termux development team suggests moving to F-Droid in order to continue getting updates, as F-Droid does not impose such restrictions. It is also possible to download APK files from the project's GitHub repository.
In May 2021, Bintray, which had been the primary host for the Termux packages, shut down its services.[8] Termux migrated to Hetzner, another hosting service.[9]
Installation
The installation process extracts the bootstrap archive from the APK file, sets correct permissions for the executable, and sets up directories like the home directory. The Play Store version of Termux isn't being updated anymore, users are encouraged to install Termux from F-Droid or GitHub in order to receive latest updates.
Package management and distribution
Packages in Termux are installed through the application's package manager (pkg) and use the .deb format. However, normal Debian packages cannot be installed as Termux is not FHS compliant.[10]
Users can also build and submit packages.
Package availability
Termux has more than 1000 packages available as of 2021.
Package repositories
Termux has 3 repositories available. Repositories included in the default Termux bootstrap installation include:
main is the main repository containing all CLI utilities and other popular Linux tools and language compilers/interpreters.
x11-repo contains X11-based packages and graphical applications.
root-repo contains packages useful for rooted devices. Some of these packages can be used without root, but functionality may be limited.