How can I install a Termux-like terminal app for iOS?

I would like an equivalent to Termux on iOS. It should in some way emulate a Linux command line with a full range of installable packages like apt and ideally even run Linux (as with Andronix), and be about as fast as the phone’s hardware normally allows.

There is iSH but for some reason I find it quite slow, I don’t know if it’s built in some fundamentally different way than Termux.

Is there a good option for this (willing to jailbreak if necessary)?


Solution 1:

Yes, there are

  • LibTerm available under MIT on GitHub
  • a-shell available under 3-Clause BSD on GitHub (These two doesn't differ from iSH much behind the scene, I guess but you can see some difference)

If you jailbreak there are lot other option like MTerminal, NewTerm etc.

And lastly, projects are underway to port Linux on iPhone, see Project Sandcastle. PMOS (their wiki) and Ubuntu are known to boot on iPhone 7.

Solution 2:

To answer the question "why" (is there no equivalent to termux on iOS): iOS places more restrictions on binaries that can be executed or loaded. It's not enough to cross-compile, the binaries also need to be signed with the developer certificate and placed in a directory that can only be accessed when the app is written on the phone. So you just cannot add new executables to an existing app on a non-jailbroken iPhone.

iSH works around this limitation by loading x86 binaries, that are executed using their x86 emulator. The good part is that anything can be installed, the not-so-good part is that the emulator can be slow.

a-Shell (and before it OpenTerm, and also Libterm) work around this limitation by having all the commands written when the app is installed on the phone. So you have a lot of commands, and they're fast, but you cannot add more commands (full disclosure: I'm the author of a-Shell, and contributed a lot to OpenTerm).