Shipit OS
One command to ship ANY folder → APK + PyPI + GitHub Pages.
No SDK. No NDK. No setup.
Built for people who code on their phone in Acode / Termux / /sdcard/ and just want to ship.
pip install shipit-os
cd /sdcard/Download/MyGame
shipit
What it does
%echo% buildprocess shipit
[*] Target: /sdcard/AcodeProjects/RetroGame
[*] Scanning...
[✓] Found entry: game.py → main (confidence 85%)
[*] Bypassing local SDK/NDK...
[*] Uploading payload to cloud builder...
[✓] Build started: github.com/you/RetroGame/actions
[✓] Done. APK → Releases | Site → you.github.io/RetroGame
- Smart auto-detect – finds
if __name__ == "__main__",def main(), Flask/FastAPI, Kivy, pygame,index.html, etc. No forcedmain.py. - Works anywhere – uses
os.getcwd(), autogit init, handles/sdcard/permissions. - Zero heavy tooling on device – local CLI is tiny. GitHub Actions (with Buildozer) does the APK build.
- Three outputs in ~5–15 min:
bin/*.apk→ GitHub Releasesdist/*.whl→ PyPI (if you setPYPI_TOKENsecret)- Live site →
username.github.io/repo
Install
pip install shipit-os
Commands
| Command | Meaning |
|---|---|
shipit |
Full ship (APK + wheel + Pages) |
shipit apk |
APK only |
shipit pip |
Wheel only |
shipit pages |
GitHub Pages only |
shipit status |
Show Actions / Releases / Pages links |
shipit clean |
Remove local bin/, dist/, .buildozer |
shipit detect |
Only scan & print entry point |
shipit --entry Euler.py |
Force a specific entry file |
shipit --remote https://github.com/you/repo.git |
Set remote in one go |
shipit --dry-run |
Generate workflow, don’t push |
First-time setup (once per machine)
- Install Git + GitHub CLI (or configure SSH / PAT).
- Create an empty GitHub repo (or let Shipit push to an existing remote).
- (Optional) Add repository secret
PYPI_TOKENfor automatic PyPI upload. - (Optional) Enable GitHub Pages in repo settings → Source: GitHub Actions.
Then from any project folder:
shipit
How the cloud build works
Shipit writes .github/workflows/ship.yml and pushes it. The workflow:
- Builds a wheel (if packaging metadata exists)
- Runs Buildozer on Ubuntu to produce an Android APK
- Deploys a simple (or your existing) site to GitHub Pages
- Uploads the APK as a GitHub Release asset
You never install the Android SDK/NDK on your phone.
Project detection
Shipit looks for (in order of preference):
- Files containing
if __name__ == "__main__"+def main() - Flask / FastAPI / Kivy / pygame apps
- Well-known names:
main.py,app.py,game.py,run.py index.html/game.jsfor pure web projects
Override any time with --entry.
Limitations (v0.1)
- APK builds currently assume a Kivy-friendly layout (or you supply your own
buildozer.spec). Pure console scripts will need a thin Kivy/Android entry later. - First Buildozer run on GitHub Actions can take 10–20 minutes (cached afterwards).
- PyPI publish requires you to set the
PYPI_TOKENsecret. - You still need a GitHub account and a repo.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
shipit_os-0.1.0.tar.gz
(15.8 kB
view details)
File details
Details for the file shipit_os-0.1.0.tar.gz.
File metadata
- Download URL: shipit_os-0.1.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10031bb25ee0e4f3f539d78e73f8de3b1e315faab828607d493353bd7b07aa34
|
|
| MD5 |
e513e1e7df480b3f9edfefc5122ccdf0
|
|
| BLAKE2b-256 |
0fe6b8e758fea2bdb51a249522ad1d41ebd32e584bdb8139d568eb0330a91a83
|