The in-Möbius browser for discovering, installing, and updating
Möbius mini-apps. Lives at github.com/mobius-os/app-store.
A Möbius mini-app whose job is to install other Möbius mini-apps.
It pulls a curated catalog from the mobius-os organization and
can also install any public manifest URL — paste the URL, preview
the manifest, confirm permissions, install.
The store is meta: it's an app whose Install button hits the
atomic POST /api/apps/install endpoint with a manifest URL or
manifest preview. The backend fetches the entry file, compiles it,
seeds storage, uploads the icon, writes the editable source tree,
and registers any cron schedule as one transaction.
The first time a Möbius container boots, the entrypoint script
clones github.com/mobius-os/app-store and installs it via the
standard manifest install path — same code path users will trigger
from inside the store later. After that bootstrap, the store can
update itself + install any number of community apps.
See Möbius ticket 061 for the bootstrap details.
The default catalog is a hardcoded list of mobius-os/app-* repos
in index.jsx's CATALOG constant. On Browse-view mount, the
store fetches each entry's mobius.json from raw.githubusercontent.com
and displays live name/description/version straight from the repo.
Manifest id == repo name minus the app- prefix == lowercased display name; renames set previous_id so installs migrate in place rather than duplicating.
- Publish your app as
mobius-os/app-<id>(public, MIT or compatible). Repo must contain a validmobius.jsonper the manifest spec. - Submit a PR to this repo adding an entry to
CATALOGinindex.jsx.
If you don't want PR-curation, that's fine too — anyone can install
your app from a mobius.json URL using the From URL tab,
no PR required.
The store requests only manage_apps: true so it can install
apps. It does not request cross_app_access — seeding storage
into a newly-installed app's own scope is done server-side by the
installer, so the store never needs cross-app write. It also does
not request share_with_apps (other apps cannot read the store's
storage).
MIT — see LICENSE.