This article explains what the app does, how it is built, what it deliberately does not claim, and where it still falls short.
The problem we wanted to solve
Simple terminal apps on Android give you little more than the phone's built-in shell, and earlier versions of Zishu Terminal were no different. That shell has basic commands such as ls and cat, but no Git, no modern Python, no compiler and no way to install them.
Developers, students and tinkerers who wanted to write a script, clone a repository, run a small Node.js server or compile a C program on their phone ran into the same wall: the tools simply were not there.
Zishu Terminal started from one rule: if the app shows a tool, that tool has to be the real thing, running on the device.
What Zishu Terminal is
Zishu Terminal is an Android app with its own terminal interface, sessions, command history, file manager, text editor and themes. On first launch it offers to download a Linux environment of about 61 MB, and after that the terminal runs a real bash shell.
#!/bin/bash scripts, plus nano, grep, sed, tar, gawk and the usual utilitiesWe tested these on a real phone: a C program compiled with clang and run, a CMake project built and run, npm install fetched a package and require() loaded it, and Git created commits.
A real package manager
The pkg command is backed by apt and dpkg, the same tools used by Debian-style systems. It installs, updates, searches and removes real packages:
pkg update
pkg install nodejs-lts npm
pkg install clang make cmake
pkg search git
pkg uninstall make
Packages come from our own repository, published on GitHub Pages. The repository is signed with a dedicated GPG key, and the app trusts only that key, so a package that was not signed by us is rejected. Downloads are verified before anything is installed.
How it works under the hood
Prebuilt Linux binaries for Android hard-code the install path of the app they were built for, so they cannot simply be copied into another app. Zishu Terminal therefore builds its own packages with its own install path, /data/data/com.zishu.terminal/files/usr.
- A GitHub Actions workflow builds the packages from source for 64-bit ARM, using the open-source Termux build scripts.
- The workflow assembles a bootstrap archive with the base system and publishes it as a GitHub Release.
- The app pins the archive's SHA-256 checksum. On first launch it downloads the archive, verifies the checksum, and refuses to install on a mismatch.
- The app unpacks the files, runs the packages' setup scripts and checks that bash starts before it marks the install as successful.
- From then on,
pkgpulls extra packages from the signed repository.
One technical choice is worth explaining. Android 10 and newer block running programs from an app's data folder for apps that target new Android versions. Zishu Terminal targets an older Android API level so that these tools can run. This is the same trade-off other on-device terminals make, and it is why the app is distributed as an APK from our own channels and not through Google Play.
Honest by design
The Tools and Doctor screens look for each program in the real install folder and report what they find. A tool is marked installed only when its file exists. If it is missing, the screen says so and shows the command that installs it, for example pkg install nodejs-lts.
Where something is not available, the app says that too. Java, for instance, is listed as not available yet, because no Java package exists in our repository.
Privacy and security
Zishu Terminal has no ads, no analytics libraries and no tracking. It does not send your commands, files or personal data to us.
The app uses the internet only to download the Linux environment and packages, and for programs you run yourself, such as curl, Git or npm. Your files, history and settings stay in the app's private storage on your phone unless you back them up yourself.
On the security side, the first download is checked against a pinned SHA-256 checksum, and packages must be signed with the project's own key. We publish a privacy statement in the project repository.
Credits and open source
The app, its interface, screens and commands are original work by ZISHU TRON. The Linux packages are built from the termux-packages build scripts of the Termux project, and we credit that project for its work. Zishu Terminal is an independent app and is not affiliated with or endorsed by Termux.
Every package keeps its own open-source license. Examples are GPL for bash and Git, the PSF license for Python, MIT for Node.js and BSD-style licenses for OpenSSH. For software under the GPL, the corresponding source is available through the build scripts and upstream sources, and the project repository lists the licenses and source locations in its notice files.
Who it is for
- Students who want to learn the command line, Python or C on the device they carry every day.
- Developers who need to check a repository, run a script or fix a small problem away from a laptop.
- Tinkerers who want to try Node.js, write a quick tool in C, or connect to a server over SSH.
- Anyone who wants a terminal whose Tools screen shows what is really installed.
A typical session might clone a Git repository, install dependencies with npm install or pip install, run the code, and compile a small C or C++ program with clang and make.
Limitations today
We would rather state these plainly than have you find them later.
- The Linux environment currently supports 64-bit ARM (arm64-v8a) phones only. A 32-bit build is not available yet.
- The first setup needs an internet connection, a download of about 61 MB and roughly 600 MB of free storage. Large packages such as clang need more.
- Java and the JDK are not available yet.
- Some Python or npm packages that need extra system libraries may not build on the device.
- The app is not on Google Play, because it relies on an older Android target to run native tools.
- The Android system can stop long background tasks to save battery, as it does for any app.
Getting started
- Download the APK and install it. Android may ask you to allow installs from your browser or file manager.
- Open the app. When it offers to download the Linux environment, tap Download now and keep the app open.
- When it says the environment is ready, you are in a real bash shell. Try
python3 --versionorgit --version. - Install more with
pkg install <name>, for examplepkg install nodejs-lts npmorpkg install clang make cmake.
If you tap Later, you can start the download at any time by typing zbootstrap install.
What comes next
The next steps we are looking at are a 32-bit ARM build of the Linux environment and more packages in the repository, such as a Java toolchain. We will announce them when they are built and tested on real devices, and not before.
Zishu Terminal is built by ZISHU TRON. If you try it, tell us what worked and what did not. Honest feedback decides what we build next.
