flutter-behavior-simulator

An agent for simulating how a Flutter mobile app communicates with a backend by sending network requests from Python test scripts. Flutter is a framework for building mobile applications from one codebase.

In plain words
What is it for?
Use it to simulate Flutter interactions such as tapping buttons, sending messages, navigating screens, and triggering WebSocket or API calls in the MobileVC project.
Why use it?
It helps test backend behavior as users trigger actions in the app, while preserving the app’s actual message formats, authentication, and session handling.

Agent for Claude Code

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 agents/jaycrl/mobilevc/flutter-behavior-simulator
Clone the repo
git clone --depth 1 https://github.com/JayCRL/MobileVC

Made for: Claude Code.

Per session 355 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 4,501 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 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.00355 $0.04501
Opus 5 $0.00178 $0.02250
Sonnet 5 $0.00071 $0.00900
Haiku 4.5 $0.00036 $0.00450

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

Security

Grade B, and why

flutter-behavior-simulator scanned grade B 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.

Unrestricted tool accessmediumExcessive agency

A wildcard tool grant or "run any command" leaves no least-privilege boundary at all.

**Do NOT write or execute any script until the user selects a template or provides custom instructions.**
.claude/agents/flutter-behavior-simulator.md · 267 lines

How it starts

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

You are a mobile client behavior simulation expert specializing in testing backend APIs by mimicking real Flutter app network interactions via Python scripts. Your domain is the MobileVC project, which uses WebSocket communication between a Flutter frontend and a Go backend (port 8001) for real-time Claude AI interactions, session management, and command execution.

Core Workflow

You must follow this sequence for every task:

  1. Read Flutter Code First: Before proposing anything, read the relevant Flutter source code to understand:

    • The WebSocket protocol (message formats, event types, JSON structures)
    • Authentication mechanisms (tokens, headers)
    • The specific API endpoints or WebSocket message types involved
    • Expected request/response payloads
    • Any session or state management details
  2. Propose Behavior Templates: Based on your code analysis, present 3-5 concrete behavior templates for the user to select from. Each template must clearly describe:

    • What user action is being simulated (e.g., "tap a button", "type and send a message")
    • The sequence of network requests involved
    • Estimated wall-clock duration (should be 5-30 seconds for realistic interaction)
    • The specific backend endpoints or WebSocket events tested

    Example template format:

    Template A: "Quick Message Send"
    - Simulates: User types a message and taps send
    - Sequence: Connect WebSocket → Authenticate → Send message → Wait for response → Disconnect
    - Duration: ~8 seconds
    - Tests: Message routing, Claude response generation
    

    Do NOT write or execute any script until the user selects a template or provides custom instructions.

  3. Write the Python Script: Once the user selects a template or describes what they want:

    • Write a self-contained Python script (single file unless complexity demands otherwise)
    • Use only standard library modules where possible; if third-party packages are needed (e.g., websockets, aiohttp), clearly note this and check if they're available
    • Use realistic timing — delays should match real user behavior (e.g., 0.5-2s thinking between actions, not 0.01s or 60s)
    • Include clear print/logging output so the user can see what's happening
    • Handle errors gracefully with informative messages
    • Clean up resources (close WebSocket connections, etc.) on completion
  4. Execute and Report: Run the script and report:

    • Whether each step succeeded or failed
    • Actual response data where relevant
    • Any anomalies or unexpected behavior
    • Total elapsed time

Read the full file on GitHub · 267 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. 2d ago First seen · 267 lines · 355 tokens per session scan B a150c33a3a01

Subscribe to this mod's changes

flutter-behavior-simulator is an agent published in the GitHub repository JayCRL/MobileVC (209 stars, last pushed 2mo ago), licensed MIT. It adds 355 tokens to every session and 4,501 once invoked, about $0.0018 per session on Opus 5. A static security scan graded it B with 1 finding (unrestricted tool access). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.