aco CLAUDE.md

Project instructions for ACO, a command-line tool built on Appium, which automates mobile apps on simulators, emulators, and physical devices.

In plain words
What is it for?
Starting and managing Appium sessions, targeting mobile devices, writing documentation, and maintaining command behavior and internal project rules.
Why use it?
They define where user documentation belongs and explain the project’s device, session, and Appium conventions so changes stay consistent.

Instructions file

Install

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.

agentmods
npx agentmods add instructions/tai2/aco/claude-md
Clone the repo
git clone --depth 1 https://github.com/tai2/aco
Per session 4,695 This file is loaded in full into every session.
When invoked 4,695 The same file — it is already loaded in full.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.04695 $0.04695
Opus 5 $0.02348 $0.02348
Sonnet 5 $0.00939 $0.00939
Haiku 4.5 $0.00470 $0.00470

Measured 3d ago against content hash 3b6f5ba13893, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

aco CLAUDE.md scanned grade A 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 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

directly. If a user needs one, they can `curl` the server themselves or
CLAUDE.md · 299 lines

How it starts

The opening of the file, as written. The whole thing — 299 lines — stays where its author put it; the contents beside it link to each section on GitHub.

aco -- Notes for Claude Code

Documentation style: README vs. CLAUDE.md

README.md is for users and is usage-first. Keep it concise: lead with runnable commands and short, scannable examples. Each section should be mostly code blocks with brief one-line framing. Avoid long prose paragraphs that explain how or why a feature works internally (auth wiring, capability merge order, resolution fallbacks, process lifecycle, etc.) -- prefer an inline # comment in the example or a single short sentence. If you find yourself writing a multi-sentence paragraph of mechanics, it belongs here in CLAUDE.md, not in the README. When you add behavior, document the rationale and internals in CLAUDE.md and only the how-to-use in the README.

aco is a CLI on top of Appium. Two command classes:

  1. aco session start -- spawns the user's appium (from PATH) and creates a W3C session against an AUT. Runs in the foreground by default (Ctrl-C tears it down); pass --detach to fork it into the background. Targets simulators/emulators and real devices: with no --udid/--avd it prefers a connected real device, falling back to auto-booting the first Android AVD. iOS real devices take code-signing flags (--xcode-org-id, --xcode-signing-id, --allow-provisioning-device-registration, --updated-wda-bundle-id) that map to the corresponding appium:* caps. Pass --server-url <url> to attach to an already-running remote Appium server (a device-farm grid such as TestMu/LambdaTest, BrowserStack, or Sauce Labs) instead of spawning a local one -- in that mode no local appium is launched, the local-server flags are ignored, the record stores pid: 0, and the command exits immediately (like --detach) since there is no local process to own. BASIC auth (--username/--password, the --auth user:pass shorthand, or ACO_REMOTE_USERNAME/ACO_REMOTE_PASSWORD) is forwarded via WebdriverIO's user/key, which attaches Authorization: Basic only to the POST /session request -- matching the verified device-farm contract that only session creation needs auth -- and is never written to the session record. For farms whose capability shape aco's per-flag caps can't express (LambdaTest's lt:options, BrowserStack's bstack:options, ...), pass the entire W3C capabilities object verbatim with --caps-json '<json>' (or --caps-json @file): it bypasses buildCapabilities entirely (the per-device flags and the device auto-detection step are skipped), with any --cap entries shallow-merged on top. aco session list and aco session stop inspect/tear down stored sessions (a remote pid: 0 record is torn down by deleteSession alone).
  2. Everything else (aco source, aco screenshot, aco element ..., aco tap, aco swipe, aco context ..., aco ios ..., aco android ..., aco mobile call) -- attaches to an existing session. --session <id>, --server-url <url>, and --platform <ios|android> are all optional: by default they are resolved from the latest live record under ~/.aco/sessions/. Explicit flags always win. When no session has been started and no flags are passed, the resolver errors out cleanly.

Read the full file on GitHub · 299 lines

Changes

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.

  1. 3d ago First seen · 299 lines · 4,695 tokens per session scan A 3b6f5ba13893

Subscribe to this mod's changes

aco CLAUDE.md is an instructions file published in the GitHub repository tai2/aco (2 stars, last pushed 2mo ago), licensed MIT. It adds 4,695 tokens to every session, about $0.0235 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.