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.
npx agentmods add agents/bentleypark/claude-code-mobile-spine/android-agentgit clone --depth 1 https://github.com/bentleypark/claude-code-mobile-spineWrote 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/agents/bentleypark/claude-code-mobile-spine/android-agent)<a href="https://agentmods.dev/agents/bentleypark/claude-code-mobile-spine/android-agent"><img src="https://agentmods.dev/badge/agents/bentleypark/claude-code-mobile-spine/android-agent.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 | $0.00065 | $0.06898 |
| Opus 5 | $0.00032 | $0.03449 |
| Sonnet 5 | $0.00013 | $0.01380 |
| Haiku 4.5 | $0.00006 | $0.00690 |
Grade A, and why
android-agent 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 3d 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- ios-agent — 86% identical, 137 lines differ
How it starts
The opening of the file, as written. The whole thing — 202 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Configuration (read at the start of every invocation)
This agent is plugin-managed (lives in plugins/mobile-spine/agents/, shared across workspaces). Before doing anything, read .claude/mobile-spine.config.yaml from the workspace root and substitute these tokens mentally throughout this file:
| Token in this file | Config key | Notes |
|---|---|---|
myorg |
org |
github org/username — used in Closes myorg/myapp-android#N, PR body refs |
myapp |
app |
app prefix — your working directory is ../{app}-android/ |
develop (as a base-branch name only — not the verb "develop") |
baseBranch |
gh pr --base {baseBranch}, branch creation git checkout -b feat/... from {baseBranch} |
If .claude/mobile-spine.config.yaml is missing, abort:
"[android-agent] No .claude/mobile-spine.config.yaml found in the current working directory. This doesn't look like a mobile-spine workspace. Run /mobile-spine:init for a fresh setup, or follow SETUP.md §0 to migrate from v1.x."
Then check mobileSpineSchemaVersion before using any value. This plugin reads schema 1.
- Higher than 1 — the workspace is ahead of this plugin. Proceed, ignore keys you do not recognize, and say it once: "[android-agent] Config schema {N} is newer than this plugin reads (1); unrecognized keys ignored. Consider
/plugin marketplace update claude-code-mobile-spine." - Lower than 1, absent, or not an integer — abort: "[android-agent] Config schema {value or 'missing'}; this plugin expects 1. This workspace predates the schema this plugin reads — do not edit the config by hand; follow the migration path shipped with the release that raised the schema (plugin
skills/init/SKILL.md§Config schema versioning)." - Never rewrite the config yourself. It is workspace-owned and
.claude/is outside your allowed paths.
Self-check before the first tool call: after reading the config, echo back the resolved values once:
"[android-agent] Resolved config: org={org}, app={app}, baseBranch={baseBranch} → working in ../{app}-android/, base branch {baseBranch}, issues at {org}/{app}-android"
Then proceed.
Working directory: ../myapp-android/ Stack: Kotlin, Jetpack Compose, Material3, Hilt, Retrofit (adjust as needed).
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.
- 3d ago First seen · 202 lines · 65 tokens per session scan A 83e397aff7a5
android-agent is an agent published in the GitHub repository bentleypark/claude-code-mobile-spine (1 stars, last pushed 1mo ago), licensed MIT. It adds 65 tokens to every session and 6,898 once invoked, about $0.0003 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-31.
Other agents, from other repositories
mobile-pr-bug-hunter
Use this agent to hunt for correctness bugs in a mobile PR diff (Android/Kotlin, iOS/Swift, or KMP) — forgotten call sites, unhandled unhappy paths, wrong logic, non-exhaustive branching, silent regressions, contract mismatches, resource-lifecycle leaks, and concurrency correctness. Feed it the PR intent, full diff…
mobile-pr-code-quality-reviewer
Use this agent to review a mobile PR diff (Android/Kotlin, iOS/Swift, or KMP) for code smells, dead/unused code, duplication, and software-engineering excellence (SOLID, naming, PR scope, documentation) — plus the platform's architecture/framework checklist (Compose/SwiftUI, DI, security, performance, accessibility…
mobile-pr-silent-failure-hunter
Use this agent to audit a mobile PR diff (Android/Kotlin, iOS/Swift, or KMP) for silent failures — swallowed exceptions, overly broad catches, unjustified fallbacks, and error handling that hides problems instead of surfacing them. Feed it the PR intent, full diff, changed-file list, and the path(s) to the relevant…
mobile-pr-test-analyzer
Use this agent to review test coverage and test quality for a mobile PR diff (Android/Kotlin, iOS/Swift, or KMP) — missing coverage for new/changed behavior, untested edge cases and error paths, and tests that don't actually exercise the code they claim to. Feed it the PR intent, full diff, changed-file list, and the…
mobile-pr-type-design-analyzer
Use this agent when a mobile PR diff adds or reshapes a type — a Kotlin data class, sealed class/interface, enum class, or a Swift struct/protocol/enum. It reviews the type's encapsulation, invariant expression, and usefulness of its design, including KMP expect/actual contracts. Feed it the full diff and changed-file…
mobile-pr-comment-analyzer
Use this agent when a mobile PR diff adds or modifies comments, KDoc, or doc comments. It checks whether comments/docs are accurate, whether they explain why rather than restate what, and specifically catches "stranded artifacts" — comments left behind by an incomplete deletion elsewhere in the same diff. Feed it the…