Need help with termux-app?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

termux
9.4K Stars 1.3K Forks Other 1.2K Commits 229 Opened issues

Description

Termux - a terminal emulator application for Android OS extendible by variety of packages.

Services available

!
?

Need anything else?

Contributors list

Termux application

Build status Testing status Join the chat at https://gitter.im/termux/termux Join the Termux discord server Termux library releases at Jitpack

Termux is an Android terminal application and Linux environment.

Note that this repository is for the app itself (the user interface and the terminal emulation). For the packages installable inside the app, see termux/termux-packages.

Quick how-to about Termux package management is available at Package Management. It also has info on how to fix

repository is under maintenance or down
errors when running

apt
or
pkg
commands.

@termux is looking for Termux Application maintainers for implementing new features, fixing bugs and reviewing pull requests since the current one (@fornwall) is inactive.

Issue https://github.com/termux/termux-app/issues/1072 needs extra attention.


Contents

Termux App and Plugins

The core Termux app comes with the following optional plugin apps.

Installation

Termux can be obtained through various sources listed below for only Android

>= 7
. Support was dropped for Android
5
and
6
on 2020-01-01 at
v0.83
, old builds are available on archive.org.

The APK files of different sources are signed with different signature keys. The

Termux
app and all its plugins use the same
sharedUserId
com.termux
and so all their APKs installed on a device must have been signed with the same signature key to work together and so they must all be installed from the same source. Do not attempt to mix them together, i.e do not try to install an app or plugin from
F-Droid
and another one from a different source like
Github
. Android Package Manager will also normally not allow installation of APKs with different signatures and you will get errors on installation like
App not installed
,
Failed to install due to an unknown error
,
INSTALL_FAILED_UPDATE_INCOMPATIBLE
,
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
,
signatures do not match previously installed version
, etc. This restriction can be bypassed with root or with custom roms.

If you wish to install from a different source, then you must uninstall any and all existing Termux or its plugin app APKs from your device first, then install all new APKs from the same new source. Check Uninstallation section for details. You may also want to consider Backing up Termux before the uninstallation so that you can restore it after re-installing from Termux different source.

In the following paragraphs, "bootstrap" refers to the minimal packages that are shipped with the

termux-app
itself to start a working shell environment. Its zips are built and released here.

F-Droid

Termux application can be obtained from

F-Droid
from here.

You do not need to download the

F-Droid
app (via the
Download F-Droid
link) to install Termux. You can download the Termux APK directly from the site by clicking the
Download APK
link at the bottom of each version section.

It usually takes a few days (or even a week or more) for updates to be available on

F-Droid
once an update has been released on
Github
. The
F-Droid
releases are built and published by
F-Droid
once they detect a new
Github
release. The Termux maintainers do not have any control over the building and publishing of the Termux apps on
F-Droid
. Moreover, the Termux maintainers also do not have access to the APK signing keys of
F-Droid
releases, so we cannot release an APK ourselves on
Github
that would be compatible with
F-Droid
releases.

Only a universal APK is released, which will work on all supported architectures. The APK and bootstrap installation size will be

~180MB
.
F-Droid
does not support architecture specific APKs.

Github

Termux application can be obtained on

Github
either from
Github Releases
for
>= v0.118
or from
Github Build
action workflows.

The APKs for

Github Releases
will be listed under
Assets
drop-down of a release. These are automatically attached when a new version is released.

The APKs for

Github Build
action workflows will be listed under
Artifacts
section of a workflow run. These are created for each commit/push done to the repository and can be used by users who don't want to wait for releases and want to try out the latest features immediately or want to test their pull requests.

The APKs for both of these are

debuggable
and are compatible with each other but they are not compatible with other sources.

Both universal and architecture specific APKs are released. The APK and bootstrap installation size will be

~180MB
if using universal and
~120MB
if using architecture specific. Check here for details.

Google Play Store (Deprecated)

Termux and its plugins are no longer updated on Google Play Store due to android 10 issues and have been deprecated. The last version released for Android

>= 7
was
v0.101
. It is highly recommended to not install Termux apps from Play Store any more.

There are plans for unpublishing the Termux app and all its plugins on Play Store soon so that new users cannot install it and for disabling the Termux apps with updates so that existing users cannot continue using outdated versions. You are encouraged to move to

F-Droid
or
Github
builds as soon as possible.

You will not need to buy plugins again if you bought them on Play Store. All plugins are free on

F-Droid
and
Github
.

You can backup all your data under

