How patrickkalkman/parasight works
Parasight is a prototype visual UI-testing agent. Its main workflow runs a natural-language login test: capture the page, analyze it with OmniParser, interact at normalized coordinates, analyze the resulting screenshot, and validate the success message. The agent and tool implementations are excerpted; the README documents visual analysis, self-healing, Playwright, and tracing. The graph reflects the prototype’s shown login path; it does not imply broader test-suite capabilities that the README lists as roadmap items.
Main entry points: main.py Agent runner · validate_element_exists_tool.py Result validation · take_screenshot_tool.py Screenshot capture · interact_with_element_tool.py Coordinate interaction
Components 11
Test orchestration
- Agent runner
src/parasight/main.py - UI test agent
src/parasight/main.py - Result validation
src/parasight/special_tools/validate_element_exists_tool.py
Browser testing
- Screenshot capture
src/parasight/special_tools/take_screenshot_tool.py - Coordinate interaction
src/parasight/special_tools/interact_with_element_tool.py
Visual analysis
- Image analysis tool
src/parasight/special_tools/analyze_image_with_omniparser_tool.py - OmniParser client
src/parasight/helpers/omni_parser_client.py - Analysis result model
src/parasight/special_tools/omniparser_models.py
Other components
- Test requester
- Application under test
- OmniParser service
Connections 15
- Test requester → Agent runner: provides test task
README.md - Agent runner → UI test agent: runs
src/parasight/main.py - Agent runner → Screenshot capture: registers tool
src/parasight/main.py - Agent runner → Image analysis tool: registers tool
src/parasight/main.py - Agent runner → Coordinate interaction: registers tool
src/parasight/main.py - Agent runner → Result validation: registers tool
src/parasight/main.py - UI test agent → Screenshot capture: requests screenshot
src/parasight/main.py - UI test agent → Image analysis tool: requests analysis
src/parasight/main.py - UI test agent → Coordinate interaction: requests actions
src/parasight/main.py - UI test agent → Result validation: requests validation
src/parasight/main.py - Screenshot capture → Application under test: navigates and captures
src/parasight/special_tools/take_screenshot_tool.py - Coordinate interaction → Application under test: acts in browser
src/parasight/special_tools/interact_with_element_tool.py - Image analysis tool → OmniParser client: sends image
src/parasight/special_tools/analyze_image_with_omniparser_tool.py - OmniParser client → OmniParser service: posts image
src/parasight/helpers/omni_parser_client.py - Result validation → Analysis result model: consumes model
src/parasight/special_tools/validate_element_exists_tool.py