Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/tungnk123/mobile-best-practicesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/tungnk123/mobile-best-practices/mobile-setup-android)<a href="https://agentmods.dev/commands/tungnk123/mobile-best-practices/mobile-setup-android"><img src="https://agentmods.dev/badge/commands/tungnk123/mobile-best-practices/mobile-setup-android.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00017 | $0.01583 |
| Opus 5 | $0.00009 | $0.00792 |
| Sonnet 5 | $0.00003 | $0.00317 |
| Haiku 4.5 | $0.00002 | $0.00158 |
Grade A, and why
mobile-setup-android scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Set up a new Android project following mobile development best practices.
IMPORTANT: You MUST run every python3 search command below and base ALL decisions exclusively on the database results. Do NOT rely on training data. Every architectural choice, dependency, and code template must come from the database output.
Step 1: Determine App Type
App type from arguments: $ARGUMENTS
If not specified, ask the user for: app type (e-commerce, banking, social media, healthcare, delivery, fitness, education, chat), target Android min SDK, and any required features.
Step 2: Search the Database — ALL Entries Required
Run ALL of the following searches. Do NOT skip any:
# Reasoning: get product-type specific recommendations
python3 ~/.mobile-best-practices/scripts/search.py "$ARGUMENTS" --domain reasoning -n 5
python3 ~/.mobile-best-practices/scripts/search.py "android app type recommendation" --domain reasoning -n 5
# Architecture patterns
python3 ~/.mobile-best-practices/scripts/search.py "mvvm clean architecture repository" --domain architecture -n 10
python3 ~/.mobile-best-practices/scripts/search.py "mvi android unidirectional" --domain architecture -n 5
python3 ~/.mobile-best-practices/scripts/search.py "modularization multi-module feature" --domain architecture -n 5
# Code snippets — get ALL templates
python3 ~/.mobile-best-practices/scripts/search.py "viewmodel hilt stateflow" --domain snippet -n 10
python3 ~/.mobile-best-practices/scripts/search.py "repository datasource usecase" --domain snippet -n 10
python3 ~/.mobile-best-practices/scripts/search.py "compose screen navigation route" --domain snippet -n 10
python3 ~/.mobile-best-practices/scripts/search.py "room database dao entity" --domain snippet -n 10
python3 ~/.mobile-best-practices/scripts/search.py "retrofit okhttp service" --domain snippet -n 10
python3 ~/.mobile-best-practices/scripts/search.py "hilt module provides inject" --domain snippet -n 10
python3 ~/.mobile-best-practices/scripts/search.py "datastore preferences flow" --domain snippet -n 5
python3 ~/.mobile-best-practices/scripts/search.py "paging compose lazycolumn" --domain snippet -n 5
python3 ~/.mobile-best-practices/scripts/search.py "workmanager background sync" --domain snippet -n 5
python3 ~/.mobile-best-practices/scripts/search.py "theme material3 color scheme" --domain snippet -n 5
# Gradle dependencies — get ALL declarations
python3 ~/.mobile-best-practices/scripts/search.py "compose bom material3" --domain gradle -n 10
python3 ~/.mobile-best-practices/scripts/search.py "hilt dagger ksp" --domain gradle -n 10
python3 ~/.mobile-best-practices/scripts/search.py "room ksp database" --domain gradle -n 10
python3 ~/.mobile-best-practices/scripts/search.py "retrofit okhttp serialization" --domain gradle -n 10
python3 ~/.mobile-best-practices/scripts/search.py "coil image loading" --domain gradle -n 5
python3 ~/.mobile-best-practices/scripts/search.py "navigation compose" --domain gradle -n 5
python3 ~/.mobile-best-practices/scripts/search.py "paging3 compose" --domain gradle -n 5
python3 ~/.mobile-best-practices/scripts/search.py "junit mockk turbine testing" --domain gradle -n 10
python3 ~/.mobile-best-practices/scripts/search.py "datastore preferences" --domain gradle -n 5
python3 ~/.mobile-best-practices/scripts/search.py "workmanager" --domain gradle -n 5
# Android platform best practices
python3 ~/.mobile-best-practices/scripts/search.py "compose state lifecycle" --platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "navigation type-safe serializable" --platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "dependency injection hilt" --platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "coroutine flow scope dispatcher" --platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "version catalog toml" --platform android -n 5
# Anti-patterns to avoid from day one
python3 ~/.mobile-best-practices/scripts/search.py "android architecture anti-pattern" --domain antipattern --filter-platform android -n 15
python3 ~/.mobile-best-practices/scripts/search.py "compose recomposition god class" --domain antipattern --filter-platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "memory leak context coroutine" --domain antipattern --filter-platform android -n 10
# Performance foundations
python3 ~/.mobile-best-practices/scripts/search.py "startup baseline profile" --domain performance --filter-platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "compose lazy image cache" --domain performance --filter-platform android -n 10
# Security foundations
python3 ~/.mobile-best-practices/scripts/search.py "android keystore encrypted api key" --domain security --filter-platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "network certificate pinning https" --domain security --filter-platform android -n 10
# Testing setup
python3 ~/.mobile-best-practices/scripts/search.py "unit test viewmodel coroutine turbine" --domain testing --filter-platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "compose ui test espresso" --domain testing --filter-platform android -n 10
# UI patterns
python3 ~/.mobile-best-practices/scripts/search.py "compose scaffold navigation bottom" --domain ui --filter-platform android -n 10
python3 ~/.mobile-best-practices/scripts/search.py "material3 component theme" --domain ui --filter-platform android -n 10
# Project template
python3 ~/.mobile-best-practices/scripts/search.py "$ARGUMENTS android" --domain template -n 3
python3 ~/.mobile-best-practices/scripts/search.py "android compose mvvm" --domain template -n 3
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 107 lines · 17 tokens per session scan A a4bf3add0456
mobile-setup-android is a command published in the GitHub repository tungnk123/mobile-best-practices (22 stars, last pushed 5mo ago), licensed MIT. It adds 17 tokens to every session and 1,583 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
app-store-audit
Run an enterprise pre submission compliance audit on an iOS or Android app against Apple App Store and Google Play rejection rules. Pass a project path or run from the project root.
initialize-ios
Manual override: initialize ast-index for iOS/Swift/ObjC project.
maestro-selectors-instructions
Guide to using Maestro selectors for targeting UI elements in tests.
flutter-review
Review Flutter/Dart code for idiomatic patterns, widget best practices, state management, performance, accessibility, and security. Invokes the flutter-reviewer agent.
flutter-test
Run Flutter/Dart tests, report failures, and incrementally fix test issues. Covers unit, widget, golden, and integration tests.
kmp-update-design-system
Compares the current KMP project's :core:designsystem/components against the reference implementations in the kmp-compose-design-system skill and applies safe updates.