bugninja_cli_video.mp4
Watch Bugninja automatically navigate, interact, and test your web application using natural language instructions
# First, initialize your project
bugninja init --name my_project
# Add a new test case
bugninja add
# This creates a TOML file like:
# [task]
# name = "login_test"
# description = "Navigate to login page, enter credentials, and verify dashboard loads"
# Run it with AI
bugninja run --task login_test
Bugninja's intelligent browser agent understands your web application like a human tester would:
- Smart Navigation: Finds elements even when they change
- Context Awareness: Understands page state and user flows
- Self-Healing: Automatically adapts when UI changes
- Visual Recognition: Uses computer vision to interact with complex interfaces
Every test run is automatically recorded as a "traversal" that can be replayed:
# Record a test session
bugninja run --task login_test
# Replay latest traversal for a task
bugninja replay --task login_test
# Self-healing replay fixes broken tests automatically
bugninja replay --task login_test --healing
- Flaky Test Elimination: Self-healing capabilities reduce test maintenance
- Cross-Browser Testing: Works with any Playwright-supported browser
- CI/CD Integration: Seamlessly integrates with your existing pipelines
- Rich Reporting: Detailed test reports with screenshots and execution traces
cd bugninja
uv sync
# For this you have to activate the venv once and use directly
source .venv/bin/activate
bugninja --help
# ... etc
- Natural Language Processing: Describe what you want to test in plain English
- Smart Element Detection: Finds buttons, forms, and content even with dynamic IDs
- Context Understanding: Maintains awareness of application state throughout tests
- Vision-Powered Interactions: Uses screenshots to understand complex UI elements
- Session Recording: Every interaction is captured with full context
- Self-Healing Replays: Automatically fixes broken selectors and changed elements
- Brain State Tracking: Records AI decision-making process for debugging
- Alternative Selector Strategies: Multiple fallback approaches for robust element identification
# task.toml
[task]
name = "login_test"
description = "Navigate to login page and authenticate with provided credentials"
[run_config]
enable_healing = true
headless = false
- Environment Variable Support: Secure credential handling via .env files
- Task Configuration: Define test parameters in TOML files
- Credential Isolation: Keep sensitive data separate from task definitions
# bugninja.toml
[browser]
viewport_width = 1920
viewport_height = 1080
user_agent = ""
timeout = 30000
[agent]
max_steps = 100
enable_vision = true
enable_memory = true
wait_between_actions = 1
[run_config]
headless = false
enable_healing = true
- Multi-Device Testing: Desktop, mobile, and tablet viewports
- Custom Browser Profiles: Tailored configurations per test environment
- Performance Controls: Timeouts, step limits, and retry logic
# Initialize a new Bugninja project (required first step)
bugninja init --name my_project
# Add a new task interactively
bugninja add
# Run a task
bugninja run --task my_task
# Replay latest traversal for a task
bugninja replay --task my_task
# Self-healing replay
bugninja replay --task my_task --healing
# Replay specific traversal by ID
bugninja replay --traversal kfdvnie47ic2b87l00v7iut5
Browser Automation | Playwright | Cross-browser testing engine |
AI Framework | browser-use | AI browser interaction library |
Language Models | OpenAI, Anthropic, Azure | Natural language understanding |
Runtime | Python 3.8+ | Core application framework |
Configuration | TOML, Pydantic | Type-safe settings management |
CLI | Rich, Typer | Beautiful command-line interface |
Storage | JSON, SQLite | Session and traversal persistence |
- 🚀 Performance: Playwright's speed + Python's flexibility
- 🧠 Intelligence: Advanced LLM integration for human-like testing
- 🔧 Reliability: Battle-tested components with extensive community support
- 📈 Scalability: From single tests to enterprise CI/CD pipelines
- ⭐ Star the repo - Show your support and help others discover Bugninja
- 🐛 Report bugs - Help us improve by reporting issues you encounter
- 💡 Request features - Share your ideas for new functionality
- 🤝 Contribute - Submit pull requests and join our development community
- 💬 Join our Discord - Connect with other users and get real-time help
- 📖 Improve docs - Help us make Bugninja more accessible to everyone
- Discord: Join our community for real-time support and discussions
- GitHub Discussions: Share ideas and ask questions
- LinkedIn: Follow us for professional updates
- Blog: Read our articles on testing best practices
Made with ❤️ by the Bugninja team
Empowering developers to build better software through intelligent testing