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 instructions/erikhellman/cli-for-android/claude-mdgit clone --depth 1 https://github.com/ErikHellman/cli-for-androidWhat 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.00921 | $0.00921 |
| Opus 5 | $0.00461 | $0.00461 |
| Sonnet 5 | $0.00184 | $0.00184 |
| Haiku 4.5 | $0.00092 | $0.00092 |
Grade C, and why
cli-for-android CLAUDE.md scanned grade C with 1 finding 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 2d 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
make clean # rm -rf dist/ How it starts
The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Commands
make build # compile → dist/acli (with version/commit ldflags)
make test # go test ./... -v -count=1
make lint # go vet ./...
make install # go install to $GOPATH/bin
make release # cross-compile for darwin/linux/windows (5 binaries in dist/)
make clean # rm -rf dist/
# Run a single test package
go test ./pkg/aclerr/... -v -run TestClassify
# Run a single test function
go test ./pkg/runner/... -v -run TestRunCapture_Timeout
# Build and run locally
go build -o dist/acli ./cmd/acli && ./dist/acli doctor
Architecture
The binary is cmd/acli/main.go → calls internal/cmd (Cobra tree) → delegates to service layers.
Layer map
| Layer | Path | Role |
|---|---|---|
| CLI commands | internal/cmd/*.go |
One file per subcommand group; registers with RootCmd in root.go |
| Domain services | internal/{sdk,avd,device,build,flash,instrument}/service.go |
Business logic; calls runner and android.SDKLocator |
| Shared packages | pkg/ |
No internal imports; safe to use anywhere |
Key packages
pkg/runner — all subprocess execution goes here. Run() returns (*Result, error). Use RunWith() when you only care about the error (passthrough/fire-and-forget), RunCapture() for captured output, RunWithStdin() when stdin piping is needed. Context timeout check happens before ExitError check (critical ordering — killed processes also return ExitError(-1)).
pkg/aclerr — structured errors. Every user-facing error is an *AcliError{Code, Message, Detail, FixCmds, DocsURL}. Exit codes: device errors→3, SDK/env→4, build→5, emulator timeout→6, general→1. catalog.go has regex patterns that classify raw tool stderr into structured errors via aclerr.Classify(tool, stderr).
pkg/output — call output.Init(json, verbose, noColor) once (done in PersistentPreRunE). Then use package-level Success(), Info(), Warn(), Error(), Table(), CheckList(). All functions branch internally on Default.JSON — never check the flag yourself in command code. Errors go to stderr; data goes to stdout.
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.
- 2d ago First seen · 63 lines · 921 tokens per session scan C e5527881c8aa
cli-for-android CLAUDE.md is an instructions file published in the GitHub repository ErikHellman/cli-for-android (116 stars, last pushed 4mo ago), licensed MIT. It adds 921 tokens to every session, about $0.0046 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
AppClaw CLAUDE.md
Instructions for appclawhq/AppClaw, covering claude.md, what is appclaw?, build & run commands, architecture and entry point & cli modes (src/index.ts).
MobiAI-Core CLAUDE.md
Instructions for ArisGuimera/MobiAI-Core, covering mobiai — mobile development ai ecosystem, bootstrap and principles.
freetube CLAUDE.md
Instructions for leshkodev/freetube, covering claude.md, 1. what this project is, 2. non-negotiable constraints, 3. tech stack (locked) and 4. project structure.
ConsultMe CLAUDE.md
Instructions for Tarek-Bohdima/ConsultMe, covering claude.md, project context, common commands, module graph and conventions enforced by tooling.
kotlin-app-template AGENTS.md
Instructions for ashtanko/kotlin-app-template, covering repository agent guide, start here, repository rules, working method and task-specific guidance.
dev-challenge CLAUDE.md
Instructions for micheltlutz/dev-challenge, covering claude.md, the one rule to internalise, slash commands, subagents and skills.