agentleFS
mobiumdevmobiumdev/mobium/CLAUDE.md

mobium

CLAUDE.md2 starsChanged 34 days agoApache-2.0View on GitHub

Mobile app automation for AI agents and people: native, hybrid and cross-platform apps, and pages in a mobile browser or installed as a PWA, on Android emulators and phones, iOS simulators and iPhones — one Go binary, driven from a CLI, an MCP server, or five language clients. docs/APP-TYPES.md says which app types were driven and how; a claim about one goes there too. Mutatis mutandis: the existing thing with the necessary changes, never a parallel implementation. And the device…

  • In this repositoryOne other file it gives its agents.

The file

We split this CLAUDE.md into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run make ci before committing.

    line 43
  2. Very specific:

    Every error has a code: mobiumerr.New(mobiumerr.<Code>, ...), never a bare fmt.Errorf

    line 44
  3. Very specific:

    After rebuilding, mobium daemon stop — a running daemon serves the old binary.

    line 46
  4. Distinctive:

    A real phone is somebody's: Never print its private data — location, notifications, network names, the device's name — assert whether, not …

    line 50
  5. Distinctive:

    Use RFC 2119 keywords (MUST, SHOULD, MAY) for obligations.

    line 56

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

CLAUDE.md

Mobile app automation for AI agents and people: native, hybrid and cross-platform apps, and pages in a mobile browser or installed as a PWA, on Android emulators and phones, iOS simulators and iPhones — one Go binary, driven from a CLI, an MCP server, or five language clients. docs/APP-TYPES.md says which app types were driven and how; a claim about one goes there too.

Key Docs

  • CONTRIBUTING.md — the rules, and why each exists. Read it before changing code
  • docs/DEVELOPMENT.md — from a fresh clone to a passing make ci, and driving a device
  • docs/ARCHITECTURE.md — every layer, and one call traced end to end
  • docs/API.md and docs/FLAGS.md — every tool and argument, generated
  • docs/CHALLENGES.md — every defect and what it taught. Read before asserting platform behavior
  • docs/guides/ — how to use each surface; examples/drivers/PROTOCOL.md — the driver protocol
  • docs/ROADMAP.md — what is next

Tech Stack

  • Go: the mobium binary, no runtime dependencies
  • The UiAutomator2 server (Android) and WebDriverAgent (iOS), driven directly over HTTP — no Node
  • CDP (Android WebViews) and WebKit's Remote Web Inspector (iOS WebViews)
  • MCP server on stdio (mobium mcp)
  • Clients: Go, Python, JavaScript, Java, .NET — each spawns mobium pipe

Design Philosophy

Mutatis mutandis: the existing thing with the necessary changes, never a parallel implementation. And the device is the authority, not the reasoning about it:

  • Measure, don't reason. Most of the defects in docs/CHALLENGES.md were found only by running on a device. A test built from an assumption passes with the assumption
  • A zero is not a result until it has been seen to come back non-zero. Give every check a positive control
  • Refuse rather than approximate, and report only what was checked
  • A remedy in an error must be one that works — it will be followed

Rules

  • Run make ci before committing. After adding a tool, a flag or a schema property, run make api flags and add it everywhere — CLI, MCP schema, all five clients (CONTRIBUTING.md, "Adding a tool, a flag or an error")
  • Every error has a code: mobiumerr.New(mobiumerr.<Code>, ...), never a bare fmt.Errorf
  • The CLI implements no behavior; it calls a tool. Behavior lives in internal/agent
  • After rebuilding, mobium daemon stop — a running daemon serves the old binary. Stop the daemon before shutting a device down, never after (docs/SHUTDOWN.md)
  • Clients spawn mobium pipe, never mobium mcp
  • A defect gets an entry in docs/CHALLENGES.md — how it was found, what it broke, how it is handled — and the counts at its top and in docs/RELEASE-CHECKLIST.md move with it
  • Claims about a device are checked on a device: a docs/checks/ script, or a measurement you can show. A guide's commands and output are ones that actually ran
  • A real phone is somebody's. Never print its private data — location, notifications, network names, the device's name — assert whether, not what. Read a check for device-wide changes before running it on a phone, and put back what it changes
  • American spelling everywhere; make ci enforces it

Writing Style

  • Write short sentences.
  • Use RFC 2119 keywords (MUST, SHOULD, MAY) for obligations.
  • Commits MUST have an imperative subject. The body MUST carry only facts the diff cannot show: what was measured, on which device, and what was ruled out.
  • Comments MUST only clarify code that needs it. Comments MUST NOT narrate. Existing long comment blocks are not license to add more.
  • A defect's story belongs in its docs/CHALLENGES.md entry. Code and commits SHOULD cite the entry by number rather than retell it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.