Skip to main content

What Are App Cards?

App cards are app-specific instruction guides that teach agents how to use apps effectively. Think of them as cheat sheets that help your agent understand:
  • How to navigate the app’s UI
  • Where to find buttons and features
  • App-specific shortcuts and gestures
  • Search syntax and filters (for apps like Gmail)
  • Common workflows and best practices
Example: When your agent opens Gmail, it automatically loads the Gmail app card and learns that:
  • The compose button is at the bottom-right
  • Search supports filters like from:sender@email.com or has:attachment
  • Swiping right archives emails, swiping left deletes them
This knowledge helps agents complete tasks faster and more reliably.

Why Use App Cards?

Without app cards:
  • Agents guess how to navigate unfamiliar apps
  • Trial-and-error wastes time and tokens
  • Success rates drop for complex workflows
With app cards:
  • ✅ Agents know exactly where to find features
  • ✅ First-attempt success for common tasks
  • ✅ Reduced token usage (less exploration needed)
  • ✅ Better handling of app-specific quirks

Quick Start

Mobilerun includes a sample Gmail app card to demonstrate how app cards work:
When the agent opens Gmail, the Gmail app card automatically loads and guides the workflow. Sample app card included:
  • Gmail (com.google.android.gm) - Email navigation, search, composition
You can use this as a template to create cards for other apps (see “Creating Custom App Cards” below).

How App Cards Work

Automatic Loading

  1. Detection: Agent detects the current foreground app (e.g., Gmail)
  2. Loading: Mobilerun loads the app card for that package name
  3. Injection: App card content is added to the agent’s prompt
  4. Guidance: Agent uses the instructions to make better decisions
Technical note: App cards are loaded asynchronously and cached in memory. Loading happens in the background and doesn’t block agent execution.

When Are They Used?

App cards are used by the Manager Agent when running in reasoning mode (--reasoning flag or reasoning: true in config):

Creating Custom App Cards

Want to add an app card for your favorite app? Here’s how:

Step 1: Find the Package Name

Common package names:
  • Chrome: com.android.chrome
  • WhatsApp: com.whatsapp
  • Instagram: com.instagram.android
  • YouTube: com.google.android.youtube

Step 2: Create the Files

Create the app cards directory and files:
Example structure:

Step 3: Register the App Card

Add your app mapping to config/app_cards/app_cards.json:
Using subdirectories:

Step 4: Test

Look for this log message:

Configuration

App cards are enabled by default and load from config/app_cards/:
To disable:

App Card Best Practices

Content Guidelines

Do:
  • Be concise and actionable
  • Focus on UI patterns and workflows
  • Include search syntax and special features
  • Mention common pitfalls or quirks
  • Use bullet points and clear headings
Don’t:
  • Write essays or lengthy explanations
  • Describe every single feature
  • Include information that changes frequently (version-specific details)
  • Duplicate general Android knowledge (agents already know how to tap, swipe, etc.)

Example: Good vs Bad

❌ Bad (too verbose):
✅ Good (concise and actionable):

Troubleshooting

App Card Not Loading

Check these:
  1. Is the package name correct?
  2. Is the mapping correct in app_cards.json?
  3. Does the markdown file exist?
  4. Are app cards enabled?
  5. Are you using reasoning mode?

Debug Mode

Run with --debug to see app card loading:
Look for these log messages:


Help your agents become app experts with well-crafted app cards!