Reflow GitHub

Your home screen is a file.

Reflow is an Android launcher whose whole layout lives in one file, launcher.json. Rearrange apps on your phone and the file updates. Edit the file on your computer, or let an agent edit it, and the phone updates.

launcher.jsonTap an app on the phone, then an empty cell.

    
9:41Home

Both sides are the same layout. Change either one and the other reflows.

How it works

One file, edited from wherever you are.

Arrange it on the phone

Long-press, drag, drop. The launcher writes every change back to launcher.json in its canonical form, so your diffs stay clean.

Edit it on your computer

Keep the folder in git. Pull, edit the JSON, run scripts/validate.py, push. A git app on the phone syncs it and the home screen follows.

Hand it to an agent

The schema is published and the rules are written down, so an AI agent can arrange your apps for you. You review the change like any other commit.

What it asks for

One folder. Nothing else.

You pick a folder with Android's own folder picker, and Reflow reads and writes only launcher.json and its own .configlauncher/ notes inside it. You can revoke that access whenever you like.

  • No storage permission, no QUERY_ALL_PACKAGES, no Accessibility service.
  • No internet fetches. Widgets show data your agent writes into the folder.
  • Android 10 and later, built with Kotlin and Jetpack Compose.
  • Same rules everywhere. The validator on your computer reports the same errors, in the same words, as the phone.
Keep it in git

Your layout gets a history.

Git is the recommended way to sync. The phone commits its own edits through a git app, so pull before you change anything.

Every layout you've ever had is a commit away.

# every time
git pull --rebase
# edit launcher.json, then
python3 scripts/validate.py --format launcher.json
git commit -am "Move Camera to the dock"
git push