Skip to main content

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
  1. Smart auto-detect – finds if __name__ == "__main__", def main(), Flask/FastAPI, Kivy, pygame, index.html, etc. No forced main.py.
  2. Works anywhere – uses os.getcwd(), auto git init, handles /sdcard/ permissions.
  3. Zero heavy tooling on device – local CLI is tiny. GitHub Actions (with Buildozer) does the APK build.
  4. Three outputs in ~5–15 min:
    • bin/*.apk → GitHub Releases
    • dist/*.whl → PyPI (if you set PYPI_TOKEN secret)
    • 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)

  1. Install Git + GitHub CLI (or configure SSH / PAT).
  2. Create an empty GitHub repo (or let Shipit push to an existing remote).
  3. (Optional) Add repository secret PYPI_TOKEN for automatic PyPI upload.
  4. (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.js for 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_TOKEN secret.
  • 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)

Uploaded Source

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

Hashes for shipit_os-0.1.0.tar.gz
Algorithm Hash digest
SHA256 10031bb25ee0e4f3f539d78e73f8de3b1e315faab828607d493353bd7b07aa34
MD5 e513e1e7df480b3f9edfefc5122ccdf0
BLAKE2b-256 0fe6b8e758fea2bdb51a249522ad1d41ebd32e584bdb8139d568eb0330a91a83

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page