
Personal-agentic-ai
Local-first AI work, including a standalone 3D Android orb.
A local-first assistant starter for bounded task preparation, private notes and owner-reviewed drafts. Its Android source now includes a standalone 3D WebGL home-orb component.
All published Personal AI APKs (23)
The current stable APK is build 26 (v1.23.07.01, versionCode 26), for ARM64 direct installation (not Google Play). SHA-256: 6734dc84192499658c2c974f7db046557294ce17e1d4badddd79a92219b134a0. Local Gemma chat remains experimental; Redmi 24090RA29I/HyperOS installation and runtime are unverified. Indic-Speak offline voice generation is not implemented; Android TTS and optional ElevenLabs are separate. Older links are labeled by their GitHub release or prerelease status; prereleases include development, test and debug builds.
Stable release
Other GitHub release builds (not marked prerelease)
- v1.00.00.0000.0-build25 (versionCode 25) — previous stable ARM64 APK · SHA-256 ae0c60bae59c603a67895ed14dfe52f0e82d9e765b8467810fd05f2505b15b30 ↗ (opens in a new tab)
- v1.00.00.0000.0-build24 (versionCode 24) — previous stable ARM64 APK ↗ (opens in a new tab)
- v1.00.00.0000.0-build23 (versionCode 23) — previous stable ARM64 APK ↗ (opens in a new tab)
- v1.00.00.0000.0-build22 (versionCode 22) — previous stable ARM64 APK ↗ (opens in a new tab)
- v1.00.00.0000.0-build21 (versionCode 21) — previous stable ARM64 APK ↗ (opens in a new tab)
- v1.00.00.0000.0-build20 (versionCode 20) — previous stable ARM64 APK ↗ (opens in a new tab)
- v1.00.00.0000.0-build19 (versionCode 19) — previous stable ARM64 APK ↗ (opens in a new tab)
- v1.00.00.0000.0-build18 — previous stable APK (versionCode 18) ↗ (opens in a new tab)
- v0.3.0-build17 — GitHub release APK ↗ (opens in a new tab)
- v0.3.0-build16 — GitHub release APK ↗ (opens in a new tab)
- v0.3.0-build15 — GitHub release APK ↗ (opens in a new tab)
GitHub prereleases (development, test or debug)
- v0.3.0-ui-reference-redesign-test — debug/test APK ↗ (opens in a new tab)
- v0.3.0-build9 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build8 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build7 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build15-debug-test — debug/test APK ↗ (opens in a new tab)
- v0.3.0-build14 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build13 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build12 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build11 — prerelease APK ↗ (opens in a new tab)
- v0.3.0-build10 — prerelease APK ↗ (opens in a new tab)
- v0.1.0-android-test — debug/test APK ↗ (opens in a new tab)
Inside the build
- The problem
- Everyday tasks need useful preparation without quietly sending messages or taking consequential actions.
- What I built
- A Python planner with validated tool steps, SQLite memory, deterministic local commands and exact draft reviews. The local web studio makes those boundaries visible. Development main adds paginated notebook browsing, Unicode-aware literal note search and notes-only JSONL export, plus a Flutter/Dart Android app with a local notebook and editable flashcard decks, a due-review queue and deterministic Again/Hard/Good/Easy intervals. Cards are user-authored, not AI-generated. The Android source also includes a standalone Flutter widget embedding a bundled WebGL 3D scene: a rotating orbital core, rings, branching neural filaments and moving pulses, with Adaptive, Ultra detail and Battery quality modes plus a neural-light toggle. It is local decorative art, restricted to the bundled page with no JavaScript bridge; it does not show AI activity or connect to a model. Main-branch Android source also adds finite progress notifications for user-started active chat requests; this is not a background service or an Android 16 Live Update.
- Technologies
- Python standard library · SQLite · Flutter/Dart · Android/Kotlin and Java · Flutter WebView · WebGL · vanilla HTML/CSS/JavaScript
- Engineering takeaway
- A preview is not permission. Validating a plan again before execution and invalidating changed approvals are explicit design boundaries in the code. The orb is clearly labeled as decorative art, separate from AI activity.
- What’s still ahead
- An earlier flashcard verification passed 27 Flutter tests and both hosted API36 native integration tests, including local study-record persistence across reload and restart. Android 16 CI run 39923508217 passed on main commit 424287b6d0783839955b12b726b1c44bd011d1de: Flutter checks, Rust native search checks, API36 instrumented local-first checks and Evidence. The public v0.3.0-build17 APK release is built from main commit 01d4fa1f5d9e46339bd30583bd0c663a502c2cc3. Android APK signature verification passed (v2); its published SHA-256, 4bc03d55cb0ef658f7c5861ba70557870c97421c582c3a91cba70680bc48d1c7, matches the downloaded 68.7 MB APK. The release workflow’s Gitleaks scan of strings extracted from that signed APK found no leaks. It is a direct-install APK, not a Play Store listing. Installation on Redmi 24090RA29I/HyperOS remains unverified. The orb remains a standalone source component, not wired into the app screen; it is decorative and does not connect to a model. These checks do not establish physical Redmi/HyperOS installation or model inference; Indic-Speak integration and qualification were not assessed. No message sending or connected social accounts. The web studio needs a local Python server. The study cards do not generate lessons or estimate mastery. Existing Python releases do not include the Android additions; JSONL exports are plaintext, not encrypted backups. The previous stable Android release was v1.00.00.0000.0 (build 18, versionCode 18); its Android 16 CI, Flutter and Rust checks, APK signing and integrity verification, and source/APK secret scans passed. Published APK SHA-256: a4161dbdcfec6097f824b9bb81de2284636b279da96aad2bafcc1ecf9269d202. It was a direct-install release, not a Play Store listing; Redmi 24090RA29I/HyperOS installation and runtime remained unverified, and Indic-Speak offline voice generation is not included. The previous stable release was v1.00.00.0000.0-build19 (versionCode 19), built from main commit 83708a98d72067ccc7b1e838f37b64e2482b4fe5 and signed with the configured Android release key. Its 72,233,902-byte ARM64 APK was a direct install, not a Play Store listing; published SHA-256: 6876b8fda399c480317913f07cb62019f6c588166dcc2145cd7e20d6f7989084. Build 21 (versionCode 21) was a previous stable release. The previous stable release was v1.00.00.0000.0-build24 (versionCode 24), published 24 October 2026 and built from main commit 5b57968dcaf2f0f393816ba630db26e6060e48a3, signed with the configured Android release key. Its 76,539,207-byte ARM64 APK was for direct installation, not a Play Store listing; published SHA-256: a04cd9db73483cd3ae90c2803fc9b7b0ca9d0321e5dc8efd69c943c72e524380. The release notes said the LiteRT-LM JNI callback keep-rule was included; local Gemma chat remained experimental, and Redmi 24090RA29I/HyperOS installation and runtime were unverified. Indic-Speak offline voice generation was not implemented; existing Android TTS and optional ElevenLabs are separate features, not an Indic-Speak replacement. The previous stable release was v1.00.00.0000.0-build25 (versionCode 25), published 25 October 2026 and built from main commit ae4d42703044973d0bdaef7244f537a090b9910f, signed with the configured Android release key. Its 76,687,171-byte ARM64 APK is for direct installation, not a Google Play listing; published SHA-256: ae0c60bae59c603a67895ed14dfe52f0e82d9e765b8467810fd05f2505b15b30. The release notes say the LiteRT-LM JNI callback keep-rule is included; local Gemma chat remains experimental, and Redmi 24090RA29I/HyperOS installation and runtime remain unverified. Indic-Speak offline voice generation is not implemented; existing Android TTS and optional ElevenLabs are separate features, not an Indic-Speak replacement. The main commit changes only the study-whiteboard test default for compatibility; it does not establish device compatibility or model qualification. Offline Qwen replies remain unqualified (`chat_qualified=false`), and Redmi/HyperOS installation and runtime remain unverified. Main commit 8e515b2 adds the active-chat progress tracker and Flutter/Kotlin unit tests. Android 16 CI run 40191147577 passed on main commit 8e515b2; at that point, this main-branch change was not included in stable build24, so the check did not establish released-APK behavior. After this release, API 36 CI run 40162187143 passed on main commit 162f233, which corrected only the expected Gemma offline-status text. At that point, this main-only test fix was not included in build24 and did not qualify Qwen or Gemma chat; Redmi/HyperOS behavior remains unverified. The latest published stable release is v1.23.07.01-build26 (versionCode 26), published 25 October 2026 and built from main commit f76d3a168fd2c12a5d6c15d50614fb192e937041, signed with the configured Android release key. Its 77,081,783-byte ARM64 APK is for direct installation, not a Google Play listing; published SHA-256: 6734dc84192499658c2c974f7db046557294ce17e1d4badddd79a92219b134a0. The release notes say Redmi 24090RA29I/HyperOS installation has not been physically verified, local Gemma chat remains experimental, and Indic-Speak offline voice generation is not implemented; Android TTS and optional ElevenLabs are separate features.
Based on repository snapshot ae4d427 ↗ (opens in a new tab), checked 25 October 2026. Takeaways describe the implementation, not a claimed personal lesson.
