[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-78511":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":19,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":24,"discoverSource":25},78511,"mobilecode","Harzva\u002Fmobilecode","Harzva","MobileCode - AI coding workspace for mobile devices",null,"Dart",129,7,2,1,0,39.71,false,"last",true,[],"2026-06-12 04:01:23","# MobileCode\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"mobile_agent\u002Fassets\u002Ficons\u002Fmobilecode-logo.svg\" alt=\"MobileCode logo\" width=\"96\">\n  \u003Cbr \u002F>\n  \u003Cstrong>Phone-native AI Coding Harness\u003C\u002Fstrong>\n  \u003Cbr \u002F>\n  The agent harness runs on the phone. Models can be remote; the coding loop, files, previews, runtime routing, and shipping controls stay in MobileCode.\n  \u003Cbr \u002F>\n  不是远程 IDE 的手机壳，而是真正把 agent loop、工具状态、文件、预览和发布控制面放到手机本机的 MobileCode。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fmobile-runtime-ci.yml\">\u003Cimg alt=\"Mobile Runtime CI\" src=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fmobile-runtime-ci.yml\u002Fbadge.svg?branch=last\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fandroid-apk.yml\">\u003Cimg alt=\"Android APK\" src=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fandroid-apk.yml\u002Fbadge.svg?branch=last\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fandroid-app-test.yml\">\u003Cimg alt=\"Android Smoke\" src=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fandroid-app-test.yml\u002Fbadge.svg?branch=last\">\u003C\u002Fa>\n  \u003Cimg alt=\"Version\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-v0.1.46--last-2555FF\">\n  \u003Cimg alt=\"Platform\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Android%20%7C%20Flutter-0B9B7E\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fassets\u002Fmobilecode-short-teaser.mp4\">\u003Cstrong>Watch 15s Short\u003C\u002Fstrong>\u003C\u002Fa>\n  ·\n  \u003Ca href=\"docs\u002Fassets\u002Fmobilecode-promo-vertical.mp4\">\u003Cstrong>Watch 9:16 Promo Video\u003C\u002Fstrong>\u003C\u002Fa>\n  ·\n  \u003Ca href=\"docs\u002Fassets\u002Fmobilecode-readme-cover.mp4\">README Motion Cover\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fmobilecode-principle-video.html\">HTML Principle Video\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Freleases\u002Fdownload\u002Fv0.1.46-last\u002Fmobilecode-v0.1.46-last.apk\">Download v0.1.46-last APK\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002F\">GitHub Pages Demo\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002F\">Demo Lab\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fdemo\u002F2048\u002F\">2048 Demo\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fgithub-test\u002F\">GitHub Test\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Freleases\">Download APK\u003C\u002Fa>\n  ·\n  \u003Ca href=\"docs\u002Fmobilecode-release-qa.md\">Release QA\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002F\">\n    \u003Cimg src=\"docs\u002Fassets\u002Fmobilecode-readme-showcase.svg\" alt=\"MobileCode phone-native AI coding harness workflow\" width=\"960\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fmobilecode-principle-video.html\">\n    \u003Cimg src=\"docs\u002Fassets\u002Fmobilecode-short-poster.png\" alt=\"MobileCode 15-second Remotion teaser cover\" width=\"960\">\n  \u003C\u002Fa>\n  \u003Cbr>\n  \u003Csub>15-second Remotion teaser with voiceover. Full explainer covers demand, pain, RuntimeProvider, and GitHub-first shipping.\u003C\u002Fsub>\n\u003C\u002Fp>\n\n## Last Branch Visual Proof\n\nThe latest `last` branch showcase assets are stored in `app\u002Fpublic\u002Fshowcase\u002F`, so README and GitHub Pages reference the same repo-owned PNG and MP4 instead of private local paths.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"app\u002Fpublic\u002Fshowcase\u002Fmobilecode-last-mobile-preview.png\" alt=\"MobileCode Mcode Loong visual identity board\" width=\"960\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cvideo src=\"app\u002Fpublic\u002Fshowcase\u002Fmobilecode-last-walkthrough.mp4\" width=\"360\" controls muted playsinline>\n    \u003Ca href=\"app\u002Fpublic\u002Fshowcase\u002Fmobilecode-last-walkthrough.mp4\">Watch MobileCode last branch walkthrough MP4\u003C\u002Fa>\n  \u003C\u002Fvideo>\n  \u003Cbr>\n  \u003Csub>If your Markdown viewer does not embed video, open \u003Ca href=\"app\u002Fpublic\u002Fshowcase\u002Fmobilecode-last-walkthrough.mp4\">mobilecode-last-walkthrough.mp4\u003C\u002Fa>.\u003C\u002Fsub>\n\u003C\u002Fp>\n\n| Runs on the phone | Remote by choice | GitHub-first shipping |\n| --- | --- | --- |\n| Agent trace, tool selection, runtime routing, local files, WebView preview, result cards | Model provider, optional Cloud Runtime, external Termux\u002FHelper backends | Repo discovery, Contents API commits, Pages publish, Actions builds, release artifacts |\n\n## Why MobileCode\n\nMobileCode 的第一性原理很简单：手机端不适合塞一个完整桌面编译环境，但非常适合成为 AI coding 的本机 harness。\n\n它不是 Codex Remote、Claude Remote 或云端 IDE 的移动端外壳。模型可以来自云端 provider，但对话、工具编排、运行时选择、文件落盘、WebView 预览、GitHub 发布和恢复提示都在手机 App 内闭环。\n\n它把最重的部分交给外部平台，把最贴近用户的部分留在手机上：\n\n| Layer | MobileCode does | External layer does |\n| --- | --- | --- |\n| Phone-native harness | Chat, tool trace, role cards, file cards, preview, runtime diagnostics, settings | None |\n| Local runtime | Helper \u002F Termux \u002F WebViewOnly through `RuntimeProvider` | Shell, logs, small local tasks |\n| GitHub-first workspace | Repo Hub, watchlist, remote-linked folders, Pages publish cards | Repos, Contents API commits, Actions builds, artifacts |\n| Web artifacts | Generate HTML, run publish readiness checks, open browser\u002FWebView | GitHub Pages hosting |\n| Heavy builds | Show workflow status, jobs, artifacts | GitHub Actions APK\u002FWeb\u002Frelease builds |\n\n## Effect Showcase\n\nThese thumbnails are generated from the live GitHub Pages demos with `just-thumbnail`, so the README shows rendered pages rather than mock claims.\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd width=\"33%\">\n      \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002F\">\n        \u003Cimg src=\"docs\u002Fassets\u002Fthumb-demo-lab\u002Fresponsive.png\" alt=\"MobileCode Demo Lab responsive preview\">\n      \u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Demo Lab\u003C\u002Fstrong>\n      \u003Cbr>\n      Product landing and demo index published on GitHub Pages.\n    \u003C\u002Ftd>\n    \u003Ctd width=\"33%\">\n      \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fdemo\u002F2048\u002F\">\n        \u003Cimg src=\"docs\u002Fassets\u002Fthumb-2048\u002Fresponsive.png\" alt=\"MobileCode 2048 responsive preview\">\n      \u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>2048 Web\u003C\u002Fstrong>\n      \u003Cbr>\n      Touch-first generated HTML game for mobile WebView checks.\n    \u003C\u002Ftd>\n    \u003Ctd width=\"33%\">\n      \u003Ca href=\"https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fgithub-test\u002F\">\n        \u003Cimg src=\"docs\u002Fassets\u002Fthumb-github-test\u002Fresponsive.png\" alt=\"MobileCode GitHub Test responsive preview\">\n      \u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>GitHub Test\u003C\u002Fstrong>\n      \u003Cbr>\n      Browser-side token and repo access verification page.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n| Scene | What to try | Link |\n| --- | --- | --- |\n| Demo Lab | A static landing page for published mobile demos | [Open demo lab](https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002F) |\n| 2048 Web | Touch-first generated HTML game, useful for WebView and mobile layout checks | [Play 2048](https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fdemo\u002F2048\u002F) |\n| GitHub Test | Verify token identity, repo access, and Pages readiness from a browser | [Open GitHub test](https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fgithub-test\u002F) |\n| Repo Hub | Watch repos, map them to `mobilecode_projects\u002Fgithub\u002F\u003Cowner>\u002F\u003Crepo>\u002F`, inspect Actions, edit files through GitHub API | `mobile_agent\u002Flib\u002Fscreens\u002Fgithub_repo_hub_screen.dart` |\n| Published Work Card | After Pages publish, show Pages URL, repo URL, local file path, browser open, copy\u002Fshare, and redeploy actions | `mobile_agent\u002Flib\u002Fscreens\u002Fhome_screen.dart` |\n\n## Product Loop\n\n```mermaid\nflowchart LR\n  A[\"User prompt on phone\"] --> B[\"AI generates HTML \u002F code artifact\"]\n  B --> C[\"Local WebView preview\"]\n  C --> D[\"HTML publish readiness check\"]\n  D --> E[\"GitHub Pages publish\"]\n  E --> F[\"Shareable work card\"]\n  B --> G[\"GitHub Repo Hub\"]\n  G --> H[\"Contents API edit + commit\"]\n  G --> I[\"GitHub Actions workflow_dispatch\"]\n  I --> J[\"Jobs, logs, artifacts\"]\n```\n\n## Current Capabilities\n\n- Runtime abstraction: `RuntimeProvider`, `RuntimeManager`, Helper, External Termux, planned Embedded Lite, Cloud, and WebViewOnly fallback.\n- MobileCode Helper prototype: health, execute, streaming logs, task stop, task state, preflight checks.\n- Chat and agent process UI: model call progress, stop control, trace cards, generated artifact cards.\n- HTML-first generation: built-in HTML\u002FUI skill context, publish readiness checks, WebView preview, browser open, GitHub Pages publish.\n- GitHub-first workspace: repo list, watchlist, language\u002FPages\u002Flocal filters, local existence status, Remote-linked folder marker.\n- GitHub Actions surface: workflows, latest run status, jobs\u002Fsteps, workflow dispatch, artifact zip download record.\n- API-backed file flow: browse remote tree, read text files, edit, commit via GitHub Contents API, reload on SHA conflict.\n- Extension management: Roles, Skill, MCP, Memory, Agent, Hook Registry surfaces for role-based workflows.\n- Observability: RR AgentView, pending role approvals, Token Usage\u002Fcache-hit statistics, searchable\u002Fsortable LiteLLM-style pricing with manual snapshot checks, and Device Telemetry htop-style phone health.\n- Lark CLI connector: opt-in diagnostics and structured dry-run action model.\n\n## Architecture\n\n```mermaid\nflowchart TB\n  UI[\"Flutter App\\nChat · Files · Preview · Settings\"] --> RM[\"RuntimeManager\"]\n  RM --> H[\"MobileCode Helper\\nAndroid foreground service \u002F daemon\"]\n  RM --> T[\"External Termux\\nfallback shell\"]\n  RM --> W[\"WebViewOnly\\npreview-only fallback\"]\n  RM --> C[\"Cloud Runtime\\nheavy tasks later\"]\n  UI --> GH[\"GitHub Deep Service\"]\n  GH --> Repo[\"Repos \u002F Contents API\"]\n  GH --> Pages[\"GitHub Pages\"]\n  GH --> Actions[\"GitHub Actions\"]\n  Actions --> Artifacts[\"APK \u002F Web \u002F release artifacts\"]\n```\n\n## Quick Start\n\n### Try the published demos\n\nOpen:\n\n- [Demo Lab](https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002F)\n- [2048 Web Demo](https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fdemo\u002F2048\u002F)\n- [GitHub Test](https:\u002F\u002Fharzva.github.io\u002Fmobilecode\u002Fgithub-test\u002F)\n\n### Build the product site\n\n```bash\ncd app\nnpm install\nnpm run build\n```\n\n### Build the Flutter app\n\nLocal Flutter SDK is required:\n\n```bash\ncd mobile_agent\nflutter pub get\nflutter create --platforms=android,ios .\nflutter build apk --release\n```\n\nFor release QA, prefer GitHub Actions so the build is reproducible:\n\n- [Mobile Runtime CI](https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fmobile-runtime-ci.yml)\n- [Build Android APK](https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fandroid-apk.yml)\n- [Android App Smoke Test](https:\u002F\u002Fgithub.com\u002FHarzva\u002Fmobilecode\u002Factions\u002Fworkflows\u002Fandroid-app-test.yml)\n\n## Runtime Strategy\n\nMobileCode does not try to become a full Termux clone. The long-term model is:\n\n```text\nFlutter App\n  -> RuntimeProvider abstraction\n  -> MobileCode Helper\n  -> External Termux fallback\n  -> Embedded Lite runtime later\n  -> Cloud runtime for heavy builds\n  -> GitHub Pages + GitHub Actions for shipping\n```\n\nThat keeps the phone lightweight while still letting users produce shareable web pages, inspect repos, commit small changes, and build APKs through GitHub Actions.\n\n## Repository Structure\n\n```text\n.\n├─ app\u002F                     React\u002FVite product site\n├─ docs\u002F                    GitHub Pages demos, QA docs, runtime docs\n├─ mobile_agent\u002F            Flutter app source\n│  ├─ lib\u002Fscreens\u002F          Home, GitHub Repo Hub, Skill\u002FMCP\u002FAgent\u002FMemory UI\n│  ├─ lib\u002Fservices\u002F         Runtime, GitHub, Pages, Helper, skill services\n│  └─ assets\u002F               Role avatars and icons\n├─ mobile-coding-*.md       Product and architecture analysis\n└─ README.md                Project homepage\n```\n\n## Release Line\n\nCurrent candidate: `v0.1.46-last`.\n\nSee:\n\n- [Version Policy](docs\u002Fmobilecode-version-policy.md)\n- [Release QA Checklist](docs\u002Fmobilecode-release-qa.md)\n- [Helper Runtime Protocol](docs\u002Fmobilecode-helper-runtime-protocol.md)\n- [UI Showcase Assets](docs\u002Fmobilecode-ui-showcase-assets.md)\n- [Production Hardening Notes](docs\u002Fmobilecode-production-hardening.md)\n\n## Roadmap\n\n| Priority | Next focus | Stop condition |\n| --- | --- | --- |\n| P0 | Pass Mobile Runtime CI, Android APK build, Android smoke test for the pushed commit | APK artifact is downloadable and app launches |\n| P1 | Smooth Repo Hub file edit conflict handling and artifact download UX | User can recover from SHA conflicts and find downloaded artifacts |\n| P2 | Expand API-backed workspace into selected repo file import\u002Fexport | Phone can edit selected repo files without true clone |\n| Later | Helper APK maturity, queue recovery, PTY, cloud heavy builds | Runtime remains replaceable behind `RuntimeProvider` |\n\n## Status\n\nThis repository is actively moving toward a deployable mobile coding workspace. The Android build path is GitHub Actions-first; local machines without Flutter\u002FAndroid SDK should use CI artifacts instead of local builds.\n\n## License\n\nNo license file is included yet. Add a `LICENSE` before treating this as a reusable open-source distribution.\n","MobileCode 是一个为移动设备设计的AI编码工作空间。它通过将代理循环、工具状态、文件预览及发布控制等核心功能直接集成到手机本地，而非依赖远程IDE，从而实现了在手机上进行高效开发的可能性。项目基于Dart语言构建，并利用Flutter框架来保证跨平台兼容性，特别是针对Android系统进行了优化。适用于需要随时随地进行代码编写、测试和部署的开发者，特别是在没有传统桌面开发环境的情况下。","2026-06-11 03:56:53","CREATED_QUERY"]