Termux

Terminal emulator for Android

Not to be confused with Tmux.

Termux

nano running on Termux

Original author(s)| Fredrik Fornwall
Initial release| 30 May 2015; 10 years ago (2015-05-30)
Stable release|

0.118.3[1] (22 May 2025; 2 months ago (22 May 2025))

Repository| https://github.com/termux/termux-app
Written in| Java, C, C++
Operating system| Android
Platform| x86-64, ARM64, i686, ARMv7
Size| 105 MB
Type| Terminal emulator, command-line interface
License| GPLv3 only
Website| termux.dev

Termux is a free and open-source terminal emulator for Android which allows for running a Linux environment on an Android device. Termux installs a minimal base system automatically; additional packages are available using its package manager, based on Debian's.[2]

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

[edit]

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.

Terminal-based text editors such as Emacs and Vim can be installed. It is also possible to execute GUI applications in Termux by using a VNC server and installing a desktop environment (Xfce, LXQt, MATE) or window manager.[5]

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 cannot be used without root access as they require filesystem mounting permissions.

### User interface

[edit]

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

[edit]

Users configure Termux by editing `~/.termux/termux.properties`.

### Add-ons

[edit]

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
* Termux:Tasker: integrates Tasker with Termux

Add-ons must be installed from the same source as the application so that the same User ID is used.

## History

[edit]

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

[edit]

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 is not being updated anymore; users are encouraged to install Termux from F-Droid or GitHub in order to receive the latest updates.

## Package management and distribution

[edit]

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

[edit]

Termux had more than 1000 packages available as of 2021.

### Package repositories

[edit]

Termux has three 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.

## References

[edit]

1. ^ https://github.com/termux/termux-app/releases/tag/v0.118.3. `{{cite web}}`: Missing or empty `|title=` (help)
2. ^ Seth Kenlon (August 11, 2020). "Use a Linux terminal on your Android phone". opensource.com. Retrieved August 17, 2021.
3. ^ "ZSH - Termux Wiki". Termux. July 30, 2020. Retrieved August 17, 2021.
4. ^ "The Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
5. ^ "Graphical Environment - Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
6. ^ termux/proot-distro, Termux, 2024-11-03, retrieved 2024-11-03
7. ^ "Behavior changes: apps targeting API 29+". Android Developers. Retrieved 2021-12-01.
8. ^ "Into the Sunset: Bintray, JCenter, GoCenter, and ChartCenter". JFrog. 2021-02-03. Retrieved 2021-12-01.
9. ^ "Termux". Termux. Retrieved 1 June 2023.
10. ^ "Differences from Linux - Termux Wiki". termux.com. 30 July 2021. Retrieved 18 August 2021.

## External links

[edit]

* Media related to Termux at Wikimedia Commons
* Official website
* Termux Android package at the F-Droid repository
* Termux on GitHub
* Termux packages on GitHub
* Termux wiki

* v
* t
* e

Terminal emulators (list)

* Alacritty
* ConEmu
* GNOME Terminal
* GNOME Terminator
* iTerm2
* kitty
* Konsole
* Red Ryder
* macOS Terminal
* mintty
* rxvt
* mrxvt
* Terminator
* Terminology
* Warp
* Windows Console
* Windows Terminal
* Xfce Terminal
* xterm

Related programs|

* luit
* kmscon

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template