$HOME/
and
$PREFIX/
before changing installation source, and then restore it afterwards, by following instructions at Backing up Termux before the uninstallation.

There is currently no work being done to solve android

10
issues and working updates will not be resumed on Google Play Store any time soon. We will continue targeting sdk
28
for now. So there is not much point in staying on Play Store builds and waiting for updates to be resumed. If for some reason you don't want to move to
F-Droid
or
Github
sources for now, then at least check Package Management to change your mirror, otherwise, you will get
repository is under maintenance or down
errors when running
apt
or
pkg
commands. After that, it is also highly advisable to run
pkg upgrade
command to update all packages to the latest available versions, or at least update
termux-tools
package with
pkg install termux-tools
command.

If you plan on staying on Play Store sources in future as well, then you may want to disable automatic updates in Play Store for Termux apps, since if and when updates to disable Termux apps are released, then you will not be able to downgrade and will be forced to move since apps won't work anymore. Only a way to backup

termux-app
data may be provided.

Why Disable?

  • They should be disabled because deprecated things get removed and are not supported after some time, its the standard practice. It has been many months now since deprecation was announced and updates have not been released on Play Store since after 29 September 2020.

  • The new versions have lots of new features and fixes which you can mostly check out in the Changelog of Github Releases that you may be missing out. Extra detail is usually provided in commit messages.

  • Users on old versions are quite often reporting issues in multiple repositories and support forums that were fixed months ago, which we then have to deal with. The maintainers of @termux work in their free time, majorly for free, to work on development and provide support and having to re-re-deal with old issues takes away the already limited time from current work and is not possible to continue doing. Play Store page of termux-app has been filled with bad reviews of "broken app", even though its clearly mentioned on the page that app is not being updated, yet users don't read and still install and report issues.

  • Asking people to pay for plugins when the termux-app at installation time is broken due to repository issues and has bugs is unethical.

  • Old versions don't have proper logging/debugging and crash report support. Reporting bugs without logs or detailed info is not helpful in solving them.

  • It's also easier for us to solve package related issues and provide custom functionality with app updates, which can't be done if users continue using old versions. For example, the bintray shudown causing package install/update failures for new Play Store users is/was not an issue for F-Droid users since it is being shipped with updated bootstrap and repo info, hence no reported issues from new F-Droid users.

Uninstallation

Uninstallation may be required if a user doesn't want Termux installed in their device anymore or is switching to a different install source. You may also want to consider Backing up Termux before the uninstallation.

To uninstall Termux completely, you must uninstall any and all existing Termux or its plugin app APKs listed in Termux App and Plugins.

Go to

Android Settings
->
Applications
and then look for those apps. You can also use the search feature if it’s available on your device and search
termux
in the applications list.

Even if you think you have not installed any of the plugins, it's strongly suggested to go through the application list in Android settings and double-check.

Important Links

Community

All community links are available here.

The main ones are the following.

Wikis

Miscellaneous

Terminal

Terminal resources

Terminal emulators

For Maintainers and Contributors

The termux-shared library was added in

v0.109
. It defines shared constants and utils of the Termux app and its plugins. It was created to allow for the removal of all hardcoded paths in the Termux app. Some of the termux plugins are using this as well and rest will in future. If you are contributing code that is using a constant or a util that may be shared, then define it in

termux-shared
library if it currently doesn't exist and reference it from there. Update the relevant changelogs as well. Pull requests using hardcoded values will/should not be accepted.

The main Termux constants are defined by

TermuxConstants
class. It also contains information on how to fork Termux or build it with your own package name. Changing the package name will require building the bootstrap zip packages and other packages with the new

$PREFIX
, check Building Packages for more info.

Check Termux Libraries for how to import termux libraries in plugin apps and Forking and Local Development for how to update termux libraries for plugins.

Commit messages should preferably use Conventional Commits specs. Use the following

types
as
Added: Add foo
,
Added|Fixed: Add foo and fix bar
,
Changed!: Change baz as a breaking change
, etc. This should also allow automated generation of Changelogs in future.
  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

Changelogs for releases are generated based on Keep a Changelog specs.

Forking

  • Check
    TermuxConstants
    javadocs for instructions on what changes to make in the app to change package name.
  • You also need to recompile bootstrap zip for the new package name. Check here and here for experimental work on it.
  • Currently, not all plugins use
    TermuxConstants
    from
    termux-shared
    library and have hardcoded
    com.termux
    values and will need to be manually patched.
  • If forking termux plugins, check Forking and Local Development for info on how to use termux libraries for plugins.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.