v1.0.0 · bash · zero dependencies to start

Build. Ship. Done.

One small CLI wraps the whole Tahweel build & release flow. Firebase distribution, Shorebird production, deep cleans, taskboard — all from tahweel, runnable from anywhere.

~ zsh
$ curl -fsSL https://gist.githubusercontent.com/itsTowhid/b3480287bb8c243360f6802f9efd261a/raw/install.sh | bash

installs to ~/.tahweel/bin · adds itself to PATH · then just tahweel help

Commands

Four verbs. Whole release cycle.

No memorized flag soup, no "which folder was I in". Every command works from anywhere once it knows your project directory — and it asks exactly once.

tahweel build FIREBASE

Test builds straight to Firebase App Distribution. Stage or prod flavor, testers picked by flag, release notes required — so nobody ships a mystery APK.

$ tahweel build --notes "Fixed OTP retry crash"
$ tahweel build --prod --boss --notes "Card freeze fix"

tahweel clean DEEP CLEAN

From a quick flutter clean to the full iOS exorcism: DerivedData, Pods, pod reinstall. The fix-it button for "works on my machine".

$ tahweel clean all   # flutter + pod clean
$ tahweel clean       # flutter clean

tahweel tasks TASKBOARD

The GCB Status taskboard without leaving the terminal. Log in once — only the session cookie is stored, never your password.

$ tahweel tasks    # active / pending tasks list
$ tahweel status   # available|offline view or update
Live look

A build, start to finish.

Build numbers live in Firebase Realtime Database, per flavor + version — and only advance after a successful upload. Fail early, retry cheap, no burned numbers.

tahweel build — stage
$ tahweel build --notes "Fixed OTP retry crash"
▸ project ~/work/tahweel · flavor stage · version 2.4.1 (147)
flutter build apk --flavor stage — 2m 41s
uploaded to Firebase App Distribution — testers
build number advanced 147 → 148 (after upload, not before)
done. release notes: "Fixed OTP retry crash"
Small details, big saves

Built for the boring failures.

The stuff that eats an afternoon — handled.

📍 Asks for your project once First run saves the directory to ~/.config/tahweel. Run from inside the project and it saves it automatically. Change it anytime with tahweel dir set.
🔢 Build numbers that can't lie Stored per flavor + version in Firebase RTDB, advanced only after a successful upload. A failed build never burns a number.
⬆️ One-line updates tahweel update pulls the latest. Need to pin? tahweel update <sha> targets an exact Gist revision.
Get it

Your terminal is already open.

One paste. New terminal. tahweel help.

~ zsh
$ curl -fsSL https://gist.githubusercontent.com/itsTowhid/b3480287bb8c243360f6802f9efd261a/raw/install.sh | bash