{"id":29426532,"url":"https://github.com/block/trailblaze","last_synced_at":"2026-04-02T11:35:05.081Z","repository":{"id":298397567,"uuid":"999756136","full_name":"block/trailblaze","owner":"block","description":"AI-driven UI testing framework.","archived":false,"fork":false,"pushed_at":"2026-03-29T15:28:39.000Z","size":29479,"stargazers_count":219,"open_issues_count":18,"forks_count":11,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-29T18:07:28.303Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://block.github.io/trailblaze/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/block.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/support.md","governance":"GOVERNANCE.md","roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-10T18:29:40.000Z","updated_at":"2026-03-29T13:47:25.000Z","dependencies_parsed_at":"2025-06-10T23:24:58.288Z","dependency_job_id":"b4999cf6-1223-4d2b-a352-3a3fa9e4d1d8","html_url":"https://github.com/block/trailblaze","commit_stats":null,"previous_names":["block/trailblaze"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/block/trailblaze","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Ftrailblaze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Ftrailblaze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Ftrailblaze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Ftrailblaze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/block","download_url":"https://codeload.github.com/block/trailblaze/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Ftrailblaze/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31218018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-31T03:16:13.749Z","status":"ssl_error","status_checked_at":"2026-03-31T03:15:17.442Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-12T11:36:23.024Z","updated_at":"2026-04-02T11:35:05.076Z","avatar_url":"https://github.com/block.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center;\"\u003e\n\n# 🧭 Trailblaze\n\n_[Trailblaze](https://github.com/block/trailblaze) is an AI-powered UI testing framework that lets you author and\nexecute tests using natural language._\n\n\u003cp style=\"text-align: center;\"\u003e\n  \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003c/div\u003e\n\n![trailblaze-with-goose-android.gif](docs/images-opensource/trailblaze-with-goose-android.gif)\n\n## Current Vision\n\nTrailblaze enables adoption of AI powered tests in regular Android on-device instrumentation tests.\nThis allows leveraging existing execution environments and reporting systems, providing a path to gradually adopt\nAI-driven tests at scale.\n\nBecause Trailblaze uses [Maestro](https://github.com/mobile-dev-inc/maestro) Command Models for UI interactions it\nenables a longer term vision of cross-platform ui testing while reusing the same authoring, agent\nand reporting capabilities.\n\n### Core Features\n\n- **AI-Powered Testing**: More resilient tests using natural language test steps\n- **On-Device Execution**: Runs directly on Android devices using standard instrumentation tests (Espresso, UiAutomator)\n- **Custom Agent Tools**: Extend functionality by providing app-specific `TrailblazeTool`s to the agent\n- **Detailed Reporting**: Comprehensive test execution reports\n- **Maestro Integration**: Uses a custom on-device driver for Maestro to leverage intuitive, platform-agnostic UI interactions\n\n### Multi-Agent V3 Features (Mobile-Agent-v3 Inspired)\n\nTrailblaze implements cutting-edge features from [Mobile-Agent-v3](https://arxiv.org/abs/2508.15144) research:\n\n| Feature | Description |\n|---------|-------------|\n| **Exception Handling** | Automatically handles popups, ads, loading states, and errors |\n| **Reflection \u0026 Self-Correction** | Detects stuck states and loops, backtracks when needed |\n| **Task Decomposition** | Breaks complex objectives into manageable subtasks |\n| **Cross-App Memory** | Remembers information across app switches for complex workflows |\n| **Enhanced Recording** | Captures pre/post conditions for more robust replay |\n| **Progress Reporting** | Real-time MCP progress events for IDE integrations |\n\n### Trail \u0026 Blaze Architecture\n\nTrailblaze's unique \"**blaze once, trail forever**\" workflow:\n\n- **Blaze Mode**: AI explores the app to achieve objectives, discovering the path dynamically\n- **Trail Mode**: Replay recorded actions deterministically with zero LLM cost\n- **Hybrid Mode**: Use recordings where available, fall back to AI when needed\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    First Run: BLAZE                          │\n│  AI explores → Records actions → Generates .trail.yaml      │\n└──────────────────────────┬──────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────┐\n│                   Future Runs: TRAIL                         │\n│  Replay recordings → Zero LLM cost → Fast CI/CD execution   │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## Installation\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/block/trailblaze/main/install.sh | bash\n```\n\n## Getting Started\n\n### Launch the Desktop App\n\n```bash\ntrailblaze app\n```\n\n### MCP Server for Claude\n\nAdd Trailblaze as an MCP server so Claude can interact with connected devices:\n\n```bash\ntrailblaze mcp install claude\n```\n\nOr manually add to your Claude config (`claude_desktop_config.json` or `.mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"trailblaze\": {\n      \"command\": \"trailblaze\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}\n```\n\n## Documentation at \u003ca href=\"https://block.github.io/trailblaze\"\u003eblock.github.io/trailblaze\u003c/a\u003e\n\nSee [Mobile-Agent-v3 Features Guide](docs/mobile-agent-v3-features.md) for detailed usage examples.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblock%2Ftrailblaze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblock%2Ftrailblaze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblock%2Ftrailblaze/lists"}