Skip to content

facebookresearch/OpenApps

image OpenApps

Building Blocks for Digital Agents Research

📒 docs | 📑 ArXiV

Install

  1. Clone
git clone https://github.com/facebookresearch/OpenApps.git
  1. Install
uv sync

see docs for details.

Run OpenApps

Simply run:

uv run launch.py 
image

Each app can be modified with variables available in config/apps. You can override any of these via command line:

uv run launch.py app.todo.title='Super Todo'

Learn more about to customize the content and appearance of apps in the docs.

Launch an Agent

For agents to directly interact with apps, install: playwright install chromium.

Launch an agent to perform a task of adding a meeting with Dennis to the calendar:

# export OPENAI_API_KEY=""
uv run launch_agent.py agent=GPT-5-1 task_name=add_meeting_with_dennis

To see the agent solving the task live, add the headless argument:

uv run launch_agent.py ... browsergym_env_args.headless=False

gif (1)

You can specify the agent of your choice with the agent= argument. For example agent=dummy is a simple agent that clicks randomly on any buttons, great for exploration!

Learn more about launching with OpenAI, Claude, and VLLM models such as UI-Tars in our docs.

Contributing

We welcome pull requests with new features or issues via GitHub.

Development

uv sync --extra dev

To build docs:

mkdocs build
mkdocs serve

this will launch docs available at https://facebookresearch.github.io/OpenApps/

Testing

Run all tests via:

uv run -m pytest tests/

Attribution

Our apps are built on top of several excellent frameworks:

Some icons are have been designed using resources from Flaticon.com

Our work is licensed under CC-BY-NC, please refer to the LICENSE file in the top level directory.

Copyright © Meta Platforms, Inc. See the Terms of Use and Privacy Policy for this project.

Cite

@article{ullrich2025openapps0,
  title   = {OpenApps: Simulating Environment Variations to Measure UI-Agent Reliability},
  author  = {Karen Ullrich and Jingtong Su and Claudia Shi and Arjun Subramonian and Amir Bar and Ivan Evtimov and Nikolaos Tsilivis and Randall Balestriero and Julia Kempe and Mark Ibrahim},
  year    = {2025},
  journal = {arXiv preprint arXiv: 2511.20766}
}