a-Shell 17+

Local interactive terminal

Nicolas Holzschuch

    • Free



Local iOS terminal, with Python, Lua, Perl, C, C++, TeX (texlive 2022), sh and many Unix utilities.
Perfect for programming locally on iPhones and iPads.

a-Shell is a complete local terminal emulator, allowing to run most Unix commands on you iOS device. You can transfer files using scp and curl, edit them with vim and ed, process them using grep, awk and sed. You can work with git repositories using lg2.

a-Shell includes Python, Lua, Perl, JavaScript, C, C++ for programming and TeX (texlive 2022, with Tikz and LuaTeX) for text processing.

There are also multiple network utilities: nslookup, ping, whois, ifconfig... Type help for help, help -l to get the full list of commands.

a-Shell can be controlled from Shortcuts: run commands in order, process files in a-Shell, get the results as text or files, transfer files to other apps...

a-shell uses iOS 13+ “multiple windows” ability, so you can run multiple shells at the same time, with different commands, in different directories. You can edit a file in one window with vim and process it in the other with python.

Compile your C or C++ programs to webAssembly using clang or clang++, and execute the resulting binary. A complete webAssembly SDK is included (WASI-libc).

a-Shell is the complete version. If you need a smaller app, and you don't need a C compiler, a TeX engine, or numpy and matplotlib, there is a-Shell mini.

What’s New

Version 1.9.2

Everything from 1.9.0:
- ability to execute shell scripts: a-Shell now includes "dash", which can run shell scripts. It can also run in interactive mode.
- prompt customization: tired of seeing just "$ "? redefine the PS1 environment variable with bash-like syntax (\u, \w, \t...) and have it your way.
- TeX: texlive has been upgraded to texlive 2022, and you can now run TeX files with TikZ graphics.

...plus a lot of bug fixes (vim, dash, export, TeX, perl), you can now run multiple dash commands, and vim has "VimShell" if you want to run a terminal inside Vim.

Ratings and Reviews

4.6 out of 5
222 Ratings

222 Ratings

stl5n0 ,

The future is now, old man

Using terminal to process Magic Lantern (look it up 😉) files and videos with ffmpeg and other CLI programs taught me the basics of terminal commands, coding, etc., but the ability to sit here 10 years later and run processes on my iPhone that required a $1500 iMac back then makes my special parts tingle. Thanks for creating this app, you the moth@fúckíń man.

One question, though. How would one go about updating the native ffmpeg to the latest release on an iPhone Xr? Looks like ffmpeg 5.0 Lorentz is the latest release, and the native a-shell ffmpeg version says 4.4. Thanks.

RSnake ,

Pretty cool, but missing some features

It would be nice to be able to have a bashrc or something that allows you to control prompts, and a ps and kill functionality and screen, etc…. for batch jobs. But the really odd thing is hitting a button (other than space and enter keys for some reason) won’t repeat the character - that’s super annoying in vim for instance, because it means you have to do some funky things just to move the cursor around at any sort of speed. [EDIT: The developer said there’s a setting to use the cap’s lock as an escape key that if you disable, allows you to get this feature. For those who don’t know you can use control-[ to get an escape char too.] But overall really cool/useful. Even with a lack of wget (not a fan of curl), you can do pip install wget then python -m wget <site> and poof.

Developer Response ,

If you activate "caps-lock as escape" in the App settings, you also get auto-repeat for keys. It's pretty useful for Vim, I agree, but incompatible with multi-char input.

Coffeenobagel ,

Great app but hamstrung by ios?

Thanks for creating Carnets and a-shell. They’ve both been essential for iOS programming. However, it seems that every app is restricted to accessing and modifying files that are only within their own respective directories? I can’t seem to cd my way into another folder that resides in the Carnets folder and vice versa (because Carnets doesn’t have its own terminal, for example) And secondly, there seems to be a problem when trying to install sklearn in a-shell. It keeps throwing up the error “setuptools not found” but when I pip install setuptools, it says that “requirement already fulfilled” and I have been able to use setuptools when making packages before so it seems that it is there but I can’t install sklearn? I’m not sure what can be done. Apologies if I’m doing something wrong. Thanks.

Developer Response ,

Use "pickFolder" to select a working directory in another app.

App Privacy

The developer, Nicolas Holzschuch, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy.

Data Not Collected

The developer does not collect any data from this app.

Privacy practices may vary, for example, based on the features you use or your age. Learn More

More By This Developer

You Might Also Like

Developer Tools
Developer Tools
Developer Tools
Developer Tools
Developer Tools
Developer Tools