The colors/graphics seem to be better on irssi and can also handle all the emacs and gnu screen keyboard chords and escape sequences.
I try every android terminal but nobody is really thinking about running more than simple commands.
Kinda difficult to explain. But Copilot says:
Provide a single-line weather summary (temperature, wind direction name + degrees, wind speed, symbol text) for use elsewhere (repo name suggests itβs for a clock/display).
A year ago I used it to solve Advent of Code problems on my phone during my work commute. It was lovely. I have also used it to get access to a resampling calculator and a mental logarithm trainer on my phone.
Tailscale works with "--tun=userspace-networking" [1].
I had it running on an old phone as a Frigate server with a solar powerbank in remote area, using the 4G as a failover. The uptime is almost a week without solar. Attiny hooked to the power button and a photodiode on the phone flash [2] (blink per minute) used as a watchdog for shutdowns/hangs to hardware reset. The button cap is removed without disassembling the phone.
Old phones are still more efficient than most off the shelf SBCs, especially under load. ~3W compared to 12W with a Pi5 in the same performance ballpark.
[0]: https://github.com/George-Seven/Termux-Udocker https://github.com/indigo-dc/udocker
The on demand nature of it is a major selling point to me. When I open Termux and run SSH it's up, if I shut down Termux, SSH goes away with it. That and I can use rsync which is a tool I've been using for syncing files for a long time.
There's no need to run always-on tools like LocalSend or SyncThing, at least not for my use case. I have a little "sync" shell script on my desktop I can run to easily sync files "desktop TO phone" or "phone TO desktop".
I have a Bluetooth keyboard case for my Android tablet. All the time, I use Termux to ssh into my Linux machine over my home network and code on it in Neovim from my couch.
I don't bother with the default notes app on my phone. Termux + Neovim running vimwiki and syncing to a private GitHub repo is way better.
Most stuff you want at the CLI is in the Termux package repository. On the occasions when it isn't, you can install clang, make, cmake, ninja, whatever libraries you need, and build it from source. At that point most stuff just works.
Termux is incredible and single-handedly keeps me running Android.
Typing on a phone sucks, but at least modal modes (vim) and unexpected keyboard[1] makes it somewhat tolerable.
Out of curiosity, is there an equivalent on ios with that level of support?
So I have a python script in the NAS that calculates the MD5 checksum of every photo and video, and generates a shell script that, when executed on the phone, will calculate the MD5 on the local device, and delete if it is equal to the NAS.
The generated shell script gets sent to the phone, then I execute it from within a Termux window, pointing at the DCIM folder.
I can free up tens of GB of memories with reliability in the face of a misbehaving sync algorithm.
[1] https://help.nextcloud.com/t/auto-upload-is-skipping-random-...
When Android was new, I very frequently used Termux and ConnectBot with my first few Motorola Droid phones. For a brief moment, I had a working phone with a great physical design only held back by an outdated chipset and being locked to Planet Computers' abandonware. I could touch-type at 80 WPM on an easily pocketable device! Termux shone there.
So many things about Android were not just more exciting in terms of potential when it was new, but actively better: wider variety of hardware, widely unlocked bootloaders, no remote attestation, etc. Termux sadly feels like a painful reminder of that to me.
I keep reading on https://www.reddit.com/r/androidterminal/ about user experiences with it and it seems pretty great.
I highly recommend using Unexpected Keyboard along with termux (a recommendation I myself almost certainly got from HN).
Inside or outside of Termux, it allows you to interact with your android device in general from the comfort of your main computer/laptop over ADB.
It becomes a super multiplier for Termux when I don't want to deal with the hassle of connecting a separate keyboard to my android phone/tablet.
(A heads up, I have to use the `--render-driver=software` switch in order for scrcpy to work at all on my laptop.)
Termux is currently grandfathered in because it's still built against the last API version not to have these restrictions (28?). But it's only a matter of time before that version starts throwing "This app was built for an old version of Android and may not work properly on new devices" errors and then, stop working altogether...
That all said, I've heard news about Android getting degraded by Google to be more like Apple. Hope its rumors, but at least I had a good decade+.
Yes, I know Termux-X11 exists but that app is a single Android window (again, I'm not sure if that's the right term) for all X windows. I'm wondering if there's an app that creates an Android window for each X window.
We're in the future!
But this is one of the things I really would love to have on my iPhone that Iβm jealous of the Android ecosystem for. I know there are alternatives for iOS and Iβve used them (no need to list them here, this thread isnβt about iOS). For me, a really good terminal/CLI with good integration with the OS would be killer. But I know Iβm niche and unlikely to see such a thing outside of SSHing to a remote VM.
There is a read only demo here https://a.ocv.me/pub/demo/
https://social-cdn.vivaldi.net/system/media_attachments/file...
https://www.androidauthority.com/unihertz-titan-2-elite-qwer...
https://www.engadget.com/mobile/smartphones/clicks-is-bringi...
I would learn it on the bus, and at the time I didn't have a data plan, so I could only access things I had already downloaded. The `:help` documentation is very thorough.
Then you can attach a Bluetooth keyboard. And you can import scripts (Perl, Python, Shell, ...) via ssh from other devices. Last but not least, you can start an ssh server on the device and use Termux from your desktop or laptop. And you can start a web server, to access your device's media files, etc.
The Android Terminal app is just a view to a full VM. If you want a more traditional Linux system on your phone alongside Android instead of a Terminal in Android, essentially having a second system just conveniently running on the hardware of your phone, then that's for you. However it does also use more storage.
So almost everything is text (with markup/markdown) and can thus easily be synced and merged between devices via rsync, ssh and perl or shell scripts.
Example: when I want to look up notes in either markor's or diary's files, that's easily accomplished with a shell script, e.g.
cd ~/storage/shared/Documents/markor
if [[ $# == 0 ]] ; then
exec zsh
else
grep -i "$@" **/*(.) | less
fi
Instead of grep I could even use agrep to handle typos. I can start a simple web server on the phone or tablet, if needed: python -m http.server $PORT --bind 0.0.0.0
and view media files from another device (mobile, desktop, laptop, β¦ whatever.And there's exiftool, ffmpeg, ImageMagick, scripting languages, all in reach, wherever I go.
For a couple of weeks I'd automated myself out of on-call by hooking that to an automation that fired every time I got paged. I wasn't brave enough to keep it going in the long term, but it was the best two weeks of sleep I had at that place.
Termux makes it super easy to pull up a Janet REPL on my phone and try some things out before I reply. You could do the same with node or Python or anything else with a CLI REPL.
For anyone who already is familiar with a linux terminal, termux is a great way to use a lot of the open-source tools you're already familiar with instead of trying to find a dozen different apps instead (that all probably show ads, spy on you, or require a subscription). There are also several apps that use it as a necessary backbone for their functionality, and require it to be installed.
- Using vim/neovim is way better than I'd expect on a phone keyboard, because you can move around faster with less keypresses.
- My terminal sessions are wrapped in tmux, so switching between devices is seamless (tmux panes resize without any problems to match your device dimensions/aspect ratio as soon as you interact with the terminal - nothing ever breaks). You can do the pinch gesture to change the text size, depending on what you need to see at the moment.
- Both devices are using tailscale, so all I need is cellular data connection. For low quality network coverage I use mosh, which makes the session truly unkillable and makes sure it will recover when the connection comes back, albeit I ran into some annoying limitations with text scrollback.
With the recent development of agents, it becomes even more effective, since I can just open up claude session, type the prompt and have the agent do the heavy-lifting (mostly writing large chunks of code). This greatly compresses the amount of text you'd have to type and makes phone-only coding more viable than ever.
I take notes, do programming, remote into computers, investigate networks, download and play back music/podcasts/web radio, surf the web with w3m, run background services, pretty much anything I'd use a terminal emulator for on a laptop computer.
Eventually I expect more people to move off Discord and the like so I can easily have them in terminal chat software instead.
And having tools like exiftool, ffmpeg, and ImageMagick among others available in Termux is wonderful.
The main one I use with my Android tablet specifically is a no-name brand, knock-off "magic keyboard"-style folio case that I got on AliExpress for like, 45 USD. I ordered the English layout, I received the Spanish one (which is mostly the same but had additional legends for Spanish characters). Le sigh. It's AliExpress, I didn't bother contacting support.
For my phone, I have a really old Zagg one that was originally for an iPad. The iPad has long since died but the keyboard lives on. Woo!
The main keyboard I type on all day at my desk is a Logitech Pebble K380s. It can store three different connection profiles, which can be either Bluetooth or Logi unified receiver. So I have one of those profiles set to connect to my Pixel 8 via Bluetooth (typing from that now). Makes toggling back and forth between that and my desktop very smooth.
On a "real keyboard" (like this K380s) there's a dedicated Esc key. Most tablet folio cases don't have Esc. I found an app called "External Keyboard Helper Pro" that lets me rebind Caps Lock to Esc. That makes Neovim much more pleasant.
Does it? I've looked at it only briefly (like enabled it, waited a while for it to download something big, then got a basic shell) but it seemed much less capable than Termux. Can you get cell tower info or copy to clipboard for example, or use other Android APIs?
Edit: looked into it a bit more, /etc/issue says it's a Debian 13 (latest stable), apt works with sudo (this is a locked-down device where I don't have root permission on, why does it need a fake sudo to use apt?) but of course programs like wavemon are useless because Android doesn't let you access the WiFi interface. There's no settings besides port forwarding and resetting the "partition". I don't see any documentation or info on how/whether you can interface with the rest of the system in any way. Looking on the web for Android terminal or "Linux developer environment" (as the system settings calls it) is predictably useless and only results in Google's unrelated Android SDK or other terminal emulator apps
Edit 2: okay, beware of it: I was curious if the same "you can't make the OS not kill your script" problem also happened in this OS terminal and.. it's worse. So I ran `while true; do date >> latest.txt; sleep 10; done` to see how long it'd stay alive and then did some other tasks like turning the screen off and on, opening a navigation app and zooming into a dense city, and loading a few websites. Locked the screen once more for good measure and then unlocked and opened the terminal. Guess what? It's broken. Not just crashed: I simply cannot start it anymore. The only "error handling" (Fehlerbehebung it says) step it offers is to delete all data and start with a clean system. The stack trace says there's a nullpointer in TerminalWebViewClient, with the next line being in Trichrome. It's a web browser apparently
Right now I'm on an S24 Ultra, before that a Note 10 Lite, and before that another Note 10 Lite.
It is very unreliable though. I hope Android 17 improves it, as other than the restart issues, I've generally found it to be very functional.
It's a VM running normal Debian. Inside the VM, you do have root, and that sudo isn't fake.
On the transfer, here is what I could dig up:
The github issue about it was deleted, but archive.org has copies: https://web.archive.org/web/20251215062049/https://github.co...
HN discussion of same (with another link to the syncthing forum): https://news.ycombinator.com/item?id=46184730
Lobsters discussion: https://lobste.rs/s/urbcpw/potential_security_breach_syncthi...
(and here is the announcement that the official android syncthing app was being discontinued: https://forum.syncthing.net/t/discontinuing-syncthing-androi...)
No shortage of reading if you have the time! I'm quite happy to be running just the "standard" package (although, yeah, I should've pointed out that I don't run in continuously on my phone...)
Not to single you out but I worry about this trend. As things stand, free (FLOSS) privacy-respecting computing remains all but impossible on the mobile platform. If now Termux is encouraging even geeks to abandon the desktop, that seems like a net negative.
As an example - I used it to do Rustlings every day I commute on a subway. NYC subways don't have mobile network coverage, so I can't just SSH there into a remote machine.
https://sourceforge.net/projects/android-ports-for-gnu-emacs...
https://mstempl.netlify.app/post/emacs-on-android/ https://kristofferbalintona.me/posts/202505291438/
It was a painful troubleshooting process when I first installed it that took me a long while to stumble upon the software renderer option.
(menu-bar-mode -1)
(setq inhibit-splash-screen t)
(setq inhibit-startup-echo-area-message t)
(global-set-key "Γ₯" 'hippie-expand)
(global-set-key "β" 'toggle-truncate-lines)
(global-set-key (kbd "<f12>") 'toggle-truncate-lines)
(xterm-mouse-mode 1)
(global-set-key (kbd "<mouse-5>") 'scroll-up-command)
(global-set-key (kbd "<mouse-4>") 'scroll-down-command) ;
(global-set-key (kbd "<wheel-up>") 'scroll-up-command)
(global-set-key (kbd "<wheel-down>") 'scroll-down-command) ;
(setq case-fold-search t)
(setq-default truncate-lines t)
(setq sort-fold-case t)
(autoload 'scad-mode "scad-mode" "A major mode for editing OpenSCAD code." t)
(add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode))
(require 'scad-preview)
(global-set-key (kbd "Γ
") 'dabbrev-expand)
(add-hook 'python-mode-hook 'whitespace-mode)
(setq whitespace-line-column 128)
(custom-set-faces
'(default ((t (:background "#000000" :foreground "#ffffff"))))
'(whitespace-space ((t (:background "black" :foreground "blue"))))
'(whitespace-tab ((t (:background "black" :foreground "blue"))))
'(whitespace-newline ((t (:background "black" :foreground "blue"))))
'(whitespace-empty ((t (:background "black" :foreground "grey50")))))That said, it has to be compiled for older Android SDK level because newer levels prevent apps to run executables they downloaded on their own and not bundle with the APK, even isolated. Android may disable compatibility with the older SDK some day but for now it works.
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.
We are looking for Termux Android application maintainers.
NOTICE: Termux may be unstable on Android 12+. Android OS will kill any (phantom) processes greater than 32 (limit is for all apps combined) and also kill any processes using excessive CPU. You may get [Process completed (signal 9) - press Enter] message in the terminal without actually exiting the shell process yourself. Check the related issue #2366, issue tracker, phantom cached and empty processes docs and this TLDR comment on how to disable trimming of phantom and excessive cpu usage processes. A proper docs page will be added later. An option to disable the killing should be available in Android 12L or 13, so upgrade at your own risk if you are on Android 11, specially if you are not rooted.
The core Termux app comes with the following optional plugin apps.
Latest version is v0.118.3.
NOTICE: It is highly recommended that you update to v0.118.0 or higher ASAP for various bug fixes, including a critical world-readable vulnerability reported here. See below for information regarding Termux on Google Play.
Termux can be obtained through various sources listed below for only Android >= 7 with full support for apps and packages.
Support for both app and packages was dropped for Android 5 and 6 on 2020-01-01 at v0.83, however it was re-added just for the app without any support for package updates on 2022-05-24 via the GitHub sources. Check here for the details.
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.
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.
The F-Droid app often may not notify you of updates and you will manually have to do a pull down swipe action in the Updates tab of the app for it to check updates. Make sure battery optimizations are disabled for the app, check https://dontkillmyapp.com/ for details on how to do that.
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.
Termux application can be obtained on GitHub either from GitHub Releases for version >= 0.118.0 or from GitHub Build Action workflows. For android >= 7, only install apt-android-7 variants. For android 5 and 6, only install apt-android-5 variants.
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. Note that for action workflows, you need to be logged into a GitHub account for the Artifacts links to be enabled/clickable. If you are using the GitHub app, then make sure to open workflow link in a browser like Chrome or Firefox that has your GitHub account logged in since the in-app browser may not be logged in.
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.
Security warning: APK files on GitHub are signed with a test key that has been shared with community. This IS NOT an official developer key and everyone can use it to generate releases for own testing. Be very careful when using Termux GitHub builds obtained elsewhere except https://github.com/termux/termux-app. Everyone is able to use it to forge a malicious Termux update installable over the GitHub build. Think twice about installing Termux builds distributed via Telegram or other social media. If your device get caught by malware, we will not be able to help you.
The test key shall not be used to impersonate @termux and can't be used for this anyway. This key is not trusted by us and it is quite easy to detect its use in user generated content.
Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
There is currently a build of Termux available on Google Play for Android 11+ devices, with extensive adjustments in order to pass policy requirements there. This is under development and has missing functionality and bugs (see here for status updates) compared to the stable F-Droid build, which is why most users who can should still use F-Droid or GitHub build as mentioned above.
Currently, Google Play will try to update installations away from F-Droid ones. Updating will still fail as sharedUserId has been removed. A planned 0.118.1 F-Droid release will fix this by setting a higher version code than used for the PlayStore app. Meanwhile, to prevent Google Play from attempting to download and then fail to install the Google Play releases over existing installations, you can open the Termux apps pages on Google Play and then click on the 3 dots options button in the top right and then disable the Enable auto update toggle. However, the Termux apps updates will still show in the PlayStore app updates list.
If you want to help out with testing the Google Play build (or cannot install Termux from other sources), be aware that it's built from a separate repository (https://github.com/termux-play-store/) - be sure to report issues there, as any issues encountered might very well be specific to that repository.
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.
All community links are available here.
The main ones are the following.
RUN_COMMAND intentVTE (libvte): Terminal emulator widget for GTK+, mainly used in gnome-terminal. Source, Open Issues, and All (including closed) issues.
iTerm 2: OS X terminal application. Source, Issues and Documentation (which includes iTerm2 proprietary escape codes).
Konsole: KDE terminal application. Source, in particular tests, Bugs and Wishes.
hterm: JavaScript terminal implementation from Chromium. Source, including tests, and Google group.
xterm: The grandfather of terminal emulators. Source.
Connectbot: Android SSH client. Source
Android Terminal Emulator: Android terminal app which Termux terminal handling is based on. Inactive. Source.
You can help debug problems of the Termux app and its plugins by setting appropriate logcat Log Level in Termux app settings -> <APP_NAME> -> Debugging -> Log Level (Requires Termux app version >= 0.118.0). The Log Level defaults to Normal and log level Verbose currently logs additional information. Its best to revert log level to Normal after you have finished debugging since private data may otherwise be passed to logcat during normal operation and moreover, additional logging increases execution time.
The plugin apps do not execute the commands themselves but send execution intents to Termux app, which has its own log level which can be set in Termux app settings -> Termux -> Debugging -> Log Level. So you must set log level for both Termux and the respective plugin app settings to get all the info.
Once log levels have been set, you can run the logcat command in Termux app terminal to view the logs in realtime (Ctrl+c to stop) or use logcat -d > logcat.txt to take a dump of the log. You can also view the logs from a PC over ADB. For more information, check official android logcat guide here.
Moreover, users can generate termux files stat info and logcat dump automatically too with terminal's long hold options menu More -> Report Issue option and selecting YES in the prompt shown to add debug info. This can be helpful for reporting and debugging other issues. If the report generated is too large, then Save To File option in context menu (3 dots on top right) of ReportActivity can be used and the file viewed/shared instead.
Users must post complete report (optionally without sensitive info) when reporting issues. Issues opened with (partial) screenshots of error reports instead of text will likely be automatically closed/deleted.
Off - Log nothing.Normal - Start logging error, warn and info messages and stacktraces.Debug - Start logging debug messages.Verbose - Start logging verbose messages.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. Termux app and plugin specific classes must be added under com.termux.shared.termux package and general classes outside it. The termux-shared LICENSE must also be checked and updated if necessary when contributing code. The licenses of any external library or code must be honoured.
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.
The versionName in build.gradle files of Termux and its plugin apps must follow the semantic version 2.0.0 spec in the format major.minor.patch(-prerelease)(+buildmetadata). When bumping versionName in build.gradle files and when creating a tag for new releases on GitHub, make sure to include the patch number as well, like v0.1.0 instead of just v0.1. The build.gradle files and attach_debug_apks_to_release workflow validates the version as well and the build/attachment will fail if versionName does not follow the spec.
Commit messages must use the Conventional Commits spec so that chagelogs as per the Keep a Changelog spec can automatically be generated by the create-conventional-changelog script, check its repo for further details on the spec. The first letter for type and description must be capital and description should be in the present tense. The space after the colon : is necessary. For a breaking change, add an exclamation mark ! before the colon :, so that it is highlighted in the chagelog automatically.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Only the types listed below must be used exactly as they are used in the changelog headings. For example, Added: Add foo, Added|Fixed: Add foo and fix bar, Changed!: Change baz as a breaking change, etc. You can optionally add a scope as well, like Fixed(terminal): Fix some bug. Do not use anything else as type, like add instead of Added, etc.
TermuxConstants javadocs for instructions on what changes to make in the app to change package name.TermuxConstants from termux-shared library and have hardcoded com.termux values and will need to be manually patched.

GitHub Secure Open Source Fund (1, 2)

NLnet NGI Mobifree (1, 2)

Cloudflare (1)
Edit: well, it's also very slow unfortunately. I believe iPhone CPUs either don't support virtualisation or they don't expose it (edit #2: it's the latter). Either way, QEMU is struggling quite a bit, and due to it being a GUI it's even slower than what iSH could do