mobile-ai-agents 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/AGENTS.md +228 -0
  2. package/CLAUDE.md +236 -0
  3. package/LICENSE +21 -0
  4. package/README.md +652 -0
  5. package/agents/android/android-crash-analyzer/README.md +134 -0
  6. package/agents/android/android-crash-analyzer/agent.md +206 -0
  7. package/agents/android/android-crash-analyzer/example-input.md +138 -0
  8. package/agents/android/android-crash-analyzer/example-output.md +225 -0
  9. package/agents/android/anr-investigation/README.md +78 -0
  10. package/agents/android/anr-investigation/agent.md +117 -0
  11. package/agents/android/anr-investigation/example-input.md +62 -0
  12. package/agents/android/anr-investigation/example-output.md +103 -0
  13. package/agents/android/axiom/agent.md +197 -0
  14. package/agents/android/code-reviewer/README.md +108 -0
  15. package/agents/android/code-reviewer/agent.md +210 -0
  16. package/agents/android/code-reviewer/example-input.md +116 -0
  17. package/agents/android/code-reviewer/example-output.md +115 -0
  18. package/agents/android/compose-navigation/README.md +76 -0
  19. package/agents/android/compose-navigation/agent.md +121 -0
  20. package/agents/android/compose-navigation/example-input.md +49 -0
  21. package/agents/android/compose-navigation/example-output.md +325 -0
  22. package/agents/android/compose-screen-builder/README.md +95 -0
  23. package/agents/android/compose-screen-builder/agent.md +170 -0
  24. package/agents/android/compose-screen-builder/example-input.md +40 -0
  25. package/agents/android/compose-screen-builder/example-output.md +568 -0
  26. package/agents/android/compose-ui-reviewer/README.md +73 -0
  27. package/agents/android/compose-ui-reviewer/agent.md +253 -0
  28. package/agents/android/compose-ui-reviewer/example-input.md +84 -0
  29. package/agents/android/compose-ui-reviewer/example-output.md +102 -0
  30. package/agents/android/crash-analyzer/README.md +53 -0
  31. package/agents/android/crash-analyzer/agent.md +295 -0
  32. package/agents/android/memory-leak-analyzer/README.md +79 -0
  33. package/agents/android/memory-leak-analyzer/agent.md +116 -0
  34. package/agents/android/memory-leak-analyzer/example-input.md +78 -0
  35. package/agents/android/memory-leak-analyzer/example-output.md +128 -0
  36. package/agents/cross-platform/accessibility-auditor/README.md +47 -0
  37. package/agents/cross-platform/accessibility-auditor/agent.md +268 -0
  38. package/agents/cross-platform/accessibility-auditor/example-input.md +84 -0
  39. package/agents/cross-platform/accessibility-auditor/example-output.md +132 -0
  40. package/agents/cross-platform/appforge/agent.md +303 -0
  41. package/agents/cross-platform/ci-cd-generator/README.md +65 -0
  42. package/agents/cross-platform/ci-cd-generator/agent.md +422 -0
  43. package/agents/cross-platform/ci-cd-generator/example-input.md +69 -0
  44. package/agents/cross-platform/ci-cd-generator/example-output.md +261 -0
  45. package/agents/cross-platform/crasher/agent.md +221 -0
  46. package/agents/cross-platform/figma/agent.md +247 -0
  47. package/agents/cross-platform/launchpad/agent.md +330 -0
  48. package/agents/cross-platform/mobile-harness/agent.md +422 -0
  49. package/agents/cross-platform/mobile-memory/agent.md +429 -0
  50. package/agents/cross-platform/perf/agent.md +261 -0
  51. package/agents/cross-platform/pipeline/agent.md +288 -0
  52. package/agents/cross-platform/release-notes-generator/README.md +63 -0
  53. package/agents/cross-platform/release-notes-generator/agent.md +218 -0
  54. package/agents/cross-platform/release-notes-generator/example-input.md +71 -0
  55. package/agents/cross-platform/release-notes-generator/example-output.md +96 -0
  56. package/agents/cross-platform/scribe/agent.md +180 -0
  57. package/agents/cross-platform/security-scanner/README.md +61 -0
  58. package/agents/cross-platform/security-scanner/agent.md +287 -0
  59. package/agents/cross-platform/security-scanner/example-input.md +77 -0
  60. package/agents/cross-platform/security-scanner/example-output.md +141 -0
  61. package/agents/cross-platform/sentinel/agent.md +217 -0
  62. package/agents/cross-platform/store-listing-writer/README.md +58 -0
  63. package/agents/cross-platform/store-listing-writer/agent.md +380 -0
  64. package/agents/cross-platform/store-listing-writer/example-input.md +67 -0
  65. package/agents/cross-platform/store-listing-writer/example-output.md +131 -0
  66. package/agents/flutter/bloc-feature-builder/README.md +101 -0
  67. package/agents/flutter/bloc-feature-builder/agent.md +225 -0
  68. package/agents/flutter/bloc-feature-builder/example-input.md +47 -0
  69. package/agents/flutter/bloc-feature-builder/example-output.md +838 -0
  70. package/agents/flutter/dart/agent.md +223 -0
  71. package/agents/flutter/widget-generator/README.md +66 -0
  72. package/agents/flutter/widget-generator/agent.md +264 -0
  73. package/agents/flutter/widget-generator/example-input.md +71 -0
  74. package/agents/flutter/widget-generator/example-output.md +163 -0
  75. package/agents/gaming/forge/agent.md +197 -0
  76. package/agents/gaming/unreal/agent.md +200 -0
  77. package/agents/ios/crash-analyzer/README.md +69 -0
  78. package/agents/ios/crash-analyzer/agent.md +300 -0
  79. package/agents/ios/crash-analyzer/example-input.md +83 -0
  80. package/agents/ios/crash-analyzer/example-output.md +126 -0
  81. package/agents/ios/swift/agent.md +206 -0
  82. package/agents/ios/swift-reviewer/README.md +68 -0
  83. package/agents/ios/swift-reviewer/agent.md +231 -0
  84. package/agents/ios/swift-reviewer/example-input.md +100 -0
  85. package/agents/ios/swift-reviewer/example-output.md +127 -0
  86. package/agents/react-native/bridge/agent.md +212 -0
  87. package/agents/react-native/performance-optimizer/README.md +81 -0
  88. package/agents/react-native/performance-optimizer/agent.md +284 -0
  89. package/agents/react-native/performance-optimizer/example-input.md +104 -0
  90. package/agents/react-native/performance-optimizer/example-output.md +132 -0
  91. package/agents/unity/shader-generator/README.md +77 -0
  92. package/agents/unity/shader-generator/agent.md +270 -0
  93. package/agents/unity/shader-generator/example-input.md +70 -0
  94. package/agents/unity/shader-generator/example-output.md +160 -0
  95. package/agents/unreal/blueprint-advisor/README.md +71 -0
  96. package/agents/unreal/blueprint-advisor/agent.md +311 -0
  97. package/agents/unreal/blueprint-advisor/example-input.md +73 -0
  98. package/agents/unreal/blueprint-advisor/example-output.md +217 -0
  99. package/cli/index.js +1091 -0
  100. package/docs/agent-guide.md +138 -0
  101. package/docs/chatgpt-integration.md +219 -0
  102. package/docs/core-loops.md +143 -0
  103. package/docs/cursor-integration.md +143 -0
  104. package/docs/getting-started.md +132 -0
  105. package/docs/index.html +711 -0
  106. package/docs/installation.md +271 -0
  107. package/docs/mobile-harness.md +160 -0
  108. package/docs/mobile-mcp.md +172 -0
  109. package/docs/mobile-memory.md +349 -0
  110. package/docs/release-process.md +85 -0
  111. package/docs/releases/release-v1.0.0.md +165 -0
  112. package/docs/roadmap/github-issues.md +239 -0
  113. package/docs/skill-categories.md +125 -0
  114. package/docs/vscode-copilot-integration.md +104 -0
  115. package/docs/wiki.md +615 -0
  116. package/install.sh +507 -0
  117. package/mobile-karpathy.md +79 -0
  118. package/package.json +57 -0
  119. package/skills/android/README.md +31 -0
  120. package/skills/android/android-tdd.md +89 -0
  121. package/skills/android/anr-investigation.md +251 -0
  122. package/skills/android/code-review.md +98 -0
  123. package/skills/android/compose-migration.md +48 -0
  124. package/skills/android/compose-review.md +78 -0
  125. package/skills/android/kotlin-modernize.md +51 -0
  126. package/skills/android/memory-leak-investigation.md +256 -0
  127. package/skills/android/proguard-rules.md +48 -0
  128. package/skills/cross-platform/accessibility-audit.md +63 -0
  129. package/skills/cross-platform/api-versioning.md +59 -0
  130. package/skills/cross-platform/clean-code-audit.md +239 -0
  131. package/skills/cross-platform/crash-triage.md +53 -0
  132. package/skills/cross-platform/deeplink-debug.md +57 -0
  133. package/skills/cross-platform/feature-slice.md +48 -0
  134. package/skills/cross-platform/grill-mobile.md +64 -0
  135. package/skills/cross-platform/mobile-mcp-qa.md +193 -0
  136. package/skills/cross-platform/mobile-memory-graph.md +179 -0
  137. package/skills/cross-platform/mobile-memory-save.md +210 -0
  138. package/skills/cross-platform/mobile-memory-search.md +154 -0
  139. package/skills/cross-platform/perf-audit.md +61 -0
  140. package/skills/cross-platform/prd-verification.md +324 -0
  141. package/skills/cross-platform/release-prep.md +64 -0
  142. package/skills/cross-platform/security-audit.md +281 -0
  143. package/skills/cross-platform/store-listing.md +75 -0
  144. package/skills/flutter/README.md +32 -0
  145. package/skills/flutter/dart-modernize.md +47 -0
  146. package/skills/flutter/flutter-review.md +59 -0
  147. package/skills/flutter/flutter-tdd.md +73 -0
  148. package/skills/flutter/widget-extract.md +41 -0
  149. package/skills/flutter/widget-gen.md +131 -0
  150. package/skills/gaming/blueprint-to-cpp.md +51 -0
  151. package/skills/gaming/game-perf.md +54 -0
  152. package/skills/gaming/shader-gen.md +44 -0
  153. package/skills/gaming/unity-tdd.md +85 -0
  154. package/skills/ios/README.md +45 -0
  155. package/skills/ios/data-persistence.md +151 -0
  156. package/skills/ios/ios-tdd.md +90 -0
  157. package/skills/ios/networking.md +139 -0
  158. package/skills/ios/performance.md +122 -0
  159. package/skills/ios/swift-concurrency.md +57 -0
  160. package/skills/ios/swift-review.md +124 -0
  161. package/skills/ios/swiftui-review.md +49 -0
  162. package/skills/ios/swiftui-state.md +122 -0
  163. package/skills/ios/unit-testing.md +144 -0
  164. package/skills/ios/xcode-warnings.md +37 -0
  165. package/skills/react-native/README.md +42 -0
  166. package/skills/react-native/bridge-audit.md +104 -0
  167. package/skills/react-native/expo-optimize.md +55 -0
  168. package/skills/react-native/new-arch-migrate.md +53 -0
  169. package/skills/react-native/performance.md +124 -0
  170. package/skills/react-native/rn-review.md +53 -0
  171. package/skills/react-native/rn-tdd.md +76 -0
  172. package/skills/shared/README.md +46 -0
  173. package/skills/shared/accessibility-audit.md +132 -0
  174. package/skills/shared/crash-analysis.md +110 -0
  175. package/skills/shared/security-scan.md +149 -0
  176. package/skills/unity/README.md +31 -0
  177. package/skills/unity/shader-review.md +110 -0
  178. package/templates/agent-template.md +88 -0
  179. package/templates/prompt-template.md +50 -0
  180. package/templates/skill-template.md +64 -0
  181. package/templates/workflow-template.md +48 -0
  182. package/workflows/app-launch.md +66 -0
  183. package/workflows/appforge-workflow.md +232 -0
  184. package/workflows/ci-setup.md +77 -0
  185. package/workflows/crash-to-fix.md +71 -0
  186. package/workflows/feature-ship.md +61 -0
  187. package/workflows/game-level.md +72 -0
  188. package/workflows/mobile-harness.md +319 -0
  189. package/workflows/mobile-mcp-qa.md +228 -0
  190. package/workflows/mobile-memory-workflow.md +243 -0
  191. package/workflows/new-project-setup.md +93 -0
  192. package/workflows/new-screen.md +68 -0
  193. package/workflows/perf-sprint.md +78 -0
  194. package/workflows/release-cycle.md +71 -0
