Agentic UX Analytics - Test your app with AI agents
Project description
Usefly
Find UX friction before your users do.
AI-powered UX testing platform. Deploy browser agents to simulate real user journeys on your web app and identify friction points, broken flows, and usability issues.
What It Does
Usefly uses AI browser agents to test your application like a real user would. Instead of writing manual test scripts, you describe what your app does and Usefly generates realistic user tasks, executes them with AI-controlled browsers, and reports back with detailed analytics on where users struggle.
Key Features
- Automated Website Analysis - AI crawls your site to understand its structure, navigation, and available features
- Smart Task Generation - Automatically generates realistic user journey tasks based on your site's capabilities
- AI Browser Agents - Executes tasks using vision-enabled AI agents that interact with your app like real users
- Friction Detection - Identifies UX issues, confusing flows, and broken functionality
- Detailed Reports - View step-by-step agent interactions, screenshots, and success/failure analysis
Installation
Choose the method that works best for you:
Option 1: Docker (Simplest)
No Python or Node.js required. Just Docker.
docker run -p 8080:8080 -v usefly-data:/app/src/data ghcr.io/dudany/usefly
Open http://localhost:8080 in your browser.
Note: The
-v usefly-data:/app/src/dataflag persists your data between container restarts.
Option 2: Using uv (Recommended)
uv is a fast Python package manager. Requires Python 3.12+.
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create virtual environment and install (requires Python 3.12+)
uv venv --python 3.12
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install usefly
# Install browser for AI agents
playwright install chromium
# Start the server
usefly
Option 3: Using pip
Requires Python 3.12+.
# Create virtual environment (requires Python 3.12+)
python3.12 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install from PyPI
pip install usefly
# Install browser for AI agents
playwright install chromium
# Start the server
usefly
Open http://localhost:8080 in your browser.
Note for Contributors: If you are installing from source (e.g. cloning the repo), you must build the UI manually. See CONTRIBUTING.md.
First Run Setup
- Navigate to Settings in the sidebar
- Configure your AI provider:
- Select a provider (OpenAI, Claude, Groq, or Google)
- Enter your API key
- Choose a model (e.g.,
claude-sonnet-4-20250514,claude-opus-4-20250514,claude-haiku-4-20250514)
- Optionally adjust:
- Max Steps - Maximum actions per task (default: 30)
- Max Browser Workers - Parallel browser count (default: 3)
Usage
1. Create a Scenario
- Go to Scenarios → New Scenario
- Enter your target URL and a description of your application
- Click Analyze Website to let AI understand your site structure
- Generate tasks automatically or add custom ones
2. Run Tests
- Select a scenario and click Run
- Watch AI agents interact with your app in real-time
- Each agent executes assigned tasks and records every interaction
3. View Reports
- Go to Reports to see aggregated results
- Analyze friction points and failure patterns
- Review step-by-step screenshots and agent decisions
- Use Replay to watch recorded sessions
CLI Reference
usefly # Start server on default port 8080
usefly --port 3000 # Use custom port
usefly --reload # Enable auto-reload for development
usefly --help # Show all options
Supported AI Providers
| Provider |
|---|
| OpenAI |
| Anthropic |
| Groq |
Troubleshooting
Common Issues
Browser agents fail to start
- Check that your API key is correctly configured in Settings
- Ensure you have sufficient API credits
UI shows blank page
- Clear browser cache and refresh
Contributing
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- browser-use - The excellent browser automation library powering our agents
- LangChain - For seamless LLM integration
- shadcn/ui - Beautiful UI components
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file usefly-0.1.2.tar.gz.
File metadata
- Download URL: usefly-0.1.2.tar.gz
- Upload date:
- Size: 3.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a86ca842ead05c118115ffd911a55122a0637f8f4b4cacbd78e0c34f4cf0a8bf
|
|
| MD5 |
041fce789d00b11ff8237a3c84bc3868
|
|
| BLAKE2b-256 |
21c4911875644e9375991ad6650e268be9f146b05cabb8408a6abe9f7d868fce
|
Provenance
The following attestation bundles were made for usefly-0.1.2.tar.gz:
Publisher:
release.yml on dudany/usefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usefly-0.1.2.tar.gz -
Subject digest:
a86ca842ead05c118115ffd911a55122a0637f8f4b4cacbd78e0c34f4cf0a8bf - Sigstore transparency entry: 773115967
- Sigstore integration time:
-
Permalink:
dudany/usefly@1552be2f455c1e7835a3007ecf206e7bd36901e8 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/dudany
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1552be2f455c1e7835a3007ecf206e7bd36901e8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file usefly-0.1.2-py3-none-any.whl.
File metadata
- Download URL: usefly-0.1.2-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c34a40f7426b92ebb83e39022e433c11223ee587a240d304de7712fad86ea557
|
|
| MD5 |
8629d2006d4e3ec2fffb88b6f213fe06
|
|
| BLAKE2b-256 |
4c57030ba84d744811a9cb524c73a2ec4990a58cfaea4d23a71aafa9831648cf
|
Provenance
The following attestation bundles were made for usefly-0.1.2-py3-none-any.whl:
Publisher:
release.yml on dudany/usefly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usefly-0.1.2-py3-none-any.whl -
Subject digest:
c34a40f7426b92ebb83e39022e433c11223ee587a240d304de7712fad86ea557 - Sigstore transparency entry: 773116012
- Sigstore integration time:
-
Permalink:
dudany/usefly@1552be2f455c1e7835a3007ecf206e7bd36901e8 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/dudany
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1552be2f455c1e7835a3007ecf206e7bd36901e8 -
Trigger Event:
push
-
Statement type: