Möbius OS

← All apps

Reflection

While you sleep, Möbius learns from recent work, improves its own approach, anticipates what may help next, and leaves a one-page morning brief.

Reads offline Runs daily Reads other apps (read)
v2.8.1 by mobius-os MIT Source ↗ ★ 0 updated 2026-07-17

Install

Open the App Store mini-app in your Möbius shell and paste:

https://raw.githubusercontent.com/mobius-os/app-reflection/main/mobius.json

Möbius shows the requested permissions and the cron schedule, then installs.

Manifest

Show mobius.json
{
  "id": "reflection",
  "name": "Reflection",
  "version": "2.8.1",
  "description": "While you sleep, Möbius learns from recent work, improves its own approach, anticipates what may help next, and leaves a one-page morning brief.",
  "author": "mobius-os",
  "license": "MIT",
  "homepage": "https://github.com/mobius-os/app-reflection",
  "entry": "index.jsx",
  "icon": "icon.png",
  "offline_capable": true,
  "permissions": {
    "cross_app_access": "read",
    "share_with_apps": "none",
    "chat_log_access": "summary"
  },
  "storage_seeds": {
    "settings.json": {
      "hour": 6,
      "minute": 0,
      "timezone": null,
      "cron": "0 6 * * *",
      "exclude_apps": [],
      "provider": null,
      "model": null,
      "primary_agent_mode": "system",
      "secondary_agent_mode": "system",
      "fallback_provider": null,
      "fallback_model": null,
      "verbosity": "standard",
      "focus": null,
      "avoid": null
    }
  },
  "offline": {
    "reads": true,
    "writes": "queued",
    "execution": "none",
    "reads_detail": "The reports list, each opened brief body, and the streak/state are read through window.mobius.storage (list/getText/get), so they render offline from the runtime read-through cache. A brief opens offline after it has been opened once online (its body is mirrored on that read)."
  },
  "schedule": {
    "default": "0 6 * * *",
    "user_configurable": true,
    "job": "fetch.sh"
  },
  "runtime": {
    "imports": [
      "react",
      "react-dom"
    ],
    "esm_deps": []
  },
  "embeds_agent": true,
  "source_files": [
    "reflection_runner.py",
    "resource_monitor.py",
    "constants.js",
    "theme.js",
    "domain.js",
    "providers.js",
    "storage.js",
    "ui/ChatBubbleIcon.jsx",
    "ui/ChatPanel.jsx",
    "ui/ReportQuestions.jsx",
    "ui/ReportDetail.jsx",
    "ui/StreakBar.jsx",
    "ui/ReportsList.jsx",
    "ui/LastNightStatus.jsx",
    "ui/EffortStepper.jsx",
    "ui/ModelPicker.jsx",
    "ui/SettingsTab.jsx"
  ]
}

Feedback

Something feel off, or want to suggest an iteration? Open an issue at app-reflection/issues — the app's maintainer reads them.