@@ -0,0 +1,711 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Mobile AI Agents — AI agents for mobile engineers</title>
7
+ <meta name="description" content="Core mobile engineering loops with platform plugins for Android, iOS, Flutter, React Native, Kotlin Multiplatform, Unity, and Unreal." />
8
+ <meta property="og:title" content="Mobile AI Agents" />
9
+ <meta property="og:description" content="Plan, build, audit, test, release, and maintain mobile apps with platform-specific AI engineering loops." />
10
+ <meta property="og:type" content="website" />
11
+ <style>
12
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
13
+
14
+ :root {
15
+ --bg: #0d0d0d;
16
+ --surface: #161616;
17
+ --border: #282828;
18
+ --text: #f0f0f0;
19
+ --muted: #888;
20
+ --accent: #4f9cf9;
21
+ --accent-dim: #1a3a5c;
22
+ --green: #3ecf8e;
23
+ --yellow: #f5a623;
24
+ --red: #ff6b6b;
25
+ --purple: #c084fc;
26
+ --mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
27
+ --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
28
+ }
29
+
30
+ body {
31
+ background: var(--bg);
32
+ color: var(--text);
33
+ font-family: var(--sans);
34
+ line-height: 1.6;
35
+ min-height: 100vh;
36
+ }
37
+
38
+ a { color: var(--accent); text-decoration: none; }
39
+ a:hover { text-decoration: underline; }
40
+
41
+ /* ── Layout ── */
42
+ .container { max-width: 900px; margin: 0 auto; padding: 0 24px; }
43
+
44
+ /* ── Nav ── */
45
+ nav {
46
+ border-bottom: 1px solid var(--border);
47
+ padding: 16px 0;
48
+ }
49
+ nav .container {
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ }
54
+ .nav-brand { font-family: var(--mono); font-size: 14px; color: var(--text); font-weight: 600; }
55
+ .nav-links { display: flex; gap: 24px; font-size: 14px; color: var(--muted); }
56
+ .nav-links a { color: var(--muted); }
57
+ .nav-links a:hover { color: var(--text); text-decoration: none; }
58
+
59
+ /* ── Hero ── */
60
+ .hero {
61
+ padding: 96px 0 72px;
62
+ text-align: center;
63
+ }
64
+ .hero-badge {
65
+ display: inline-block;
66
+ background: var(--accent-dim);
67
+ color: var(--accent);
68
+ font-family: var(--mono);
69
+ font-size: 12px;
70
+ padding: 4px 12px;
71
+ border-radius: 20px;
72
+ margin-bottom: 24px;
73
+ border: 1px solid var(--accent-dim);
74
+ }
75
+ .hero h1 {
76
+ font-size: clamp(32px, 6vw, 56px);
77
+ font-weight: 800;
78
+ line-height: 1.1;
79
+ letter-spacing: -1px;
80
+ margin-bottom: 20px;
81
+ }
82
+ .hero h1 span { color: var(--accent); }
83
+ .hero p {
84
+ font-size: 18px;
85
+ color: var(--muted);
86
+ max-width: 540px;
87
+ margin: 0 auto 40px;
88
+ }
89
+ .hero-install {
90
+ display: inline-flex;
91
+ align-items: center;
92
+ gap: 12px;
93
+ background: var(--surface);
94
+ border: 1px solid var(--border);
95
+ border-radius: 10px;
96
+ padding: 14px 20px;
97
+ font-family: var(--mono);
98
+ font-size: 15px;
99
+ margin-bottom: 16px;
100
+ }
101
+ .prompt { color: var(--green); user-select: none; }
102
+ .cmd { color: var(--text); }
103
+ .copy-btn {
104
+ background: none;
105
+ border: 1px solid var(--border);
106
+ color: var(--muted);
107
+ border-radius: 6px;
108
+ padding: 4px 10px;
109
+ font-size: 12px;
110
+ cursor: pointer;
111
+ transition: all .15s;
112
+ }
113
+ .copy-btn:hover { border-color: var(--accent); color: var(--accent); }
114
+ .hero-sub { font-size: 13px; color: var(--muted); }
115
+ .hero-sub a { color: var(--muted); text-decoration: underline; }
116
+
117
+ /* ── Stats ── */
118
+ .stats {
119
+ display: flex;
120
+ justify-content: center;
121
+ gap: 48px;
122
+ padding: 32px 0 64px;
123
+ flex-wrap: wrap;
124
+ }
125
+ .stat { text-align: center; }
126
+ .stat-num { font-size: 36px; font-weight: 800; color: var(--accent); font-family: var(--mono); }
127
+ .stat-label { font-size: 13px; color: var(--muted); margin-top: 2px; }
128
+
129
+ /* ── Section ── */
130
+ section { padding: 64px 0; border-top: 1px solid var(--border); }
131
+ .section-label {
132
+ font-family: var(--mono);
133
+ font-size: 11px;
134
+ text-transform: uppercase;
135
+ letter-spacing: 2px;
136
+ color: var(--accent);
137
+ margin-bottom: 12px;
138
+ }
139
+ h2 { font-size: 28px; font-weight: 700; margin-bottom: 8px; }
140
+ .section-sub { color: var(--muted); font-size: 15px; margin-bottom: 40px; }
141
+
142
+ /* ── Agent grid ── */
143
+ .agent-grid {
144
+ display: grid;
145
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
146
+ gap: 16px;
147
+ }
148
+ .agent-card {
149
+ background: var(--surface);
150
+ border: 1px solid var(--border);
151
+ border-radius: 12px;
152
+ padding: 20px;
153
+ transition: border-color .15s;
154
+ }
155
+ .agent-card:hover { border-color: var(--accent); }
156
+ .agent-name {
157
+ font-family: var(--mono);
158
+ font-size: 13px;
159
+ font-weight: 700;
160
+ color: var(--accent);
161
+ margin-bottom: 4px;
162
+ display: flex;
163
+ align-items: center;
164
+ gap: 8px;
165
+ }
166
+ .platform-tag {
167
+ font-size: 10px;
168
+ padding: 2px 8px;
169
+ border-radius: 4px;
170
+ font-weight: 600;
171
+ text-transform: uppercase;
172
+ letter-spacing: .5px;
173
+ }
174
+ .tag-android { background: #1a3d2b; color: #3ecf8e; }
175
+ .tag-ios { background: #2a2040; color: #c084fc; }
176
+ .tag-flutter { background: #1a2d4a; color: #4f9cf9; }
177
+ .tag-rn { background: #3a2020; color: #ff6b6b; }
178
+ .tag-gaming { background: #3a3020; color: #f5a623; }
179
+ .tag-cross { background: #282828; color: #888; }
180
+ .agent-mission { font-size: 13px; color: var(--muted); margin-top: 8px; line-height: 1.5; }
181
+ .agent-quote { font-size: 12px; color: #555; margin-top: 8px; font-style: italic; }
182
+
183
+ /* ── Skills table ── */
184
+ .skills-grid {
185
+ display: grid;
186
+ grid-template-columns: 1fr 1fr;
187
+ gap: 32px;
188
+ }
189
+ @media (max-width: 640px) { .skills-grid { grid-template-columns: 1fr; } }
190
+ .skills-platform h3 {
191
+ font-size: 13px;
192
+ font-family: var(--mono);
193
+ color: var(--muted);
194
+ text-transform: uppercase;
195
+ letter-spacing: 1px;
196
+ margin-bottom: 12px;
197
+ }
198
+ .skill-row {
199
+ display: flex;
200
+ align-items: baseline;
201
+ gap: 8px;
202
+ padding: 6px 0;
203
+ border-bottom: 1px solid var(--border);
204
+ font-size: 13px;
205
+ }
206
+ .skill-cmd { font-family: var(--mono); color: var(--accent); flex-shrink: 0; }
207
+ .skill-desc { color: var(--muted); }
208
+
209
+ /* ── Workflows ── */
210
+ .workflow-list { display: flex; flex-direction: column; gap: 12px; }
211
+ .workflow-item {
212
+ display: flex;
213
+ align-items: flex-start;
214
+ gap: 16px;
215
+ background: var(--surface);
216
+ border: 1px solid var(--border);
217
+ border-radius: 10px;
218
+ padding: 16px 20px;
219
+ }
220
+ .workflow-name {
221
+ font-family: var(--mono);
222
+ font-size: 13px;
223
+ color: var(--text);
224
+ font-weight: 600;
225
+ flex-shrink: 0;
226
+ width: 160px;
227
+ }
228
+ .workflow-desc { font-size: 13px; color: var(--muted); }
229
+
230
+ /* ── Karpathy ── */
231
+ .rules-grid {
232
+ display: grid;
233
+ grid-template-columns: 1fr 1fr;
234
+ gap: 16px;
235
+ }
236
+ @media (max-width: 640px) { .rules-grid { grid-template-columns: 1fr; } }
237
+ .rule-card {
238
+ background: var(--surface);
239
+ border: 1px solid var(--border);
240
+ border-radius: 12px;
241
+ padding: 24px;
242
+ }
243
+ .rule-num {
244
+ font-family: var(--mono);
245
+ font-size: 12px;
246
+ color: var(--accent);
247
+ margin-bottom: 8px;
248
+ }
249
+ .rule-title { font-weight: 700; font-size: 15px; margin-bottom: 8px; }
250
+ .rule-body { font-size: 13px; color: var(--muted); line-height: 1.6; }
251
+
252
+ /* ── Install section ── */
253
+ .install-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
254
+ .tab-btn {
255
+ background: none;
256
+ border: 1px solid var(--border);
257
+ color: var(--muted);
258
+ border-radius: 6px;
259
+ padding: 6px 14px;
260
+ font-size: 13px;
261
+ cursor: pointer;
262
+ font-family: var(--sans);
263
+ transition: all .15s;
264
+ }
265
+ .tab-btn.active { border-color: var(--accent); color: var(--accent); background: var(--accent-dim); }
266
+ .code-block {
267
+ background: var(--surface);
268
+ border: 1px solid var(--border);
269
+ border-radius: 10px;
270
+ padding: 20px 24px;
271
+ font-family: var(--mono);
272
+ font-size: 13px;
273
+ line-height: 1.8;
274
+ overflow-x: auto;
275
+ }
276
+ .code-block .comment { color: #555; }
277
+ .code-block .cmd2 { color: var(--text); }
278
+ .code-block .flag { color: var(--yellow); }
279
+ .code-block .val { color: var(--green); }
280
+
281
+ /* ── Footer ── */
282
+ footer {
283
+ border-top: 1px solid var(--border);
284
+ padding: 40px 0;
285
+ text-align: center;
286
+ font-size: 13px;
287
+ color: var(--muted);
288
+ }
289
+ footer a { color: var(--muted); }
290
+
291
+ /* ── Responsive ── */
292
+ @media (max-width: 640px) {
293
+ .stats { gap: 24px; }
294
+ .hero { padding: 64px 0 48px; }
295
+ .workflow-item { flex-direction: column; gap: 4px; }
296
+ .workflow-name { width: auto; }
297
+ }
298
+ </style>
299
+ </head>
300
+ <body>
301
+
302
+ <!-- Nav -->
303
+ <nav>
304
+ <div class="container">
305
+ <span class="nav-brand">mobile-ai-agents</span>
306
+ <div class="nav-links">
307
+ <a href="#loops">Loops</a>
308
+ <a href="#agents">Agents</a>
309
+ <a href="#skills">Skills</a>
310
+ <a href="#workflows">Workflows</a>
311
+ <a href="https://github.com/salmanashraf/mobile-agency">GitHub</a>
312
+ </div>
313
+ </div>
314
+ </nav>
315
+
316
+ <!-- Hero -->
317
+ <div class="hero">
318
+ <div class="container">
319
+ <div class="hero-badge">v1.0 — Open Source</div>
320
+ <h1>The complete AI dev team<br>for <span>mobile engineers</span>.</h1>
321
+ <p>Core loops for planning, building, auditing, testing, releasing, and maintaining mobile apps. Platform plugins for Android · iOS · Flutter · React Native · Kotlin Multiplatform · Unity · Unreal.</p>
322
+
323
+ <div class="hero-install">
324
+ <span class="prompt">$</span>
325
+ <span class="cmd" id="install-cmd">npx mobile-ai-agents install</span>
326
+ <button class="copy-btn" onclick="copyInstall()">copy</button>
327
+ </div>
328
+ <br>
329
+ <span class="hero-sub">
330
+ or <a href="https://github.com/salmanashraf/mobile-agency">clone the repo</a> and run <code>./install.sh</code>
331
+ </span>
332
+ </div>
333
+ </div>
334
+
335
+ <!-- Stats -->
336
+ <div class="container">
337
+ <div class="stats">
338
+ <div class="stat"><div class="stat-num">19</div><div class="stat-label">Agents</div></div>
339
+ <div class="stat"><div class="stat-num">35</div><div class="stat-label">Skills</div></div>
340
+ <div class="stat"><div class="stat-num">13</div><div class="stat-label">Workflows</div></div>
341
+ <div class="stat"><div class="stat-num">7</div><div class="stat-label">Plugin Tracks</div></div>
342
+ </div>
343
+ </div>
344
+
345
+ <!-- Core Loops -->
346
+ <section id="loops">
347
+ <div class="container">
348
+ <div class="section-label">Loop Engineering</div>
349
+ <h2>Choose the loop. Add the platform.</h2>
350
+ <p class="section-sub">Mobile AI Agents is organized around repeatable engineering loops, then extended with platform-specific expertise. Security and performance are built in before release, not left as cleanup.</p>
351
+
352
+ <div class="agent-grid">
353
+ <div class="agent-card">
354
+ <div class="agent-name">PLANNING <span class="platform-tag tag-cross">Core</span></div>
355
+ <div class="agent-mission">Idea discovery, PRD, roadmap, task breakdown, and MVP scope.</div>
356
+ </div>
357
+ <div class="agent-card">
358
+ <div class="agent-name">ARCHITECTURE <span class="platform-tag tag-cross">Core</span></div>
359
+ <div class="agent-mission">System design, module boundaries, model separation, clean code, and maintainability gates.</div>
360
+ </div>
361
+ <div class="agent-card">
362
+ <div class="agent-name">DEVELOPMENT <span class="platform-tag tag-cross">Core</span></div>
363
+ <div class="agent-mission">Feature implementation, UI build, refactor, code review, and one-task-at-a-time delivery.</div>
364
+ </div>
365
+ <div class="agent-card">
366
+ <div class="agent-name">PERFORMANCE <span class="platform-tag tag-android">Built In</span></div>
367
+ <div class="agent-mission">Startup, ANR, memory leaks, frame drops, battery, network, app size, and regression checks.</div>
368
+ </div>
369
+ <div class="agent-card">
370
+ <div class="agent-name">SECURITY <span class="platform-tag tag-rn">Built In</span></div>
371
+ <div class="agent-mission">OWASP, secrets, auth, storage, deep links, WebViews, permissions, logs, and release hardening.</div>
372
+ </div>
373
+ <div class="agent-card">
374
+ <div class="agent-name">TESTING <span class="platform-tag tag-cross">Core</span></div>
375
+ <div class="agent-mission">Unit tests, UI tests, accessibility, PRD verification, screenshots, and device QA proof.</div>
376
+ </div>
377
+ <div class="agent-card">
378
+ <div class="agent-name">RELEASE <span class="platform-tag tag-gaming">Core</span></div>
379
+ <div class="agent-mission">CI/CD, signing, store checklist, release notes, staged rollout, and launch readiness.</div>
380
+ </div>
381
+ <div class="agent-card">
382
+ <div class="agent-name">GROWTH <span class="platform-tag tag-ios">Core</span></div>
383
+ <div class="agent-mission">ASO, store listing, screenshot captions, monetization, and conversion-focused launch copy.</div>
384
+ </div>
385
+ <div class="agent-card">
386
+ <div class="agent-name">MAINTENANCE <span class="platform-tag tag-flutter">Core</span></div>
387
+ <div class="agent-mission">Crash triage, context memory, issue-to-agent planning, monitoring, and regression prevention.</div>
388
+ </div>
389
+ </div>
390
+
391
+ <p class="section-sub" style="margin-top:32px;margin-bottom:0;">Platform plugins: Android · iOS · Flutter · React Native · Kotlin Multiplatform · Unity · Unreal. <a href="core-loops.md">Read the core loops guide →</a></p>
392
+ </div>
393
+ </section>
394
+
395
+ <!-- Agents -->
396
+ <section id="agents">
397
+ <div class="container">
398
+ <div class="section-label">Agents</div>
399
+ <h2>Specialists who never sleep.</h2>
400
+ <p class="section-sub">Each agent has a name, a personality, and a single clear mission. Drop any agent into Claude Code, Cursor, or Windsurf and it works immediately.</p>
401
+
402
+ <div class="agent-grid">
403
+ <div class="agent-card">
404
+ <div class="agent-name">AXIOM <span class="platform-tag tag-android">Android</span></div>
405
+ <div class="agent-mission">Reviews Kotlin/Compose for Clean Architecture violations, coroutine leaks, and anti-patterns.</div>
406
+ <div class="agent-quote">"Zero tolerance for GlobalScope. Has survived 3 Jetpack migrations."</div>
407
+ </div>
408
+ <div class="agent-card">
409
+ <div class="agent-name">NAVIGATOR <span class="platform-tag tag-android">Android</span></div>
410
+ <div class="agent-mission">Generates and reviews type-safe Compose navigation, nested graphs, deep links, and bottom navigation.</div>
411
+ <div class="agent-quote">"Every destination has a type and every pop has a reason."</div>
412
+ </div>
413
+ <div class="agent-card">
414
+ <div class="agent-name">RETAINER <span class="platform-tag tag-android">Android</span></div>
415
+ <div class="agent-mission">Analyzes LeakCanary traces and heap-retention reports into exact owners, lifecycle fixes, and verification steps.</div>
416
+ <div class="agent-quote">"Follows every strong reference until the guilty owner confesses."</div>
417
+ </div>
418
+ <div class="agent-card">
419
+ <div class="agent-name">FREEZE <span class="platform-tag tag-android">Android</span></div>
420
+ <div class="agent-mission">Investigates ANR traces, Play Console clusters, and thread dumps into root causes and production fixes.</div>
421
+ <div class="agent-quote">"Every freeze has a blocking chain."</div>
422
+ </div>
423
+ <div class="agent-card">
424
+ <div class="agent-name">SWIFT <span class="platform-tag tag-ios">iOS</span></div>
425
+ <div class="agent-mission">Reviews Swift/SwiftUI for retain cycles, force unwraps, MainActor misuse, and async/await correctness.</div>
426
+ <div class="agent-quote">"Will shame your retain cycles in iambic pentameter if necessary."</div>
427
+ </div>
428
+ <div class="agent-card">
429
+ <div class="agent-name">DART <span class="platform-tag tag-flutter">Flutter</span></div>
430
+ <div class="agent-mission">Reviews Flutter for widget rebuild inefficiency, missing const, and state management misuse.</div>
431
+ <div class="agent-quote">"Counts rebuilds like a miser counts coins."</div>
432
+ </div>
433
+ <div class="agent-card">
434
+ <div class="agent-name">BRIDGE <span class="platform-tag tag-rn">React Native</span></div>
435
+ <div class="agent-mission">Finds bridge call bottlenecks, re-renders, and New Architecture migration paths.</div>
436
+ <div class="agent-quote">"Tracks every bridge crossing like a border guard."</div>
437
+ </div>
438
+ <div class="agent-card">
439
+ <div class="agent-name">FORGE <span class="platform-tag tag-gaming">Unity</span></div>
440
+ <div class="agent-mission">Reviews C# for GC pressure, Update() loop abuse, and draw call inefficiency.</div>
441
+ <div class="agent-quote">"Frame budget is sacred."</div>
442
+ </div>
443
+ <div class="agent-card">
444
+ <div class="agent-name">UNREAL <span class="platform-tag tag-gaming">Unreal</span></div>
445
+ <div class="agent-mission">Blueprint optimization, C++ migration, Tick() abuse, and GC safety.</div>
446
+ <div class="agent-quote">"Will rewrite your Blueprint in C++ while explaining exactly why."</div>
447
+ </div>
448
+ <div class="agent-card">
449
+ <div class="agent-name">CRASHER <span class="platform-tag tag-cross">All Platforms</span></div>
450
+ <div class="agent-mission">Parses any mobile crash log → root cause → concrete fix → regression test.</div>
451
+ <div class="agent-quote">"Has a wall covered in stacktraces and string."</div>
452
+ </div>
453
+ <div class="agent-card">
454
+ <div class="agent-name">SENTINEL <span class="platform-tag tag-cross">All Platforms</span></div>
455
+ <div class="agent-mission">OWASP Mobile Top 10 security audit with concrete exploitation paths, not theoretical risks.</div>
456
+ <div class="agent-quote">"Assumes every input is malicious until proven otherwise."</div>
457
+ </div>
458
+ <div class="agent-card">
459
+ <div class="agent-name">LAUNCHPAD <span class="platform-tag tag-cross">All Platforms</span></div>
460
+ <div class="agent-mission">Play Store + App Store ASO-optimized listing copy, keyword strategy, screenshot brief.</div>
461
+ <div class="agent-quote">"Knows every keyword algorithm."</div>
462
+ </div>
463
+ <div class="agent-card">
464
+ <div class="agent-name">PIPELINE <span class="platform-tag tag-cross">All Platforms</span></div>
465
+ <div class="agent-mission">Generates complete GitHub Actions / Bitrise / Fastlane configs from project context.</div>
466
+ <div class="agent-quote">"If it's done manually twice, it's a pipeline waiting to exist."</div>
467
+ </div>
468
+ <div class="agent-card">
469
+ <div class="agent-name">PERF <span class="platform-tag tag-cross">All Platforms</span></div>
470
+ <div class="agent-mission">Profiles slow screens, identifies frame budget bottlenecks, produces concrete optimization plans.</div>
471
+ <div class="agent-quote">"Carries a stopwatch everywhere."</div>
472
+ </div>
473
+ <div class="agent-card">
474
+ <div class="agent-name">SCRIBE <span class="platform-tag tag-cross">All Platforms</span></div>
475
+ <div class="agent-mission">Converts git commit logs into polished, user-facing release notes for stores and stakeholders.</div>
476
+ <div class="agent-quote">"Translates git commits into things humans actually understand."</div>
477
+ </div>
478
+ <div class="agent-card">
479
+ <div class="agent-name">FIGMA <span class="platform-tag tag-cross">All Platforms</span></div>
480
+ <div class="agent-mission">Translates Figma specs into production-ready Compose, SwiftUI, Flutter, or React Native code.</div>
481
+ <div class="agent-quote">"Pixel-perfect or it didn't happen."</div>
482
+ </div>
483
+ </div>
484
+ </div>
485
+ </section>
486
+
487
+ <!-- Skills -->
488
+ <section id="skills">
489
+ <div class="container">
490
+ <div class="section-label">Skills</div>
491
+ <h2>35 composable prompt modules.</h2>
492
+ <p class="section-sub">Use inline in a session, or compose into agents. Each has a slash command.</p>
493
+
494
+ <div class="skills-grid">
495
+ <div class="skills-platform">
496
+ <h3>Android</h3>
497
+ <div class="skill-row"><span class="skill-cmd">/anr-investigation</span><span class="skill-desc">Evidence-first ANR root cause analysis</span></div>
498
+ <div class="skill-row"><span class="skill-cmd">/android-tdd</span><span class="skill-desc">JUnit5 + Compose TDD loop</span></div>
499
+ <div class="skill-row"><span class="skill-cmd">/compose-review</span><span class="skill-desc">Recomposition audit</span></div>
500
+ <div class="skill-row"><span class="skill-cmd">/compose-migration</span><span class="skill-desc">XML → Jetpack Compose</span></div>
501
+ <div class="skill-row"><span class="skill-cmd">/kotlin-modernize</span><span class="skill-desc">Legacy Kotlin → modern idioms</span></div>
502
+ <div class="skill-row"><span class="skill-cmd">/memory-leak-investigation</span><span class="skill-desc">LeakCanary reference-path analysis</span></div>
503
+ <div class="skill-row"><span class="skill-cmd">/proguard-rules</span><span class="skill-desc">R8 rules from your deps</span></div>
504
+ </div>
505
+ <div class="skills-platform">
506
+ <h3>iOS</h3>
507
+ <div class="skill-row"><span class="skill-cmd">/ios-tdd</span><span class="skill-desc">XCTest TDD loop</span></div>
508
+ <div class="skill-row"><span class="skill-cmd">/swiftui-review</span><span class="skill-desc">View lifecycle + memory audit</span></div>
509
+ <div class="skill-row"><span class="skill-cmd">/swift-concurrency</span><span class="skill-desc">Callbacks → async/await</span></div>
510
+ <div class="skill-row"><span class="skill-cmd">/xcode-warnings</span><span class="skill-desc">Warnings in plain English</span></div>
511
+ </div>
512
+ <div class="skills-platform">
513
+ <h3>Flutter</h3>
514
+ <div class="skill-row"><span class="skill-cmd">/flutter-tdd</span><span class="skill-desc">Widget + Bloc TDD loop</span></div>
515
+ <div class="skill-row"><span class="skill-cmd">/flutter-review</span><span class="skill-desc">Widget tree + state audit</span></div>
516
+ <div class="skill-row"><span class="skill-cmd">/widget-extract</span><span class="skill-desc">Extract oversized build()</span></div>
517
+ <div class="skill-row"><span class="skill-cmd">/dart-modernize</span><span class="skill-desc">Dart 2 → Dart 3.x patterns</span></div>
518
+ </div>
519
+ <div class="skills-platform">
520
+ <h3>React Native</h3>
521
+ <div class="skill-row"><span class="skill-cmd">/rn-tdd</span><span class="skill-desc">Jest + RNTL loop</span></div>
522
+ <div class="skill-row"><span class="skill-cmd">/rn-review</span><span class="skill-desc">Bridge + re-render audit</span></div>
523
+ <div class="skill-row"><span class="skill-cmd">/new-arch-migrate</span><span class="skill-desc">TurboModules + Fabric</span></div>
524
+ <div class="skill-row"><span class="skill-cmd">/expo-optimize</span><span class="skill-desc">OTA + bundle size</span></div>
525
+ </div>
526
+ <div class="skills-platform">
527
+ <h3>Gaming</h3>
528
+ <div class="skill-row"><span class="skill-cmd">/unity-tdd</span><span class="skill-desc">NUnit + Unity Test Runner</span></div>
529
+ <div class="skill-row"><span class="skill-cmd">/shader-gen</span><span class="skill-desc">English → HLSL shader</span></div>
530
+ <div class="skill-row"><span class="skill-cmd">/game-perf</span><span class="skill-desc">Frame budget audit</span></div>
531
+ <div class="skill-row"><span class="skill-cmd">/blueprint-to-cpp</span><span class="skill-desc">Blueprint → C++</span></div>
532
+ </div>
533
+ <div class="skills-platform">
534
+ <h3>Cross-Platform</h3>
535
+ <div class="skill-row"><span class="skill-cmd">/grill-mobile</span><span class="skill-desc">20 questions before any code</span></div>
536
+ <div class="skill-row"><span class="skill-cmd">/crash-triage</span><span class="skill-desc">Stacktrace → root cause</span></div>
537
+ <div class="skill-row"><span class="skill-cmd">/perf-audit</span><span class="skill-desc">Slow screen profiling guide</span></div>
538
+ <div class="skill-row"><span class="skill-cmd">/store-listing</span><span class="skill-desc">ASO-optimized copy</span></div>
539
+ <div class="skill-row"><span class="skill-cmd">/feature-slice</span><span class="skill-desc">Epic → shippable tickets</span></div>
540
+ <div class="skill-row"><span class="skill-cmd">/release-prep</span><span class="skill-desc">Full release checklist</span></div>
541
+ <div class="skill-row"><span class="skill-cmd">/accessibility-audit</span><span class="skill-desc">WCAG 2.1 AA review</span></div>
542
+ <div class="skill-row"><span class="skill-cmd">/deeplink-debug</span><span class="skill-desc">Fix broken deep links</span></div>
543
+ </div>
544
+ </div>
545
+ </div>
546
+ </section>
547
+
548
+ <!-- Workflows -->
549
+ <section id="workflows">
550
+ <div class="container">
551
+ <div class="section-label">Workflows</div>
552
+ <h2>13 end-to-end processes.</h2>
553
+ <p class="section-sub">The differentiator. No other mobile AI toolkit has these — full sequences that chain agents and skills from ticket to store.</p>
554
+
555
+ <div class="workflow-list">
556
+ <div class="workflow-item">
557
+ <div class="workflow-name">feature-ship</div>
558
+ <div class="workflow-desc">Ticket → /grill-mobile → /feature-slice → implement → review → tests → PR description</div>
559
+ </div>
560
+ <div class="workflow-item">
561
+ <div class="workflow-name">crash-to-fix</div>
562
+ <div class="workflow-desc">Crash alert → CRASHER → fix → regression test → deploy (OTA if available)</div>
563
+ </div>
564
+ <div class="workflow-item">
565
+ <div class="workflow-name">app-launch</div>
566
+ <div class="workflow-desc">Release build → SENTINEL → PERF → LAUNCHPAD → SCRIBE → /release-prep → store submission</div>
567
+ </div>
568
+ <div class="workflow-item">
569
+ <div class="workflow-name">new-screen</div>
570
+ <div class="workflow-desc">Figma spec → FIGMA → implement → /compose-review → PERF → shipped</div>
571
+ </div>
572
+ <div class="workflow-item">
573
+ <div class="workflow-name">ci-setup</div>
574
+ <div class="workflow-desc">PIPELINE generates GitHub Actions / Bitrise / Fastlane → secrets → running on first PR</div>
575
+ </div>
576
+ <div class="workflow-item">
577
+ <div class="workflow-name">release-cycle</div>
578
+ <div class="workflow-desc">Feature freeze → CRASHER → SENTINEL → SCRIBE → /release-prep → staged rollout</div>
579
+ </div>
580
+ <div class="workflow-item">
581
+ <div class="workflow-name">perf-sprint</div>
582
+ <div class="workflow-desc">Baseline → /perf-audit screen by screen → fix → re-measure → before/after documented</div>
583
+ </div>
584
+ <div class="workflow-item">
585
+ <div class="workflow-name">game-level</div>
586
+ <div class="workflow-desc">Design doc → FORGE/UNREAL → /shader-gen → /game-perf → /unity-tdd → playtest-ready</div>
587
+ </div>
588
+ <div class="workflow-item">
589
+ <div class="workflow-name">new-project-setup</div>
590
+ <div class="workflow-desc">/grill-mobile → architecture → CI from day one → SENTINEL baseline → test infrastructure</div>
591
+ </div>
592
+ </div>
593
+ </div>
594
+ </section>
595
+
596
+ <!-- Karpathy rules -->
597
+ <section id="rules">
598
+ <div class="container">
599
+ <div class="section-label">mobile-karpathy.md</div>
600
+ <h2>4 rules that stop AI agents<br>shipping broken mobile apps.</h2>
601
+ <p class="section-sub">Add to your project's CLAUDE.md. Share independently. <a href="https://github.com/salmanashraf/mobile-agency/blob/main/mobile-karpathy.md">Read the full file →</a></p>
602
+
603
+ <div class="rules-grid">
604
+ <div class="rule-card">
605
+ <div class="rule-num">Rule 1</div>
606
+ <div class="rule-title">Ask the API level before assuming</div>
607
+ <div class="rule-body">Never assume minimum SDK or OS version. Always ask minSdkVersion or iOS deployment target before writing any platform API call.</div>
608
+ </div>
609
+ <div class="rule-card">
610
+ <div class="rule-num">Rule 2</div>
611
+ <div class="rule-title">Check for existing platform components first</div>
612
+ <div class="rule-body">Before generating a custom component, check whether a native or framework equivalent exists. Building custom when standard exists is always wrong.</div>
613
+ </div>
614
+ <div class="rule-card">
615
+ <div class="rule-num">Rule 3</div>
616
+ <div class="rule-title">Never touch what wasn't asked</div>
617
+ <div class="rule-body">Mobile codebases are deeply interconnected. State the blast radius before touching anything. Change only the specific file or function asked about.</div>
618
+ </div>
619
+ <div class="rule-card">
620
+ <div class="rule-num">Rule 4</div>
621
+ <div class="rule-title">Performance is a feature, not an afterthought</div>
622
+ <div class="rule-body">Ask: "Will this run at 60fps on a mid-range device from 3 years ago?" Never generate synchronous main-thread work or unbounded lists.</div>
623
+ </div>
624
+ </div>
625
+ </div>
626
+ </section>
627
+
628
+ <!-- Install -->
629
+ <section id="install">
630
+ <div class="container">
631
+ <div class="section-label">Install</div>
632
+ <h2>One command. All platforms.</h2>
633
+ <p class="section-sub">Works with Claude Code, Cursor, and Windsurf.</p>
634
+
635
+ <div class="install-tabs">
636
+ <button class="tab-btn active" onclick="showTab('npx', this)">npx</button>
637
+ <button class="tab-btn" onclick="showTab('bash', this)">bash</button>
638
+ <button class="tab-btn" onclick="showTab('android', this)">android only</button>
639
+ <button class="tab-btn" onclick="showTab('cursor', this)">cursor</button>
640
+ </div>
641
+
642
+ <div class="code-block" id="tab-npx">
643
+ <span class="comment"># Install everything for Claude Code (runs from GitHub, no npm needed)</span><br>
644
+ <span class="cmd2">npx mobile-ai-agents install</span><br><br>
645
+ <span class="comment"># Install by platform</span><br>
646
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--platform</span> <span class="val">android</span><br>
647
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--platform</span> <span class="val">ios</span><br>
648
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--platform</span> <span class="val">flutter</span><br><br>
649
+ <span class="comment"># Install a single agent or skill</span><br>
650
+ <span class="cmd2">npx mobile-ai-agents add agent crasher</span><br>
651
+ <span class="cmd2">npx mobile-ai-agents add skill grill-mobile</span>
652
+ </div>
653
+ <div class="code-block" id="tab-bash" style="display:none">
654
+ <span class="comment"># Clone and install</span><br>
655
+ <span class="cmd2">git clone https://github.com/salmanashraf/mobile-agency</span><br>
656
+ <span class="cmd2">cd mobile-agency</span><br>
657
+ <span class="cmd2">./install.sh</span><br><br>
658
+ <span class="comment"># Platform-specific</span><br>
659
+ <span class="cmd2">./install.sh</span> <span class="flag">--platform</span> <span class="val">android</span><br>
660
+ <span class="cmd2">./install.sh</span> <span class="flag">--platform</span> <span class="val">ios</span>
661
+ </div>
662
+ <div class="code-block" id="tab-android" style="display:none">
663
+ <span class="comment"># Android agents: AXIOM, RETAINER, FREEZE + cross-platform team</span><br>
664
+ <span class="comment"># Android skills: 5 android + cross-platform skills</span><br>
665
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--platform</span> <span class="val">android</span><br><br>
666
+ <span class="comment"># Or just one Android agent</span><br>
667
+ <span class="cmd2">npx mobile-ai-agents add agent axiom</span><br>
668
+ <span class="cmd2">npx mobile-ai-agents add agent anr-investigation</span><br>
669
+ <span class="cmd2">npx mobile-ai-agents add agent memory-leak-analyzer</span>
670
+ </div>
671
+ <div class="code-block" id="tab-cursor" style="display:none">
672
+ <span class="comment"># Install for Cursor (.cursorrules in current project)</span><br>
673
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--tool</span> <span class="val">cursor</span><br><br>
674
+ <span class="comment"># Or for Windsurf</span><br>
675
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--tool</span> <span class="val">windsurf</span><br><br>
676
+ <span class="comment"># Both tools, all platforms</span><br>
677
+ <span class="cmd2">npx mobile-ai-agents install</span> <span class="flag">--tool</span> <span class="val">all</span>
678
+ </div>
679
+ </div>
680
+ </section>
681
+
682
+ <!-- Footer -->
683
+ <footer>
684
+ <div class="container">
685
+ <p>
686
+ <a href="https://github.com/salmanashraf/mobile-agency">github.com/salmanashraf/mobile-agency</a>
687
+ &nbsp;·&nbsp; MIT License
688
+ &nbsp;·&nbsp; Built for mobile engineers who ship.
689
+ </p>
690
+ </div>
691
+ </footer>
692
+
693
+ <script>
694
+ function copyInstall() {
695
+ navigator.clipboard.writeText('npx mobile-ai-agents install').then(() => {
696
+ const btn = document.querySelector('.copy-btn');
697
+ btn.textContent = 'copied!';
698
+ setTimeout(() => btn.textContent = 'copy', 2000);
699
+ });
700
+ }
701
+
702
+ function showTab(name, btn) {
703
+ document.querySelectorAll('[id^="tab-"]').forEach(el => el.style.display = 'none');
704
+ document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
705
+ document.getElementById('tab-' + name).style.display = 'block';
706
+ btn.classList.add('active');
707
+ }
708
+ </script>
709
+
710
+ </body>
711
+ </html>